WebView爬坑之旅2--a标签是target="_blank"时创建新窗口
2017-11-10 11:47
2471 查看
如果网页里链接的a标签是target=”_blank”,而碰巧你的WebView又没有处理,那这个时候就会出现狂点链接/button页面却无动于衷的情况,给人想砸手机的感觉…
好了,解决方案其实也挺简单的,继承WebChromeClient,重写onCreateWindow是关键,请看代码:
前提要设置这个,不然不会走回调
好了,解决方案其实也挺简单的,继承WebChromeClient,重写onCreateWindow是关键,请看代码:
/** * 当网页里a标签target="_blank",打开新窗口时,这里会调用 */ @Override public boolean onCreateWindow(WebView webView, boolean isDialog, boolean isUserGesture, Message resultMsg) { X5WebView newWebView = new X5WebView(activity); X5WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj; newWebView.setWebChromeClient(new CustomWebChromeClient(activity)); newWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (activity != null) { //拦截url,跳转新窗口=,= Intent intent = new Intent(activity, CommWebActivity.class); intent.putExtra(Constants.INTENT_KEY_URL, url); activity.startActivity(intent); } //防止触发现有界面的WebChromeClient的相关回调 return true; } }); transport.setWebView(newWebView); resultMsg.sendToTarget(); return true; // return super.onCreateWindow(webView, isDialog, isUserGesture, message); }
前提要设置这个,不然不会走回调
webSetting.setSupportMultipleWindows(true);
相关文章推荐
- webview onCreateWindow url 新标签的打开 target="_blank"
- Android 获取WebView页面中<a>标签中的target=“_blank”属性
- 解决超链接添加 target="_blank"之后在WebView中不能打开
- 解决超链接添加 target="_blank"之后在WebView中不能打开
- wx.html2.WebView在 target="_blank" or rel="external" 没有反映的解决方法
- a 标签 打开新窗体 target="_blank" 失效 解决办法
- webView加载html动态创建标签
- HTML <base> 标签的 target 属性 —— <base target="_blank" />
- WKWebView调用window.open(url,"_blank”);没有反应的问题
- CefSharp禁止弹出新窗体,在同一窗口打开链接,并且支持带type="POST" target="_blank"的链接
- &lt;a&gt; 标签,target=&quot;blank&quot;,target=&quot;_blank&quot; 的区别。
- 关于html 的a标签的target="__blank ",出现的问题
- 关于html的a标签的target="__blank "的安全漏洞问题
- WebView 加载H5 <Input type="file"/>标签上传图片问题
- <base target="_blank">全部链接在新窗口中打开
- dede:channelartlist和dede:channel调用栏目外部链接时用新窗口target="_blank"
- AJAX方法中提交请求,target="_blank" 不能正确打开新的浏览器窗口
- 为什么我设置了<a>标签target="_self"后,还是不能在当前窗口打开.
- Qt中如何让WebView中的WebPage打开target为_blank属性的外部url链接(二级链接)
- target="_blank" 表示在新窗口中打开页面