【问题标题】:Android WebView does not start standard browser on link click - shouldOverrideUrlLoading has no effectAndroid WebView 在链接点击时不启动标准浏览器 - shouldOverrideUrlLoading 无效
【发布时间】:2013-02-10 15:43:50
【问题描述】:
在我的 Android 应用程序中,我有一个带有自定义 WebViewClient 的 WebView 元素。它通过onReceivedError() 显示错误页面,并为shouldOverrideUrlLoading() 返回false。
我希望 WebView 现在可以在外部浏览器中打开链接,而不是在 WebView 本身中打开链接,正如在 SO 上的许多其他帖子中所解释的那样。但是,这不起作用。它仍然会打开 WebView 中的每个链接。
这可能与我不通过 loadUrl() 而是通过 loadData() 加载内容并传递 html 字符串这一事实有关吗?
【问题讨论】:
标签:
java
android
webview
webviewclient
android-webview
【解决方案1】:
您必须使用意图在外部浏览器中启动 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;
}