2

在我的 Android 应用程序中,我有一个带有自定义 WebViewClient 的 WebView 元素。它通过 显示错误页面onReceivedError(),并为shouldOverrideUrlLoading().

我希望 WebView 现在可以在外部浏览器中打开链接,而不是在 WebView 本身中打开链接,正如在 SO 上的许多其他帖子中所解释的那样。但是,这不起作用。它仍然会打开 WebView 中的每个链接。

这可能与我不通过加载内容loadUrl()而是通过loadData()并传递 html 字符串这一事实有关吗?

4

1 回答 1

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;
}
于 2013-02-10T16:00:38.450 回答