- 更多其他页面-自定义View-实用功能合集:点击查看
使用腾讯Tbs,会导致上架google应用商城失败!
关于X5内核的一些bug解决,可以查看这些文章:
链接: 解决bug.
安卓原生webview在安卓5.1版本之下canvas绘制内容加载不出来,所以就弃用了,改用腾讯X5浏览器
1.SDK导入并配置
腾讯TBS官网 : 官网.
Android Studio用户: 可在module的build.gradle文件的dependencies中添加 api 'com.tencent.tbs.tbssdk:sdk:43903’直接接入
Eclipse用户: 需要自行去官网下载sdk,并添加进去。
以下主要讲Android Studio端的配置。
2.os文件导入
接入了api后,还需自行导入os文件,否则无法使用需要从官网下载sdk文件。
找到”sdk接入示例-Android-Studio并打开
在main文件夹下,复制整个jniLibs文件夹到你的安卓项目中。切记请放在与java res文件夹同一级。
3.AndroidManifest.xml文件配置
加载腾讯TBS需要一定的权限,否则会失败。
<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" />
到这为止基本的配置就完成了,下面开始使用腾讯的X5WebView
4.build.gradle文件配置
找到你项目app的build.gradle,在android 的 defaultConfig一栏,添加
ndk {
abiFilters “armeabi”, “armeabi-v7a”, “x86”, “mips”
}
以下是我的示例:
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
defaultConfig {
applicationId "########"
minSdkVersion 16
targetSdkVersion 29
versionCode 22
versionName "2.2"
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
}
5.初始化X5WebView
下面方法复制可直接调用,记得要在加载webview之前调用,所以最好是放在打开项目的时候就调用该方法,提前加载x5替换webview配置
/**************腾讯X5webview**************/
private void initX5WebView() { //使用腾讯x5 webview,解决安卓原生wenview不适配不同机型问题
//搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
@Override
public void onViewInitFinished(boolean arg0) {
// TODO Auto-generated method stub
//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
if(arg0){//true
Log.e("腾讯X5", " onViewInitFinished 加载 成功 "+arg0);
}else{
Log.e("腾讯X5", " onViewInitFinished 加载 失败!!!使用原生安卓webview "+arg0);
}
}
@Override
public void onCoreInitFinished() {
// TODO Auto-generated method stub
}
};
//x5内核初始化接口
QbSdk.initX5Environment(getApplicationContext(), cb);
}
/**************腾讯X5webview**************/
当你看到onViewInitFinished回调是true,那么就说明预加载腾讯成功
6.替换在xml里的webview布局
<com.tencent.smtt.sdk.WebView
android:id="@+id/TX_X5_webview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.tencent.smtt.sdk.WebView>
// <WebView
// android:id="@+id/nromal_webview"
// android:layout_width="match_parent"
// android:layout_height="match_parent">
// </WebView>
7.java里使用X5 webview
com.tencent.smtt.sdk.WebView TX_X5_webview; //全局变量
TX_X5_webview = findViewById(R.id.TX_X5_webview);
TX_X5_webview.setBackgroundColor(0);
TX_X5_webview.getSettings().setJavaScriptEnabled(true);
TX_X5_webview.loadUrl("https://www.baidu.com/");
这样子就完成了腾讯X5的基本使用了。
我在使用腾讯X5Webview会遇到各种坑,像是本地测试没问题,打包出来的项目有问题等,非常令人头疼。请看另一篇文章。
链接: 加载腾讯X5失败各种bug解决.
https://blog.csdn.net/shaoyezhangliwei/article/details/81703098 使用process bar文章
Android技术生活交流
----- qq群
![]()