栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android WebView target=“

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android WebView target=“

网页可使用target="_blank"打开新窗口,但webview默认是不会通过WebChromeClient中的onCreateWindow方法的,须预先设置:

final WebSettings settings = wv.getSettings();
settings.setSupportMultipleWindows(true); // 支持多窗口

然后在WebChromeClient回调中处理:

public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
	WebViewmy 新webview = ...创建...;  
	((WebView.WebViewTransport)resultMsg.obj).setWebView(新webview);
	resultMsg.sendToTarget(); 
	return true;
}

创建新的webview自己处理,包括设置WebSettings与各种回调。完成后,成功使链接在新的webview中打开。但你以为这就完了?再试一次,结果发生了崩溃:

New WebView for popup window must not have been previously navigated

意思就是不能复用弹出的webview,每次都让你重新创建。Fuck安卓的shabi逻辑,我复用我的,要你管?

最终是这样,没有调用它的resultMsg:

Message href = view.getHandler().obtainMessage();
view.requestFocusNodeHref(href);
String url = href.getData().getString("url");
href.recycle();
新webview.loadUrl(url);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759531.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号