Android webView 打开新窗口的模式

最近自己在开发广告sdk这个项目,在对接其他第三方平台广告时,遇到了一个问题,就是第三方平台广告返回给我们的数据广告是一个HTML文件,自己用纯代码写了一个布局,如下图:这里写图片描述
我是通过webview的形式展现出来的,这是一个插屏广告,由于插屏广告不是全屏的,所以点击广告时,webview里面的超链接广告不能全屏,查看了一下第三方广告平台返回给我们的HTML文件元素是target=”_top”,顺便看了一下API, target=”_top”表示 在整个窗口中打开被链接文档,target=”_balnk”表示在新窗口中打开被链接文档,没办法,我们得通过JS将target=”_top”改为target=”_blank”。

webView.setWebViewClient(new WebViewClient() {

            public void onPageFinished(WebView view, String url) {
            view.loadUrl("javascript: var allLinks = document.getElementsByTagName('a'); if (allLinks) {var i;for (i=0; i<allLinks.length; i++) {var link = allLinks[i];var target = link.getAttribute('target'); if (target && target == '_top') {link.setAttribute('target','_blank');link.href = 'newtab:'+link.href;}}}");
            }

            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                if(url.startsWith("newtab:")){

                    //对新的URL进行截取,去掉前面的newtab:
                    String realUrl=url.substring(7,url.length());
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    intent .setData(Uri.parse(realUrl));
                    main.startActivity(it);
                }else{
                    view.loadUrl(url);
                }
                return true;
            }
        });
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值