2013-02-10 64 views
2

在我的Android應用程序中,我有一個帶有自定義WebViewClient的WebView元素。它通過onReceivedError()顯示一個錯誤頁面,並且它返回false爲shouldOverrideUrlLoading()Android WebView無法啓動鏈接點擊標準瀏覽器 - shouldOverrideUrlLoading沒有效果

我期望WebView現在可以在外部瀏覽器中打開鏈接,而不是在WebView本身中,因爲它在SO上的許多其他帖子中都有解釋。但是,這不起作用。它仍然會打開WebView中的每個鏈接。

它可能與事實有關,我不通過loadUrl()加載內容,而是通過loadData()並傳遞一個html字符串?

回答

4

您必須使用意圖在外部瀏覽器中啓動url。方法shouldOverrideUrlLoading()是一個很好的候選人:

@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    Context context = view.getContext(); 
    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 

    // Launch default browser 
    context.startActivity(browserIntent); 

    return true; 
} 
+0

就是這樣!完美的作品。 – David 2013-02-10 17:26:45