2011-05-24 68 views
1

作品:shouldOverrideUrlLoading將加載 「文件:///」,而不是 「HTTP://」 URL參數

mWebView.setWebViewClient(new WebViewClient() { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl("file:///android_asset/www/css-js/app.css"); 
     return true; 
    } 
}); 

不起作用:

mWebView.setWebViewClient(new WebViewClient() { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl("http://yahoo.com"); 
     return true; 
    } 
}); 
+0

嘗試[此帖](http://stackoverflow.com/questions/3845938/android-how-to-open-new-browser-from-webviewclient)。可能是你需要設置瀏覽器意圖 – Kyle 2011-05-24 19:05:33

+0

下面的答案是否解決了你的問題?如果沒有,請詳細說明。 – 2011-05-28 09:09:44

回答

2

的問題就是這樣的無限循環正在創建。它每次重寫新的loadUrl。例如,這個工程沒有問題:簡單地保存最後的覆蓋網址,並用if(!url.equals(lastOverrideUrl))比較

public boolean shouldOverrideUrlLoading(WebView view, String url) 
{ 
    if(!url.toLowerCase().contains("yahoo.com")) 
    { 
     view.loadUrl("http://yahoo.com"); 
     return true; 
    } 
    return false; 
} 

注意不會在這種情況下(和許多其他)工作,因爲網址會自動從「HTTP改變:/ /yahoo.com「改爲」http://www.yahoo.com/「。

相關問題