拒绝开始没有用户手势的意图Webview Android

试图redirect本地html页面在Android的webview使用Javascriptredirect,被拒绝开始在Logcat意图:

在Android 5.1.1上testing

document.location = "index.html";

拒绝开始没有用户手势的意图,URI:

file:///android_asset/index.html

我读了1000次尝试Android.developer的文档,这是我的解决scheme

我不知道你懂不懂,我会讲西class牙语

 webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } }); 

这对我工作:

 webView.setWebViewClient(new WebViewClient()); 

这里有几个问题。

  1. 从最新的机器人,WebView和Chrome客户端是分离的应用程序,可以自动更新,无需用户的意图。

  2. 从Chrome x> = 25版本,他们改变了如何加载url在Android应用程序中使用webview组件。 https://developer.chrome.com/multidevice/android/intents看起来像他们阻止更改url,无需用户手势,并从JavaScript定时器启动

这里的解决scheme是强制用户激活URL更改,例如button单击。

另外,您可以在WebView客户端中覆盖上面提到的“shouldOverrideUrlLoading”方法。

作为备用,我想通过添加addJavascriptInterface每个button点击事件火灾行动到JavascriptInterface

 webView.addJavascriptInterface(new java2JSAgent(), "java2JSAgentVar"); //webView webview object public class java2JSAgent { @JavascriptInterface public String getContacts() { String jsonResponse = "{result:'redirected'}"; runOnUiThread(new Runnable() { @Override public void run() { webView.loadUrl("file:///android_asset/index.html"); } }); return jsonResponse; } } 

可能不是一个好方法,但至less它的工作:-)谢谢