Android Studio-安卓 腾讯X5内核(TBS Webview)基本使用,配置腾讯TBS

    技术2022-07-11  129

    使用腾讯Tbs,会导致上架google应用商城失败!

    关于X5内核的一些bug解决,可以查看这些文章: 链接: 解决bug.

    安卓原生webview在安卓5.1版本之下canvas绘制内容加载不出来,所以就弃用了,改用腾讯X5浏览器

    使用腾讯Tbs,会导致上架google应用商城失败!1.SDK导入并配置2.os文件导入3.AndroidManifest.xml文件配置到这为止基本的配置就完成了,下面开始使用腾讯的X5WebView 4.build.gradle文件配置5.初始化X5WebView6.替换在xml里的webview布局7.java里使用X5 webview

    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文章

    Processed: 0.013, SQL: 9