0

我使用 WebChromeClient 加载网页。它适用于某些 url,但对于其他一些 url,会显示一个 Android 菜单“使用...完成操作”,我必须在上下文导航器、Chrome 或默认导航器之间进行选择。

我想在内部(在我的应用程序中)加载每个 url。这是代码:

mWebView = (WebView) view.findViewById(R.id.webViewArticle);
        mWebView.getSettings().setUseWideViewPort(true);
        mWebView.getSettings().setSupportZoom(true);
        mWebView.getSettings().setBuiltInZoomControls(true);
        mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        mWebView.getSettings().setSupportMultipleWindows(true);
        mWebView.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {
                if(progress < 100 && progressB.getVisibility() == ProgressBar.GONE){
                    progressB.setVisibility(ProgressBar.VISIBLE);
                }
                progressB.setProgress(progress);
                if(progress == 100) {
                    progressB.setVisibility(ProgressBar.GONE);
                }
            }
        });
        mWebView.loadUrl(mUrl); 
4

1 回答 1

1

不确定 WebChromeClient,另一种选择是:

mWebView.setWebViewClient

从 a 更改WebChromeCLientWebViewClientthen 覆盖shouldOverrideUrlLoading

http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView, java.lang.String)

@Override
public boolean shouldOverrideUrlLoading (WebView view, String url) {   
 view.loadUrl(url);
 return false;
}

如果您需要由您完成加载,WebChromeClient您可以尝试以下操作:

webView.setWebChromeClient(new YourWebChromeClient()); 
webView.setWebViewClient(new YourWebViewClient()); 
于 2013-07-28T13:59:52.850 回答