admin 管理员组文章数量: 887016
最近越来越多的项目需要混合开发,但是原生的WebView也存在着不少问题,然后,找到了腾讯X5的浏览器,个人觉得还是挺好用的,集成也简单。
具体的集成步骤官网上也已经写的很具体了,下载资源,根据官方文档就可以集成了,官网地址。
今天主要是想说一下我在项目使用当中遇到的问题以及解决办法。
1、部分网页会跳转至浏览器,用户体验很糟糕
设置webview的WebViewClient
x5Webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
});
或者直接
x5Webview.setWebViewClient(new WebViewClient());
2、当网页里a连接的标签target="_blank"时,部分网页会打不开
需要重写WebChromeClient里的onCreateWindow方法,具体代码,如下
x5Webview.setWebChromeClient(new WebChromeClient() {
/**
* 当网页里a标签target="_blank",打
* 开新窗口时,这里会调用
*/
@Override
public boolean onCreateWindow(WebView webView, boolean isDialog, boolean isUserGesture, Message resultMsg) {
X5WebView newWebView = new X5WebView(X5WebViewActivity.this);
X5WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(newWebView);
resultMsg.sendToTarget();
newWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView webView, String s) {
progressbar.setVisibility(View.GONE);
}
@Override
public void onPageStarted(WebView webView, String s, Bitmap bitmap) {
progressbar.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
x5Webview.loadUrl(url);
Log.e("url", url);
//防止触发现有界面的WebChromeClient的相关回调
return true;
}
});
return true;
// return super.onCreateWindow(webView, isDialog, isUserGesture, message);
}
});
注意要先加入
x5Webview.getSettings().setSupportMultipleWindows(true);
否则onCreateWindow方法不会被回调
3、手机的返回键事件监听
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (x5Webview != null && x5Webview.canGoBack()) {
x5Webview.goBack();
return true;
} else {
this.finish();
}
}
return super.onKeyDown(keyCode, event);
}
4、要记得释放资源
@Override
protected void onDestroy() {
//释放资源
if (x5Webview != null){
x5Webview.removeAllViews();
x5Webview.destroy();
}
super.onDestroy();
}
按照上述代码,基本上这几个问题就能解决了!!
版权声明:本文标题:Android 【腾讯X5浏览器】的集成与常见问题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1727777485h1162318.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论