1

我的 android 应用程序中有一个 WebView,这个 WebView 正在运行一个网站,上面有相当多的 Javascript。当我的应用程序在后台运行时,用户报告了高功耗,我预计这是由于这个 javascript。但是,我不想完全卸载或删除 WebView,因为这会影响恢复时间。

当应用程序在后台(onPause())时,有什么方法可以选择性地关闭 Javascript 和/或完全禁用 WebView?

4

1 回答 1

1

根据http://www.mcseven.me/2011/12/how-to-kill-an-android-webview/唯一可行的方法是重定向到没有javascript的空页面(并在恢复后返回)。

在 PhoneGap 的情况下,页面应该包含一个返回自身的代码:

<!DOCTYPE html><html><head>
        <script type="text/javascript" src="js/phonegap/cordova-2.9.0.js"></script>
        <script type="text/javascript" src="js/jquery/jquery-1.9.1.min.js"></script>
    </head><body>
        <script type="application/javascript">
            $(document).on('deviceready', function() {
                $(document).on('resume', function() {
                        return history.back ? history.back() : history.go(-1);
                });
            });
        </script>
    </body></html>

更新:以上内容适用于 Cordova 2.xx 在 Cordova 3.xx 中(不确定是否从 3.0.0 开始,但可以肯定在当前 3.7.x 中)您可以简单地KeepRunning在配置 XML 中添加首选项:

<preference name="keepRunning" value="false" />

这会暂停所有的 JS 定时器,直到 APP 再次恢复;请参阅https://stackoverflow.com/a/21629586/2011448

于 2013-07-22T13:43:42.507 回答