Mar*_*cus 10 iframe android webview
我正在使用WebView显示一个页面,其中html包含一个iframe,其中src ="xxxxx.php".
此iframe作为带有基础链接的广告图片加载.如果我点击该图像(链接),它会尝试在原始iframe中加载新页面(在该小空间中没有显示太多内容).我想要发生的是点击链接在新的浏览器窗口中打开引用页面,保持我的应用程序不变.
如果我使用Android浏览器显示原始页面并单击此iframe,则会将链接加载为新页面.如何使用WebView获得相同的行为?使用带有shouldOverrideUrlLoading()的WebViewClient似乎不会被iframe链接调用.
小智 15
我在WebView源中遇到了与谷歌广告类似的问题,因为它们也加载了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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
我可以对以前的代码提出一个修复:
@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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9709 次 |
最近记录: |