Android:使用..完成操作以加载webview

时间:2013-07-28 13:57:06

标签: android android-webview android-websettings

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

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

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); 

1 个答案:

答案 0 :(得分:1)

不确定WebChromeClient,一个替代方案是:

mWebView.setWebViewClient

WebChromeCLient更改为WebViewClient,然后覆盖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());