自(zì)強不息    厚德載物(wù)

騰訊x5內(nèi)核TBS服務集成

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

由于系統自(zì)帶的(de)webview內(nèi)核不足以滿足現(xiàn)在很(hěn)多vue的(de)技(jì)術,經常會出現(xiàn)白屏,加載不全等一系列問(wèn)題,這(zhè)時(shí)就需要用到x5內(nèi)核了,國(guó)內(nèi)x5內(nèi)核基本都(dōu)可以解決問(wèn)題,如果上(shàng)架Google商店等海(hǎi)外(wài)市(shì)場(chǎng)運營的(de)項目,不建議(yì)使用x5內(nèi)核集成,Google商店等一些海(hǎi)外(wài)市(shì)場(chǎng)禁止上(shàng)架的(de)aab包攜帶騰訊,友(yǒu)盟一些sdk的(de)集成。


首先在騰訊浏覽服務中下(xià)載對(duì)應的(de)sdk,導入到項目中或者直接在app模塊的(de)build.gradle文(wén)件(jiàn)中添加依賴

dependencies {

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

}

 在清單文(wén)件(jiàn)中添加權限配置


 <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" />

在清單文(wén)件(jiàn)中配置服務


   <service

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

            android:label="dexopt"

            android:process=":dexopt" >

        </service>

初始化(huà)加載x5內(nèi)核


    HashMap map = new HashMap();//必須寫在初始化(huà)前

    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之外(wài)的(de)網絡加載

        QbSdk.setTbsListener( new TbsListener() {

                    @Override

                    public void onDownloadFinish(int progress) {

                        Log.e("QbSdk", "onDownloadFinish -->下(xià)載X5內(nèi)核完成:" + progress);

                        //若是progress ==100 的(de)情況下(xià)才表示 內(nèi)核加載成功, 否則重新 加載

                        if (progress !=100){

                            TbsDownloader.startDownload(MainActivity.this);

                        }

                    }

 

                    @Override

                    public void onInstallFinish(int progress) {

                        Log.e("QbSdk", "onInstallFinish -->安裝X5內(nèi)核進度:" + progress);

                    }

 

                    @Override

                    public void onDownloadProgress(int progress) {

                        Log.e("QbSdk", "onDownloadProgress -->下(xià)載X5內(nèi)核進度:" + progress);

                    }

                });

 

 

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

            @Override

            public void onViewInitFinished(boolean arg0) {

                // TODO Auto-generated method stub

                //x5內核初始化(huà)完成的(de)回調,為(wèi)true表示x5內(nèi)核加載成功,否則表示x5內(nèi)核加載失敗,會自(zì)動切換到系統內(nèi)核。

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

    

 }

            @Override

            public void onCoreInitFinished() {

                Log.e("QbSdk", " x5 內(nèi)核加載成功 ");

                Log.e("QbSdk", " x5 內(nèi)核版本号:"+QbSdk.getTbsVersion(MainActivity.this));

            }

        };

        //x5內(nèi)核初始化(huà)接口

        QbSdk.initX5Environment(MainActivity.this, cb);

首次加載,會出現(xiàn)加載失敗的(de)情況,建議(yì)初始化(huà)放(fàng)在啓動頁面來(lái)進行 ,初始化(huà)完成之後在進入webview相(xiàng)關頁面


相(xiàng)關源碼下(xià)載



手機(jī)掃碼查看(kàn)當前文(wén)章(zhāng):

騰訊x5內(nèi)核TBS服務集成

如本網轉載稿涉及版權等問(wèn)題,請作(zuò)者見稿後在兩周內(nèi)速來(lái)電(diàn)與我們聯系, 詳見版權聲明(míng)

  上(shàng)一篇:Android -【 開(kāi)源庫】數據庫 Realm 的(de)基本使用

 下(xià)一篇:10個(gè)經典的(de)Android開(kāi)源項目(附源碼包)