【发布时间】:2014-11-19 19:34:30
【问题描述】:
我遇到了一个奇怪的问题。
在我的应用程序中,我需要从 assets 文件夹中加载基于 WebView 中单击按钮的静态 html 文件。
现在 5 个 html 文件中,一个 html 文件包含 15 个静态链接。这些链接需要将用户重定向到移动浏览器中提到的 url。为此,我在我的 html 文件中使用了target="_blank",如下所示。
<div class="lid"><a href="https://www.irctc.co.in/" target="_blank">Railway Reservation </a></div>
现在,这在一个简单的WebView 没有添加任何WebViewClient 的示例应用程序中运行良好。
但我需要一个WebViewClient 来使用我的其他功能。所以当时target="_blank" 完全被忽略了。并且 url 在 WebView 本身中打开。
我找到了一种解决方法,我可以使用shouldOverrideUrlLoading,如下所示:
myWebView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
if(url.equalsIgnoreCase("https://www.irctc.co.in/"))
{
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
else
return super.shouldOverrideUrlLoading(view, url);
}
});
所以这是在默认浏览器中打开该特定网址。
所以基本上我的问题是:
为什么在我们使用WebViewClient 时会忽略target="_blank"?这个问题还有其他解决方法吗?因为我有 15 个链接,我需要比较它们。我无法在新浏览器中加载所有 url,因为有一些链接,也需要在同一个 WebView 中打开。
【问题讨论】:
标签: android webview webviewclient