2016-01-14 60 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);在仔細閱讀你的答案之後,我發現你實際上是在加入不速之客......我錯過了。 –