gpt4 book ai didi

javascript - 如何在 Android Webview 中停止 Javascript 执行

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:38:26 33 4
gpt4 key购买 nike

场景:我有一个包含 WebView 的 Activity 。每次我开始该 Activity 时,都会在 WebView 中呈现一些 HTML 内容。我还在 WebView 中注入(inject) Javascript,其中包含一些代码,包括 DomContentLoaded 事件监听器。

问题:问题是有时 Javascript 在 WebView 中执行会花费大量时间。这不是每次都会随机发生。大多数时候它加载速度非常快。但有时对于相同的内容,执行时间会超过 20 秒。现在在这种状态下,如果我从 Activity 中返回并再次启动它,Javascript 将不会加载到 WebView 中,因为之前的 JS 执行尚未完成。我必须终止该应用程序并重新启动它才能使 WebView 正常工作。如何在不杀死应用程序的情况下从这种状态中恢复?我尝试使用以下代码停止它,但没有一个有效。还有其他建议吗?

webView.stopLoading();
webView.loadData("", "text/html", null);
webView.freeMemory();
webView.removeAllViews();
webView.destroy();

最佳答案

您可以尝试暂时关闭 Javascript,然后像这样重新打开它:

    webview.getSettings().setJavaScriptEnabled(false);
webview.getSettings().setJavaScriptEnabled(true);

但是,如果您尝试清理 WebView 中的资源,文档会指出:

Use WebView.loadUrl("about:blank") to reliably reset the view state and release page resources (including any running JavaScript).

http://developer.android.com/reference/android/webkit/WebView.html#clearView%28%29

关于javascript - 如何在 Android Webview 中停止 Javascript 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25043558/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com