我希望允许重定向在 WebView 中自然发生,并且仅在用户单击某些内容时捕获新的 url。
我有类似的问题。我需要在我的活动中的 WebView 中打开一个页面。但是,当用户单击页面中的链接时,我希望它在“新窗口”(即浏览器活动)中打开。如果页面有重定向,这就会出现问题。为了实现这一目标,我做了以下工作:
- 我只在页面加载完成后才显示网络视图。
- 我保留一个布尔值来告诉我页面何时完成加载。用户交互只能在页面加载完成后发生。否则它是一个重定向,应该在我的活动中打开。
代码示例:
private boolean mLoaded = false;
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(mLoaded){ // open in new browser window only if page already finished
try
{
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
activity.startActivity(intent);
}
catch (Exception e)
{
Logger.log(e);
}
}
return true;
}
@Override
public void onPageFinished(WebView webView, String url) {
layoutHoldingTheWebView.setVisibility(View.VISIBLE);
mLoaded = true;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)