在我的Android应用程序中,我有一个带有自定义WebViewClient的WebView元素。它通过onReceivedError()
显示错误页面,并为shouldOverrideUrlLoading()
返回false。
我希望WebView现在能够在外部浏览器中打开链接,而不是在WebView本身中打开链接,因为SO上的许多其他帖子对此进行了解释。但是,这不起作用。它仍会打开WebView中的每个链接。
是否可能与我不通过loadUrl()
但是通过loadData()
加载内容并传递html字符串这一事实有关?
答案 0 :(得分:4)
您必须使用意图在外部浏览器中启动网址。方法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;
}