1、为什么要集成腾讯 X5 浏览器内核

肯定是事出有因,简单来说,JS代码写的不标准,与部分机型内嵌套的浏览器内核产生矛盾,出现底层(os)bug导致,不得不费事搞一个其它内核进行加载网页,具体原因。

2、官方网站及导入 jar 包等

(1)、TBS腾讯浏览服务、jar 下载地址、官方接入文档

目前为止(2018/8/3),就三种。如图:

TBS sdk

我们就下载对简单第一种吧,足以满足我们的需要了。

(2)、项目内导入jar文件

解压之后,文件很多,但是有用的我感觉就是jar文件了。

解压之后

(3)、如何在自己项目内集成jar文件(基础)

第一步:将“.jar”文件考入到项目下面的libs文件夹,如图:

项目内拷入 jar 文件

第二步:在 jar 文件上右击,调出下拉菜单 ,点击下图标注的 Add As Library... 选项

第二步

第三步:选择jar 文件添加到的项目,我这里直接确定就行了:

第三步

第四步;等待Android Studio 进行同步下载,配置等等。

第五步:检查是否导入成功

第五步

3、项目实战

(1)、布局代码

布局内创建一个腾讯的 WebView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><include layout="@layout/activity_title_bar" /><com.tencent.smtt.sdk.WebViewandroid:id="@+id/wv_task"android:layout_width="match_parent"android:layout_height="match_parent"android:visibility="gone" /></LinearLayout>

