2016-01-14 61 views

回答

1

从应用程序方面,你可以这样做:

mWebView.loadUrl("chrome://crash"); 

注意,你不能这样做,直接从JS/HTML代码 - 此URL的请求必须来自浏览器端。但是你可以使用Java桥从JS侧接收命令:

class WebViewCrasher { 
    @JavascriptInterface 
    public void crash() { 
     // post a task to UI thread to load "chrome://crash" 
    } 
} 
mWebView.addJavascriptInterface(new WebViewCrasher(), "crasher"); 

然后在你的JS代码,您可以拨打:

crasher.crash(); 

但要确保你是不是在释放注入这个对象版本的你的应用:)

+0

我添加crasher.crash()到我的JS代码,但没有崩溃,我得到了“未捕获的ReferenceError:未定义的crasher”。结果是JS代码停止了,但WebView并没有导致崩溃。 –

+0

你对'addJavascriptInterface'的调用是否在调用'loadUrl'之前(或者用来将内容加载到WebView中的任何方法)?见http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String) –

+0

第一个webView.addJavascriptInterface(新的JsObject(),“interOp” );然后webView.loadUrl(myurl);在仔细阅读你的答案之后,我发现你实际上是在加入不速之客......我错过了。 –