尝试使用Javascript重定向重定向android webview中的本地html页面,拒绝在Logcat中启动意图:
在Android 5.1.1上进行测试
document.location = "index.html";
拒绝在没有用户手势的情况下启动意图,URI:
file:///android_asset/index.html
答案 0 :(得分:41)
我在1000次尝试Android.developer时阅读了文档,这是我的解决方案
我不知道你是否明白,我会说西班牙语
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
答案 1 :(得分:6)
这对我有用:
webView.setWebViewClient(new WebViewClient());
答案 2 :(得分:0)
这里几乎没有问题。
从最新的机器人,WebView和Chrome客户端是独立的应用程序,可以在没有用户意图的情况下自动更新。
从Chrome x> = 25版本,他们更改了加载网址在使用webview组件的Android应用程序中的工作方式。 https://developer.chrome.com/multidevice/android/intents看起来他们在没有用户手势的情况下阻止更改网址并从JavaScript计时器启动
这里的解决方案是强制用户激活URL更改,例如点击按钮。
此外,您可以覆盖上面提到的方法" shouldOverrideUrlLoading"在WebView客户端。
答案 3 :(得分:-1)
作为替代,我想是将每个按钮单击事件触发动作添加到JavascriptInterface的addJavascriptInterface
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;
}
}
可能不是一个好方法,但至少它的工作:-) 感谢