热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android中接入腾讯TBS浏览器WebView的入坑指南

为什么不使用原生的webview?最近公司的项目接入了webview,但是坑巨多无比,尤其是其内存泄露。所以我在想是否可以有第三方封装了webview。比较Crosswalk与TBS服

为什么不使用原生的webview?

最近公司的项目接入了webview,但是坑巨多无比,尤其是其内存泄露。所以我在想是否可以有第三方封装了webview。

比较Crosswalk与TBS服务

1.Crosswalk这玩意儿我没用过,据说是很流畅和强大,但是有一点是我暂时无法接受的,接入Crosswalk的话会导致APP的体积增大20M左右 ~ 所以我就放弃了,不过大家想研究的话那就自己去百度吧 !(嘿嘿,微笑脸)
2. TBS,腾讯出品,其实有点坑,本来也准备接入一下支付宝和淘宝都用的UC的内核的Webview的,但是我看了一下,需要审核,有点麻烦 ~

开始配置

  1. 首先需要去网站腾讯TBS浏览服务 进行注册,吐槽一点,需要验证身份证信息,坑爹的一比
  2. 参考一下TBS接入文档 不过里面讲解的比较啰嗦,不太清楚。
    a. 简单来讲的话就是 首先下载SDK和官方DEMO:完整版SDK和官方DEMO ,然后进行导入jar包和so文件 。jar包直接复制官方DEMO里面的,然后导入library。so文件的话直接复制Demo里面的文件夹jniLibs,到src/main/jniLibs

    jniLibsの位置

    b. 不过在这里有个很坑的点是需要对so文件进行配置的,由于X5暂时不提供64位so文件,但是现在绝大部分手机都是64位的,所以为了保证64位手机能正常加载x5内核,需要进行配置。配置方法参考:64位手机无法加载x5(libmttwebview.so is 32-bit instead of 64-bit)。

  defaultConfig {
applicationId "com.jzt.mytbsdemo"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
//配置so文件
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}

//注意:这里之所以将这以下的代码注释掉,是因为我们已经到src/main/jniLibs里面导入了so文件,如果是在libs里面导入的so文件的话,则用以下代码 !

//android studio默认so文件加载目录为:src/main/jniLibs
//如在module的build.gradle按照如下方式,自定义了so文件加载目录请确保对应目录下只有armeabi目录
// sourceSets {
// main{
// jniLibs.srcDirs = ['libs']
// }
// }

c. OVER了,于是的话就这样将SDK配置完成了。

3.添加权限:



<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 . 配置Application

public class BaseApplicatiom extends Application {
@Override
public void onCreate() {
super.onCreate();
//初始化X5内核
QbSdk.initX5Environment(this, new QbSdk.PreInitCallback() {
@Override
public void onCoreInitFinished() {
//x5内核初始化完成回调接口,此接口回调并表示已经加载起来了x5,有可能特殊情况下x5内核加载失败,切换到系统内核。

}

@Override
public void onViewInitFinished(boolean b) {
//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
Log.e("@@","加载内核是否成功:"+b);
}
});
}
}
//别忘了在Manifest里面配置Appliaction的名字 !
android:name=".BaseApplicatiom"

5 . Application里面配置key ,name一定得设置为: QBSDKAppKey

<meta-data 
android:name="QBSDKAppKey"
android:value="PpeRpHjyzL5vTlc9LuNrRmHM" />

application>
  1. 其它的都和Webview一样了,不过我看官方文档说的是只要出现水滴就是成功了,其实是错误的 ! ! ! 我的好几个APP都没有用TBS,但是也是水滴的。于是我找了好久,终于找到了这个测试的方法,绝对是niubility的~ X5内核加载问题自动检测工具发布啦

啦啦啦啦。。。下班了,明天再补充吧!!!

咳咳,回来了,继续啦啦啦啦 ~

7 . 经过测试以后得到的是这个,证明已经接入成功了!:

最后结果是

—————————————————————————————————-

是时候放出源代码了!——> TBS不官方不坑人の源代码

—————————————————————————————————-

About QA:

无法接入成功
SDK接入问题
判断接入问题
腾讯X5内核的集成和使用
Android WebView使用总结

—————————————————————————————————-

Expand QA:

AgentWeb
Android WebView使用总结

—————————————————————————————————-


推荐阅读
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
author-avatar
BYREAD315794103
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有