(2)、 Application 内进行相关初始化操作(重要)

  @Overridepublic void onCreate() {super.onCreate();//非wifi情况下,主动下载x5内核QbSdk.setDownloadWithoutWifi(true);//搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {@Overridepublic void onViewInitFinished(boolean arg0) {//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。}@Overridepublic void onCoreInitFinished() {}};//x5内核初始化接口QbSdk.initX5Environment(getApplicationContext(), cb);}

QbSdk.setDownloadWithoutWifi(true);:该方法默认为 false,表示为当手机内没有 X5 内核并且当为为非wifi环境,调用系统的内核,既然是调用系统自带的,那我们还集成 X5 干嘛(有毛病?太勤快了?有那时间打会王者荣耀好不)。所以,这里设置为true,但是设置为true 就会导致用那里会产生 24M 左右的流量。在当下我们身边充斥着 微信与qq,凡是有智能机就必装的软件,你没有,那没办法,花点流量吧。我个人建议设置为 true ,虽然有点流氓吧,但是没办法啊。

这里引入一下腾讯爸爸(暂且称之为爸爸)的文档哈:

有没有 很霸气侧漏

(3)、项目内使用WebView
第一步、初始化

  @BindView(R.id.wv_task)WebView wvTask;

第二步、激活 js 调用,设置 webView 活跃状态

@SuppressLint("SetJavaScriptEnabled")@Overridepublic void onResume() {super.onResume();wvTask.onResume();wvTask.getSettings().setJavaScriptEnabled(true);}

第三步、设置 WebView 的相关属性

        wvTask.getSettings().setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。wvTask.getSettings().setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放wvTask.getSettings().setDisplayZoomControls(true); //隐藏原生的缩放控件wvTask.getSettings().setBlockNetworkImage(false);//解决图片不显示wvTask.getSettings().setLoadsImagesAutomatically(true); //支持自动加载图片wvTask.getSettings().setDefaultTextEncodingName("utf-8");//设置编码格式String url="http://47.95.243.116/#/bigScreen";wvTask.loadUrl(url);Logger.d("监控界面加载的url为: " + url);//该界面打开更多链接wvTask.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView webView, String s) {webView.loadUrl(s);return true;}});//监听网页的加载进度wvTask.setWebChromeClient(new WebChromeClient() {@Overridepublic void onProgressChanged(WebView webView, int i) {if (i < 100 && MainTaskFragment.this.isVisible()) {tvTaskProgress.setVisibility(View.VISIBLE);webView.setVisibility(View.GONE);} else {if (MainTaskFragment.this.isVisible()) {tvTaskProgress.setVisibility(View.GONE);webView.setVisibility(View.VISIBLE);}}}});

这里指的说的一个事情是,腾讯的内核不支持 onPageStarted()方法,所以你如果要监听加载进度则只能在onProgressChanged进行相关切换 dialog 等操作。

相关配置,按需来就好了,我只需要上面那些;

第四步:退出界面暂停 webView的活跃,并且关闭 JS 支持

@Overridepublic void onPause() {super.onPause();wvTask.onPause();wvTask.getSettings().setLightTouchEnabled(false);}

第五步:关闭界面时,销毁webview

//销毁 放置内存泄漏@Overridepublic void onDestroy() {if (this.wvTask != null) {wvTask.destroy();}super.onDestroy();}

当然了,各位小伙伴可以看一下官方demo,也可以留言问我,我懂的一定给你解答哈。对了 X5 内核支持的视频格式比原生的格式多很多。各位可以探索。马上周末了。祝大家有个好周末哈。

Android 项目集成腾讯X5浏览器内核相关推荐

  1. Android集成腾讯X5浏览器内核库

    Android集成腾讯X5浏览器内核库 一.相关配置 1. 相关地址 2.引入SDK 3. AndroidManifest配置 二.Application中初始化内核 三.代码实现 1. 自定义带Pr ...

  2. android安卓接入腾讯X5浏览器内核TBS基本使用,配置腾讯TBS

    更多其他页面-自定义View-实用功能合集:点击查看 使用腾讯Tbs,会导致上架google应用商城失败! 关于X5内核的一些bug解决,可以查看这些文章: 链接: 解决bug. 安卓原生webvie ...

  3. android 腾讯x5浏览器,【Android Web】腾讯X5浏览器的集成与常见问题

    前言 近年来,混合开发也越来越用的更多,而原生webview的各种坑,比如说 上传图片.文件问题.视频全屏问题(什么在微信上打开都是好的,你这怎么全屏不了).版本差异问题,所以还是建议使用腾讯x5浏览 ...

  4. 腾讯X5 浏览器内核加载

    1.腾讯X5浏览器 sdk 官网 地址 腾讯浏览服务 2.腾讯X5 浏览器 sdk 加载 需要内存卡权限 加载成功率才高,因为有了内存读取权限,可以读取腾讯QQ 和微信的X5 内核,共用他们的内核,不 ...

  5. Android接入腾讯X5浏览器内核

    技术特性 腾讯浏览服务是致力于优化移动端webview体验的整套解决方案.该方案由SDK.手机QQ浏览器X5内核和X5云端服务组成,解决移动端webview使用过程中出现的一切问题,优化用户的浏览体验 ...

  6. android x5 视频全屏,腾讯X5浏览器内核全屏播放视频相关问题

    最近项目中接入了腾讯X5SDK用于展示H5与原生交互 有一个需求是在线播放H5中的视频且能全屏 原本是按照Demo中的代码写的.也没发现什么问题 但是发现一点击全屏播放的按钮 视频就卡死了. 网上搜了 ...

  7. 腾讯X5浏览器内核静态集成方案

    方案1:将内核复制到sd卡中进行安装 注意:可以动态集成,将内核包放到云端,需要是进行下载. 代码如下, 注意:执行 QbSdk.installLocalTbsCore 进行安装时,需要一点时间,安装 ...

  8. 安卓 简单集成腾讯X5 浏览器

    由于安卓本身的浏览器已经满足不了开发的需求(背景 是在火热的H5技术时代),本身的不管是webkit 还是Googlekit  都会出现问题,大部分的H5 都会分享到朋友圈,而鹅厂的移动端浏览器 就显 ...

  9. 接入腾讯X5浏览器内核天坑指南

    按文档接入sdk后app打开网页 http://soft.imtt.qq.com/browser/tes/feedback.html 显示000000表示加载的是系统内核, 显示大于零的数字表示加载了 ...

最新文章

  1. 出现module ‘xgboost‘ has no attribute ‘DMatrix‘的临时解决方法
  2. Spring HTTP Invoker使用介绍
  3. 1349 - View's SELECT contains a subquery in the FROM clause
  4. ASP.NET MVC中如何实现页面跳转
  5. php打印 二维数组,PHP中遍历二维数组_以不同形式的输出操作实例
  6. 【算法图解|5】javaScript求两个数的最大公约数
  7. html登录页面的校验控件,HTML5一款有趣智能的密码输入界面控件
  8. ASP.NET Core MVC 打造一个简单的图书馆管理系统 (修正版)(二)数据库初始化、基本登录页面以及授权逻辑的建立...
  9. c语言五子棋双链表,五子棋的悔棋函数怎么写啊。。。双击鼠标左键悔棋(菠萝镇楼)...
  10. 2021厦门LED照明产业展览会
  11. Zookeeper如何保证数据一致性
  12. html代码 通用代码,html5可以通用的几段代码 | 睿客网
  13. 什么是智能合约安全审计
  14. pe服务器制作教程,WINPE系统制作原理教程介绍
  15. Linux---积累----处理文本技巧---去重
  16. 诚诚富众资讯1.02亿人次补偿式出游
  17. 运动会分数统计 综合题1
  18. Java截取String字符串的几种方法
  19. Clean Code 读书笔记三——方法(函数)
  20. tomcat增大缓存的最大空间

热门文章

  1. Android之一窥究竟Activity间的数据传递以及Intent的用处
  2. java 后台路线学习
  3. python 提交form-data之坑
  4. Uvalive 4043 - Ants(二分图完美匹配)
  5. 【Salvation】——登录注册存储数据验证用户
  6. 高性能javascript 文件加载阻塞
  7. Spring ContextLoaderListener与DispatcherServlet所加载的applicationContext的区别
  8. 设置树莓派SSH连接因超时闲置断开(转)
  9. java数组排序之冒泡排序
  10. 自动化测试(二) 单元测试junit的Test注解突然不能使用原因以及解决方案