自强不息    厚德载物

腾讯x5内核TBS服务集成

  2023/7/22 9:00:00   【次浏览】 本站

由于系统自带的webview内核不足以满足现在很多vue的技术,经常会出现白屏,加载不全等一系列问题,这时就需要用到x5内核了,国内x5内核基本都可以解决问题,如果上架Google商店等海外市场运营的项目,不建议使用x5内核集成,Google商店等一些海外市场禁止上架的aab包携带腾讯,友盟一些sdk的集成。


首先在腾讯浏览服务中下载对应的sdk,导入到项目中或者直接在app模块的build.gradle文件中添加依赖

dependencies {

    api 'com.tencent.tbs:tbssdk:44275'

}

 在清单文件中添加权限配置


 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

    <uses-permission android:name="android.permission.READ_SETTINGS" />

    <uses-permission android:name="android.permission.WRITE_SETTINGS"

        tools:ignore="ProtectedPermissions" />

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"

        tools:ignore="ProtectedPermissions" />

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

在清单文件中配置服务


   <service

            android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService"

            android:label="dexopt"

            android:process=":dexopt" >

        </service>

初始化加载x5内核


    HashMap map = new HashMap();//必须写在初始化前

    map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true);

    map.put(TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE, true);

    QbSdk.initTbsSettings(map);

 

QbSdk.setDownloadWithoutWifi(true);//是否支持WiFi之外的网络加载

        QbSdk.setTbsListener( new TbsListener() {

                    @Override

                    public void onDownloadFinish(int progress) {

                        Log.e("QbSdk", "onDownloadFinish -->下载X5内核完成:" + progress);

                        //若是progress ==100 的情况下才表示 内核加载成功, 否则重新 加载

                        if (progress !=100){

                            TbsDownloader.startDownload(MainActivity.this);

                        }

                    }

 

                    @Override

                    public void onInstallFinish(int progress) {

                        Log.e("QbSdk", "onInstallFinish -->安装X5内核进度:" + progress);

                    }

 

                    @Override

                    public void onDownloadProgress(int progress) {

                        Log.e("QbSdk", "onDownloadProgress -->下载X5内核进度:" + progress);

                    }

                });

 

 

        QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {

            @Override

            public void onViewInitFinished(boolean arg0) {

                // TODO Auto-generated method stub

                //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。

                Log.e("QbSdk", "加载成功或者失败==" + arg0);

    

 }

            @Override

            public void onCoreInitFinished() {

                Log.e("QbSdk", " x5 内核加载成功 ");

                Log.e("QbSdk", " x5 内核版本号:"+QbSdk.getTbsVersion(MainActivity.this));

            }

        };

        //x5内核初始化接口

        QbSdk.initX5Environment(MainActivity.this, cb);

首次加载,会出现加载失败的情况,建议初始化放在启动页面来进行 ,初始化完成之后在进入webview相关页面


相关源码下载



手机扫码查看当前文章:

腾讯x5内核TBS服务集成

如本网转载稿涉及版权等问题,请作者见稿后在两周内速来电与我们联系, 详见版权声明

  上一篇:Android -【 开源库】数据库 Realm 的基本使用

 下一篇:10个经典的Android开源项目(附源码包)