单击外部 link 时如何在 WebView 应用程序中打开网络浏览器?
How to open a web browser in WebView app when an external link is clicked?
我想使用 Intent 在 Web 浏览器中打开外部 links,不应在我的 WebView 应用程序中打开,除非我的内部 links 以“https://www.ecommerce.in/”开头。=19 =]
我编写了如下代码:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (!url.contains("https://www.ecommerce.in/"))
{
Uri uri = Uri.parse(url);
startActivity(Intent.createChooser(new Intent(Intent.ACTION_VIEW, uri), "Choose browser"));
view.loadUrl(url);
CookieManager.getInstance().setAcceptCookie(true);
} else {
webViewProduct.loadUrl(url);
return true;
}
}
这段代码可以正常工作,但问题是当我在网络浏览器上按下后退按钮时,我的 WebView 应用程序正在打开相同的外部 link。
请告诉我哪里做错了。提前致谢。
你应该从你的代码中删除 view.loadUrl(url)
,所以
请按照下面给出的代码替换您的代码
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (!url.contains("https://www.ecommerce.in/"))
{
Uri uri = Uri.parse(url);
startActivity(Intent.createChooser(new Intent(Intent.ACTION_VIEW, uri), "Choose browser"));
CookieManager.getInstance().setAcceptCookie(true);
} else {
webViewProduct.loadUrl(url);
return true;
}
}
我想使用 Intent 在 Web 浏览器中打开外部 links,不应在我的 WebView 应用程序中打开,除非我的内部 links 以“https://www.ecommerce.in/”开头。=19 =] 我编写了如下代码:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (!url.contains("https://www.ecommerce.in/"))
{
Uri uri = Uri.parse(url);
startActivity(Intent.createChooser(new Intent(Intent.ACTION_VIEW, uri), "Choose browser"));
view.loadUrl(url);
CookieManager.getInstance().setAcceptCookie(true);
} else {
webViewProduct.loadUrl(url);
return true;
}
}
这段代码可以正常工作,但问题是当我在网络浏览器上按下后退按钮时,我的 WebView 应用程序正在打开相同的外部 link。
请告诉我哪里做错了。提前致谢。
你应该从你的代码中删除 view.loadUrl(url)
,所以
请按照下面给出的代码替换您的代码
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (!url.contains("https://www.ecommerce.in/"))
{
Uri uri = Uri.parse(url);
startActivity(Intent.createChooser(new Intent(Intent.ACTION_VIEW, uri), "Choose browser"));
CookieManager.getInstance().setAcceptCookie(true);
} else {
webViewProduct.loadUrl(url);
return true;
}
}