2013-07-28 41 views
0

我使用WebChromeClient加載網頁。它適用於某些網址,但對於其他網址,Android菜單顯示爲「完成操作...」,我必須在上下文導航器,Chrome或默認導航器之間進行選擇。Android:使用..完成操作,用於加載webview

我想在內部(在我的應用程序中)加載每個網址。 下面是代碼:

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

不確定WebChromeClient,一個替代方法是:從WebChromeCLientWebViewClient

mWebView.setWebViewClient

更改然後覆蓋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()); 
+0

是的,這是一個解決方案,但如果onProgressChanged沒有定義WebViewClient? – wawanopoulos

+0

猜你必須處理加載一個'WebViewClient'自己。或者嘗試設置兩個客戶端 – Blundell