腾讯X5内核使用 Android WebView 的一些小问题
大家好,我是博客小白,第一篇文章,文笔不好,务喷,希望能给各位提供点帮助
公司做个商城,然后我就简单的做个启动引导页,然后用个原生WebView套一下,加个加载动画,解决下第三方登录支付的返回问题,这些问题以前也搞过,哎哟,俩小时,一个项目OK了,沾沾自喜中。
然后过了几天,老板就开始反馈,APP加载太慢了,滑动卡顿,然后叫我组解决。然后我想了下,已经设置了延时加载图片,你这个图片那么多,卡卡的怪我咯,想了想,哎,想在下面这个方法中搞个图片压缩替代
@Override
public WebResourceResponse shouldInterceptRequest(WebView webView, String s) {
return super.shouldInterceptRequest(webView, s);
}
然后,我忘记了百度搜索什么鬼的时候,在一个贴吧看到了腾讯X5内核,替代系统内核,然后我果断搜索下了官网 http://x5.tencent.com/tbs/
(Ps: 这编辑器什么鬼啊,怎么没有url输入啊,还有,我编辑了html代码,加了个<a>标签为什么不管用)
哎哟,不错啊,高大上啊,赶紧下个demo,看着套一下,挺高大上的,你们看 ↓↓↓↓↓↓↓↓↓↓↓↓
哇,简直了对吧,哈哈,就你了。
下载官方demo,然后,怎么是个eclipse的版本啊,而且只有这一个,这简直不能配上马总的高大上啊,哎哟算了,先导入运行再说。
导入as后,配置下gradle,导入jar包,so库,哎哟,腾讯就是腾讯啊,资源,代码一个错误没有,用gradlew build打个包瞅瞅呗。
咦,报错了,这个错误见过很多次,资源错误,模块冲突,都爆这个错误, 应该是包导入有问题吧。
然后,我怀疑我遇到个假腾讯网站,不说了,贴图
资源清单里面有4个activity没有定义,握草什么鬼,你认真的找了一遍,jar看完也没有这些activity啊,啧啧啧,注释掉也跑不了
然后我再次百度了下腾讯X5内核官网,百度上这一个X5官网,就这个,握草,腾讯,马总,看在我为你花了那么多钱的份上,你就这么对待我这位金主的么
哎,官网靠不住,马上上百度。
在百度瞅了瞅,然后顺便集成下,下面我就和各位说下我的集成步骤(可用)。
1. 导入jar包,和so库
2. 用到的所有原生WebView导入的类和接口都改导入 com.tencent.smtt.sdk 里面的类,类接口名对应
3. AndroidManifest.xml里加入权限声明:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
4. 初始化X5内核。
// 在 application 里面加入
@Override
public void onCreate() {
super.onCreate(); preinitX5WebCore();
//预加载x5内核
Intent intent = new Intent(this, AdvanceLoadX5Service.class);
startService(intent);
} private void preinitX5WebCore() {
if (!QbSdk.isTbsCoreInited()) {
QbSdk.preInit(getApplicationContext(), null);// 设置X5初始化完成的回调接口
}
} // x5 init service
public class AdvanceLoadX5Service extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
} @Override
public void onCreate() {
super.onCreate();
initX5();
} private void initX5() {
// 预加载X5内核
QbSdk.initX5Environment(getApplicationContext(), cb);
} QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() { @Override
public void onViewInitFinished(boolean arg0) {
// TODO Auto-generated method stub
//初始化完成回调
} @Override
public void onCoreInitFinished() {
// TODO Auto-generated method stub
}
}; }
握草, 能用了,好感动 , 哈哈哈哈
然后还有就是,它右边自带滚动条小方块,用WebView去滚动的方法没软用,↓↓↓↓↓
mMainWebView.setHorizontalScrollBarEnabled(false);
mMainWebView.setVerticalScrollBarEnabled(false);
//下面方法去掉
IX5WebViewExtension ix5 = mMainWebView.getX5WebViewExtension();
if (null != ix5) {
ix5.setScrollBarFadingEnabled(false);
}
好了,经过上面的配置,x5能搞了
说下x5内核优点:
1. 原生WebView自带不支持git图片 x5支持
2. 恩,加载快很多,它对图片压缩加载了
3. 显示的时候,就是回调 onPageFinished() 这个的时候,界面已经很流畅了,这个boos肥肠满意
4. x5看在我帅的面子上没给我报错,恩,好东西
我想说下第三方登录支付返回的问题和我的解决方案:
1. 我在 WebViewClient 接口的 onPageStarted() 用 ListView 保存非本公司的所有url (如果你问我为啥不在onPageFinished,也行我会告诉你我乐意,不不不,放onPageFinished有问题,别问我为什么,我不知道,你打印这俩个地方的url,特喵的少了几个url)
2. 我在onBackPressed() 里面搞了点事,至于什么事,不好解释呀,贴代码吧
@Override
public void onBackPressed() { if (mMainWebView.canGoBack()) {
int index = mGoBackUrlList.size();
if (index == 0 || index == 1) {
mMainWebView.goBack();
mGoBackUrlList.clear();
} else {
if (mMainWebView.canGoBackOrForward(-index)) {
mMainWebView.goBackOrForward(-index);
mGoBackUrlList.clear();
} else {
mMainWebView.goBack();
mGoBackUrlList.clear();
}
} } else {
super.onBackPressed();
}
}
暂时能用,没人教我,只好用笨方法了 (PS:我想喷一下银联网页在线支付,你特么是大爷,进去了不绑定银行卡,不支付你特么就不然退是吧,行吧,大爷)
好了,就到这了,上面返回的问题,有人晓得不,能告诉下我不。 哎哟,谢谢哥几位啦
(小弟菜鸟一枚,来到新地方,多有得罪,别见怪哈)
腾讯X5内核使用 Android WebView 的一些小问题的更多相关文章
- android 腾讯x5内核 浏览器
1.浏览器内核: 主流浏览器内核介绍(前端开发值得了解的浏览器内核历史) 浏览器内核历史介绍: 在android 4.4之前,浏览器用的还是webkit 在android 4.4之后,google就抛 ...
- 安卓开发笔记(二十四):手把手教你一步步集成腾讯X5内核(Tencent TBS X5)
1.为什么要集成腾讯X5内核? X5内核相对于系统webview,具有下述明显优势: 1) 速度快:相比系统webview的网页打开速度有30+%的提升: 2) 省流量:使用云端优化技术使流量节省20 ...
- 腾讯x5Webview取代原生android Webview
一.官方地址: https://x5.tencent.com/tbs/ 二.不需要申请开发者,QQ直接登录,下载即可集成到项目中. 三.与原生的webview对比优势 1) 速度快:相比系统webvi ...
- 腾讯X5内核使用详解(X5内核播放器使用如何去除控制栏全屏播放)以及一些注意事项
例子下载地址 https://www.lanzous.com/i2zsv5g GIT就不用了麻烦的不行 本人安卓刚学 就上X5内核弄了老长时间由于对maven 和idea不熟悉刚开始导包都是 ...
- 记录一次腾讯X5内核64位手机初始化失败
之前一直在使用x5内核,只需要一个jar包和so文件就能让webview实现多余原生webview的水平,在32位的手机上能够正常运行,但是到了64位手机上就报如下错误: E/ERROR:: .... ...
- Android WebView 加载超长 JS 数据
在之前的文章里面,我总结过WebView如何与网页交互,也就是Java如何和JS交互 —— Android WebView 总结 —— Java和JavaScript交互. 基于这篇文章,我们基本上能 ...
- 集成TBS(腾讯浏览服务)x5内核的webView
由于公司产品需要展示html5页面,一开始我使用的是android自带webview,一些简单的页面没什么问题,但是碰到比较复杂的页面就让人无语了. 1.Android各大厂商都有自己定制的ROM,导 ...
- Android使用腾讯浏览服务X5内核
[前期准备] 腾讯X5 jar包下载地址 [点击打开] 本次完整DEMO源码 [打开Github] [集成步骤] 第一步:下载jar包添加到项目 第二步:添加权限 <uses-permissio ...
- 静态集成腾讯TBS X5内核WebView,从微信提取新版30M浏览器内核打包进apk
目录 前情提要 第一步:下载老版本SDK得到jar 获取SDK 集成SDK 步骤二.下载提取最新TBS X5内核 方法1:从微信中提取 方法2:App内内访问tbs调试页安装新内核 步骤三.集成内核到 ...
随机推荐
- LPC2478的外部中断使用
LPC2478外部中断 2478的外部中断模型如下 也就是说,port0和2支持外部中断,EINT0-2是三个独立管脚的中断,而EINT3则是port0和2的所有中断共同拥有的向量 对于port0和2 ...
- API WAVE 专栏
关于音频输入.输出设备的使用 源:API WAVE 专栏
- 全方位分析Objcetive-C Runtime 分类: ios技术 2015-03-11 22:29 77人阅读 评论(0) 收藏
本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 简介 与Runtime交互 ...
- 中国产品众筹NO.1诞生
中国产品众筹NO.1诞生 淘宝众筹打响新拐点之战 http://bbs.taobao.com/catalog/thread/508895-317240623.htm?spm=1.7274553.199 ...
- [osg]osg显示中文信息
转自:http://www.cnblogs.com/feixiang-peng/articles/3152754.html 写好了在osg中实时显示中文信息的效果.中间遇到两个问题,一个是中文显示,一 ...
- MySQL性能分析及explain的使用说明
1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id selecttype table type possible_k ...
- C++中的IO流
一,标准输入流 1.基本功能(头文件为iostream) char ch = cin.get();// 一次读取一个字符,如果遇到EOF则结束. cin.getline(buf,length);// ...
- Python3基础 add() 向集合中加入新的元素
镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...
- UVa 10137 & ZOJ 1874 The Trip
题目大意:n个学生去旅行,旅行中每个学生先垫付,最后平摊所有费用,多退少补,并且支出差距控制在1分钱以内,求最小的交易金额. @2013-8-16 以前在zoj做过,把原来的代码直接提交了,虽然AC了 ...
- spark中数据的读取与保存
1.文本文件 (1)读取文本文件 JavaRDD<String> input =sc.textFile(dir) (2)保存文本文件 result.saveAsTextFile(dir)) ...