如何解决如何获取Webview iframe链接以启动浏览器?
| 我正在使用WebView显示一个页面,其中html包含一个iframe,其中src = \“ xxxxx.php \”。 该iframe加载为带有基础链接的广告图像。如果我点击该图片(链接),它会尝试将新页面加载到原始iframe中(在很小的空间中显示得并不多)。我想做的是单击链接以在新的浏览器窗口中打开引用的页面,而我的应用保持不变。 如果我使用Android浏览器显示原始页面并单击此iframe,则会将链接加载为新页面。如何使用WebView获得相同的行为? iframe链接似乎未将WebViewClient与shouldOverrideUrlLoading()一起使用。解决方法
我在WebView源中的Google广告也遇到了类似的问题,因为它们也在iframe中加载。这是我解决的方法:
在您的WebViewClient中尝试此操作,通常在您的ShouldOverrideUrlLoading()下
@Override
public void onLoadResource (WebView view,String url) {
if (url.contains(\"googleads\")) {
if(view.getHitTestResult().getType() > 0){
view.getContext().startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(url)));
view.stopLoading();
Log.i(\"RESLOAD\",Uri.parse(url).toString());
}
}
}
,我可以对以前的代码提出一个解决方案:
@Override
public void onLoadResource (WebView view,String url) {
if (url.contains(\"googleads\")) {
if(view.getHitTestResult() != null &&
(view.getHitTestResult().getType() == HitTestResult.SRC_ANCHOR_TYPE ||
view.getHitTestResult().getType() == HitTestResult.SRC_IMAGE_ANCHOR_TYPE)){
view.getContext().startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(url)));
view.stopLoading();
}
}
}
,要检测链接,请在iframe中单击。链接应具有其他参数。我发现:
当iframe链接的目标参数为target = \“ _ parent \”或target = \“ _ top \”时,将执行WebViewClient的shouldOverrideUrlLoading,
如果iframe链接包含target = \“ _ blank \”参数,则WebViewClient的onCreateWindow
似乎没有目标参数的iframe链接无法通过WebViewClient准确跟踪
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。