抛弃Android自带webview,使用腾讯qq浏览器x5内核的webview浏览器
来源:互联网 发布:手机淘宝店铺名片在哪 编辑:程序博客网 时间:2024/04/29 17:21
Android开发过程中,有些复杂界面原生实现起来比较麻烦,所以现在一般使用h5来实现,如果使用原生的webview来做的话可以在界面滑动会出现卡卡的感觉,所以我推荐大家使用腾讯x5内核,替换系统自带的webview。从目前来看,微信、手Q、空间和QQ浏览器都已经内置了X5内核,基本上所有的手机用户手机里都有QQ浏览器X5内核了。所以第三方只要通过很小的sdk就可以调用到这些app里面的X5。
## 第一步 ##
<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" />
## 第二步 ##
在X5官网,注册开发者帐号,在开发者后台申请APPkey,配置到自己项目的AndroidManifest.xml中;
//x5web <meta-data android:name="QBSDKAppKey" android:value="申请的key"/>
## 第三步 ##
在Application中进行一些初始化
//-----------------------腾讯X5内核的集成 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 } }; QbSdk.setTbsListener(new TbsListener() { @Override public void onDownloadFinish(int i) { } @Override public void onInstallFinish(int i) { } @Override public void onDownloadProgress(int i) { } }); QbSdk.allowThirdPartyAppDownload(true); QbSdk.initX5Environment(getApplicationContext(), QbSdk.WebviewInitType.FIRSTUSE_AND_PRELOAD, cb);
然后参考官方demo,集成进来就行,这里要注意几个坑:
1.在布局文件中需要把X5WebView依赖的报名改成你自己的包名,不然会找不到该类的错误,这点Android Studio提示的不是很智能,包名没有改过来编译也没提示出来。
2.显示网页文字时,可通过长按选择文字的标识判断,如下水滴状选择效果是x5webview 的标志:
3.使用官方demo的例子x5webview加载网页的时候它的左上角会显示手机型号等一堆信息,这个时候可以通过注释掉X5WebView这个类的这个方法来屏蔽。
// @Override// protected boolean drawChild(Canvas canvas, View child, long drawingTime) {// boolean ret = super.drawChild(canvas, child, drawingTime);// canvas.save();// Paint paint = new Paint();// paint.setColor(0x7fff0000);// paint.setTextSize(24.f);// paint.setAntiAlias(true);// if (getX5WebViewExtension() != null) {// canvas.drawText(this.getContext().getPackageName() + "-pid:" + android.os.Process.myPid(), 10, 50, paint);// canvas.drawText("X5 Core:" + QbSdk.getTbsVersion(this.getContext()), 10, 100, paint);// } else {// canvas.drawText(this.getContext().getPackageName() + "-pid:" + android.os.Process.myPid(), 10, 50, paint);// canvas.drawText("Sys Core", 10, 100, paint);// }// canvas.drawText(Build.MANUFACTURER, 10, 150, paint);// canvas.drawText(Build.MODEL, 10, 200, paint);// canvas.restore();// return ret;// }
4.可能在查看视频播放类网页的时候,你上面写的都没有问题,但是这个时候你的视频全屏播放有问题,只有声音界面空白看不到效果,这个时候你注册的activity配置信息需要加上:
android:configChanges="orientation|screenSize|keyboardHidden"/>
0 0
- 抛弃Android自带webview,使用腾讯qq浏览器x5内核的webview浏览器
- 抛弃Android自带webview浏览器内核,使用腾讯X5服务webview浏览器
- Android使用腾讯X5内核WebView
- 腾讯X5内核使用 Android WebView 的一些小问题
- android 腾讯x5内核 浏览器
- Android 使用腾讯X5 Webview浏览器拍照或从相册上传图片
- Android 使用腾讯X5 Webview浏览器拍照或从相册上传图片
- WebView的优化--使用腾讯的x5内核
- android如何使webview不跳到自带的浏览器上
- 腾讯TBS X5 WebView的简单使用
- 腾讯X5浏览器 TBS 代替Android WebView展示H5字体大小适配
- 微信端用的QQ浏览器, QQ浏览器X5内核问题汇总
- 腾讯X5浏览器内核接入
- Android腾讯X5内核WebView加载失败原因
- android webview 运行时不调用系统自带浏览器
- webView的使用,浏览器
- 集成TBS腾讯浏览服务X5内核的Webview
- DebugGap调试腾讯X5内核webview
- Python单元测试框架—生成HTML测试报告
- linux 用户登录安全配置
- 什么是浏览器窗口?
- [LeetCode]--237. Delete Node in a Linked List
- MFC中判断文件夹是否存在及创建文件夹的方法
- 抛弃Android自带webview,使用腾讯qq浏览器x5内核的webview浏览器
- Elasticsearch集群安装
- printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出方式?
- JEECG pom
- 将Office Web App整合到自己的项目中(WOPI Host 开发)
- 第二天
- SpringMVC原理&MVC设计思想
- iOS中.a与.framework库的区别
- android intent 传递list或者对象