Android Webview:禁用确认导航

时间:2016-10-17 04:04:31

标签: android webview

是否可以从我正在查看的网站中禁用Android webview中的确认导航?

enter image description here

我试过这个one而我所做的就是回归' true'没有显示任何弹出窗口,但导航弹出窗口仍然显示。我想禁用它,我想在没有任何警告的情况下自动导航。

这是我的webview的CustomWebChromeClient

public class CustomWebChromeClient extends WebChromeClient {

    @Override
    public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
        return true;
    }
}

3 个答案:

答案 0 :(得分:2)

您可以覆盖onJsBeforeUnload以始终返回true。

onJsBeforeUnload是在弹出确认导航对话框之前调用的回调。

https://developer.android.com/reference/android/webkit/WebChromeClient.html#onJsBeforeUnload(android.webkit.WebView,java.lang.String,java.lang.String,android.webkit.JsResult)

答案 1 :(得分:0)

为什么不在xml中创建webView并在活动中使用该webview而不是使用带有webChromeClient的类,以下步骤可能对您有帮助。

第1步:     在xml文件中创建webview并在Java中调用此视图

webView = (WebView) findViewById(R.id.exampleWebView);

第2步:

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setDomStorageEnabled(true);

第3步:

webView.loadUrl(getResources().getString(R.string.olo_non_loggedin_url));
webView.setWebViewClient(new WebViewClient() {

        @Override
        public void onPageStarted(WebView view, String url,
                Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            pBar.setVisibility(View.VISIBLE);
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            pBar.setVisibility(View.GONE);
        }
    });

答案 2 :(得分:0)

对我来说,按如下所示重写onJsConfirm:

@Override
public boolean onJsBeforeUnload(WebView view, String url, String message, JsResult result) {
     result.confirm();
     return true;
}