Viv*_*vek 9 javascript android android-webview android-activity
场景:我有一个包含WebView的活动.每次我启动该活动时,都会在WebView中呈现一些HTML内容.我也在WebView中注入Javascript,其中包含一些代码,包括DomContentLoaded事件监听器.
问题:问题是有时Javascript需要花费大量时间在WebView中执行.这不是每次都随机发生的.大多数时候它的加载速度非常快.但有时对于相同的内容,执行需要> 20秒.现在处于这种状态,如果我从活动返回并再次启动它,Javascript将无法加载到WebView中,因为之前的JS执行尚未完成.我必须杀死应用程序并再次启动它才能使WebView正常工作.如何在不杀死应用程序的情况下从此状态恢复?我尝试使用以下代码停止它,但没有一个工作.还有其他建议吗?
webView.stopLoading();
webView.loadData("", "text/html", null);
webView.freeMemory();
webView.removeAllViews();
webView.destroy();
Run Code Online (Sandbox Code Playgroud)
您可以尝试暂时关闭 Javascript,然后像这样重新打开它:
webview.getSettings().setJavaScriptEnabled(false);
webview.getSettings().setJavaScriptEnabled(true);
Run Code Online (Sandbox Code Playgroud)
但是,如果您尝试清理 WebView 中的资源,则文档说明:
使用 WebView.loadUrl("about:blank") 可靠地重置视图状态并释放页面资源(包括任何正在运行的 JavaScript)。
http://developer.android.com/reference/android/webkit/WebView.html#clearView%28%29
| 归档时间: |
|
| 查看次数: |
6558 次 |
| 最近记录: |