我有一个android webview并允许用户在window.onload回调中使用他们自己的javascript(它完全孤立,我个人没有看到安全风险)。如果输入以下内容,则会出现问题
while(true){
}
在java方面,我启动一个计时器,大约5秒钟后,如果JavaScript还在继续,我会尝试停止webview。我尝试过各种各样的事情:
webView.stopLoading();
webView.loadData("", "text/html", null);
webView.freeMemory();
webView.pauseTimers();
webView.destroy();
Class.forName("android.webkit.WebView").getMethod("onPause", (Class[]) null).invoke(webView, (Object[]) null);
每个人都变得更加绝望:)。在我退出应用程序之前,没有任何工作,并且线程继续耗尽处理器。有谁知道我怎么能正确阻止它?
非常感谢任何帮助, 伊恩
答案 0 :(得分:0)
您是否尝试在销毁WebView之前禁用JavaScript?看起来JavaScript解释器比你的WebView更久,但是如果你告诉它停止执行,那么你将解决你的问题。我会尝试在你的定时方法的顶部使用它:
webView.getSettings().setJavaScriptEnabled(false);