国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Android -- 開源庫】騰訊 TBS 瀏覽器 SDK 接入

這篇具有很好參考價值的文章主要介紹了【Android -- 開源庫】騰訊 TBS 瀏覽器 SDK 接入。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

簡介

在 Android 開發(fā)項目中,經(jīng)常會用到 Webview 。而 WebView 是出了名的坑,各種 Bug。騰訊 TBS 瀏覽服務(wù)面向應(yīng)用開發(fā)商和廣大開發(fā)者,提供瀏覽增強,內(nèi)容框架,廣告體系,H5游戲分發(fā),大數(shù)據(jù)等服務(wù),能夠幫助應(yīng)用開發(fā)商大幅改善應(yīng)用體驗,有效提升開發(fā),運營,商業(yè)化的效率。

官網(wǎng)地址: https://x5.tencent.com

1. 優(yōu)勢

  • 速度快:相比系統(tǒng)webview的網(wǎng)頁打開速度有30+%的提升;
  • 省流量:使用云端優(yōu)化技術(shù)使流量節(jié)省20+%;
  • 更安全:安全問題可以在24小時內(nèi)修復(fù);
  • 更穩(wěn)定:經(jīng)過億級用戶的使用考驗,CRASH率低于0.15%;
  • 兼容好:無系統(tǒng)內(nèi)核的碎片化問題,更少的兼容性問題;
  • 體驗優(yōu):支持夜間模式、適屏排版、字體設(shè)置等瀏覽增強功能;
  • 功能全:在Html5、ES6上有更完整支持;
  • 更強大:集成強大的視頻播放器,支持視頻格式遠多于系統(tǒng)webview;
  • 視頻和文件格式的支持x5內(nèi)核多于系統(tǒng)內(nèi)核
  • 防劫持是x5內(nèi)核的一大亮點

其中,X5云端服務(wù)包括云加速、云安全、云轉(zhuǎn)換三大功能。云加速是通過首屏加速、智能路由、圖片壓縮等技術(shù)保障網(wǎng)頁瀏覽的快、省、悅;云安全是通過代理加密、URL安全檢測、JS黑名單管理、負載監(jiān)控等防范網(wǎng)頁被劫持插入廣告、保障網(wǎng)頁瀏覽的安全穩(wěn)定;云轉(zhuǎn)換是使用URL聚合+XPATH的解決方案,解決移動閱讀難題。

2. 運行環(huán)境

  • Android 版本: Android 4.0 ~ Android 12.0
  • CPU 架構(gòu):armeabi、armeabi-v7a、arm64-v8a

使用

1. 基礎(chǔ)配置

1.1 SDK 接入

方式一:jar包方式集成(推薦)

您可將官網(wǎng)下載的jar包復(fù)制到您的App的libs目錄,并且通過Add As Library的方式集成TBS SDK。

前往官網(wǎng)下載SDK

方式二:自動集成
使用 mavenCentral 倉庫

在項目級別(通常是根目錄下)的 build.gradle 中添加:

repositories {
    google()
    // 增加這行
    mavenCentral()
}

在應(yīng)用級別(通常是 app 模塊下)的 build.gradle 中添加依賴:

dependencies {
    ...
    // 增加這行
    implementation 'com.tencent.tbs:tbssdk:44286'
}
1.2 權(quán)限配置

AndroidManifest.xml 里權(quán)限聲明

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

<!-- 硬件加速對X5視頻播放非常重要,建議開啟 -->
<uses-permission android:name="android.permission.GET_TASKS"/>

2. 代碼

2.1 在 Application 初始化 x5 內(nèi)核接口
		/**
         * 搜集本地tbs內(nèi)核信息并上報服務(wù)器,服務(wù)器返回結(jié)果決定使用哪個內(nèi)核。
         */
        QbSdk.PreInitCallback callback = new QbSdk.PreInitCallback() {
            @Override
            public void onViewInitFinished(boolean arg) {
                //x5內(nèi)核初始化完成的回調(diào),
                // true表示x5內(nèi)核加載成功,
                // false表示x5內(nèi)核加載失敗,會自動切換到系統(tǒng)內(nèi)核。
                Log.i("kevin", "X5內(nèi)核是否成功加載= " + arg);
            }

            @Override
            public void onCoreInitFinished() {
            }
        };
        QbSdk.setTbsListener(new TbsListener() {
            @Override
            public void onDownloadFinish(int i) {
                Log.i("kevin", "onDownloadFinish: " + i);
            }

            @Override
            public void onInstallFinish(int i) {
                Log.i("kevin", "onInstallFinish: " + i);
            }

            @Override
            public void onDownloadProgress(int i) {
                Log.i("kevin", "onInstallFinish: " + i);
            }
        });

        QbSdk.initX5Environment(getApplicationContext(), callback);

2.2 初始化 WebSettings

private void initWebSettings() {
    WebSettings webSetting = this.getSettings();
    webSetting.setJavaScriptEnabled(true);
    webSetting.setJavaScriptCanOpenWindowsAutomatically(true);
    webSetting.setAllowFileAccess(true);
    webSetting.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
    webSetting.setSupportZoom(true);
    webSetting.setBuiltInZoomControls(true);
    webSetting.setUseWideViewPort(true);
    webSetting.setSupportMultipleWindows(true);
    webSetting.setAppCacheEnabled(true);
    webSetting.setDomStorageEnabled(true);
    webSetting.setGeolocationEnabled(true);
    webSetting.setAppCacheMaxSize(Long.MAX_VALUE);
    webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);
    webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);
}

2.3 簡單封裝

如果在項目中使用,一般來說最好是封裝多一層。文章來源地址http://www.zghlxwxcb.cn/news/detail-681335.html

  • 防止和原生的WebView搞混
  • 有什么問題,一改全改。
  • 可以添加一些功能,例如進度條等。
/**
 * author: Kevin_Gong
 * date: 2023/6/1
 * desc: 封裝一個帶進圖條的 WebView
 */
public class ProgressWebView extends WebView {
    //進度條
    private ProgressBar progressbar;

    //進度條的高度,默認10px
    private int progressHeight = 10;

    public ProgressWebView(Context context) {
        this(context,null);
    }

    public ProgressWebView(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
        initView(context);
    }

    private void initView(Context context) {
        //創(chuàng)建進度條
        progressbar = new ProgressBar(context, null,
                android.R.attr.progressBarStyleHorizontal);
        //設(shè)置加載進度條的高度
        progressbar.setLayoutParams(new AbsoluteLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, progressHeight, 0, 0));

        Drawable drawable = context.getResources().getDrawable(R.drawable.progress_bar_states);
        progressbar.setProgressDrawable(drawable);

        //添加進度到WebView
        addView(progressbar);

        //初始化 WebSettings
        initWebSettings();


        setWebChromeClient(new WVChromeClient());
        setWebViewClient(new WVClient());
    }

    private void initWebSettings() {
        WebSettings webSetting = this.getSettings();
        webSetting.setJavaScriptEnabled(true);
        webSetting.setJavaScriptCanOpenWindowsAutomatically(true);
        webSetting.setAllowFileAccess(true);
        webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        webSetting.setSupportZoom(true);
        webSetting.setBuiltInZoomControls(true);
        webSetting.setUseWideViewPort(true);
        webSetting.setSupportMultipleWindows(true);
        webSetting.setAppCacheEnabled(true);
        webSetting.setDomStorageEnabled(true);
        webSetting.setGeolocationEnabled(true);
        webSetting.setAppCacheMaxSize(Long.MAX_VALUE);
        webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);
        webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);
    }



    //進度顯示
    private class WVChromeClient extends WebChromeClient {


        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            if (newProgress == 100) {
                progressbar.setVisibility(GONE);
            } else {
                if (progressbar.getVisibility() == GONE) {
                    progressbar.setVisibility(VISIBLE);
                }
                progressbar.setProgress(newProgress);
            }

            if (mListener != null) {
                mListener.onProgressChange(view, newProgress);
            }

            super.onProgressChanged(view, newProgress);
        }

    }

    private class WVClient extends WebViewClient {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            //在當前Activity打開
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            //https忽略證書問題
            handler.proceed();
        }

        @Override
        public void onPageFinished(WebView view, String url) {

            progressbar.setVisibility(GONE);
            if (mListener != null) {
                mListener.onPageFinish(view);
            }

            super.onPageFinished(view, url);

        }

    }

    private onWebViewListener mListener;

    public void setOnWebViewListener(onWebViewListener listener) {
        this.mListener = listener;
    }

    //進度回調(diào)接口
    public interface onWebViewListener {
        void onProgressChange(WebView view, int newProgress);

        void onPageFinish(WebView view);
    }
}

到了這里,關(guān)于【Android -- 開源庫】騰訊 TBS 瀏覽器 SDK 接入的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【開源項目】STF,從瀏覽器遠程調(diào)試和控制安卓設(shè)備

    STF是一個非常有用的工具,可以幫助開發(fā)者和測試者在不同的設(shè)備上進行應(yīng)用程序的調(diào)試和測試。它也可以用于教育和娛樂的目的,比如遠程控制別人的手機或者玩游戲。 它的主要功能有: ? 查看和控制設(shè)備的屏幕、鍵盤、鼠標、觸摸、音量等; ? 安裝和卸載應(yīng)用程序;

    2024年02月01日
    瀏覽(21)
  • Android問題筆記 - 關(guān)于騰訊文檔TBS離線的研究

    Android問題筆記 - 關(guān)于騰訊文檔TBS離線的研究

    專欄分享 點擊跳轉(zhuǎn)=Unity3D特效百例 點擊跳轉(zhuǎn)=案例項目實戰(zhàn)源碼 點擊跳轉(zhuǎn)=游戲腳本-輔助自動化 點擊跳轉(zhuǎn)=Android控件全解手冊 點擊跳轉(zhuǎn)=Scratch編程案例 點擊跳轉(zhuǎn)=軟考全系列 眾所周知,人生是一個漫長的流程,不斷 克服困難 ,不斷反思前進的過程。在這個過程中會產(chǎn)生很多對

    2024年02月08日
    瀏覽(30)
  • Docker本地部署開源瀏覽器Firefox并遠程訪問進行測試

    Docker本地部署開源瀏覽器Firefox并遠程訪問進行測試

    前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站。 Firefox是一款免費開源的網(wǎng)頁瀏覽器,由Mozilla基金會開發(fā)和維護。它是第一個成功挑戰(zhàn)微軟Internet Explorer瀏覽器壟斷地位的瀏覽器之一。 在Docker中打開Firefox意味著我

    2024年02月04日
    瀏覽(19)
  • Android升級WebView瀏覽器內(nèi)核版本

    Android升級WebView瀏覽器內(nèi)核版本

    使用 AOSP 項目編譯的 Android 系統(tǒng),會發(fā)現(xiàn)在部分 APP 使用系統(tǒng)自帶的瀏覽器內(nèi)核來加載網(wǎng)頁時會出現(xiàn)報錯,加載不出網(wǎng)頁的情況,其實這是由于 WebView 自帶的 瀏覽器內(nèi)核版本太舊 所導(dǎo)致的,只要更新成比較新的瀏覽器內(nèi)核版本就行了。 一、環(huán)境準備 (1) Android系統(tǒng)源碼編譯

    2024年02月04日
    瀏覽(32)
  • Android集成騰訊TBS_X5內(nèi)核的一些解決方法

    Android集成騰訊TBS_X5內(nèi)核的一些解決方法

    關(guān)于我開發(fā)中遇到的問題,主要還是不夠細心導(dǎo)致的,官方文檔寫的也沒很清楚,但是還是分享出來一下,讓新手可以少走彎路,也防止自己忘記了。主要有下面幾個問題: 1).我測試環(huán)境集成了,但是打包正式的時候居然沒有集成成功,還是啟用系統(tǒng)內(nèi)核。 ? ? ?解決方案

    2024年02月02日
    瀏覽(18)
  • JS一些常用判斷(包括判斷是否是蘋果(ios)/安卓(Android)、是否是Safari瀏覽器、檢測瀏覽器語言等等)

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 提示:這里可以添加本文要記錄的大概內(nèi)容: 參考鏈接 JS判斷客戶端是否是iOS或者Android:http://caibaojian.com/browser-ios-or-android.html

    2024年02月04日
    瀏覽(42)
  • 前端:推薦一款開源免費的瀏覽器端Markdown編輯器Vditor

    前端:推薦一款開源免費的瀏覽器端Markdown編輯器Vditor

    目前程序員的世界到處都是Markdown ,比如CSDN、簡書、GitCha、 GitHub、掘金社區(qū)等等都支持Markdown文檔,另外近幾年許多官方技術(shù)文檔都是使用Markdown來寫的。 使用Markdown不僅可以非常方便的寫博客、寫技術(shù)文檔,而且可以直接導(dǎo)出對應(yīng)的網(wǎng)站內(nèi)容,導(dǎo)出可打印的文檔 ,另外Ma

    2024年02月08日
    瀏覽(28)
  • Cypress.io:快速簡單可靠的瀏覽器測試工具 | 開源日報 No.142

    Cypress.io:快速簡單可靠的瀏覽器測試工具 | 開源日報 No.142

    Stars: 45.5k License: MIT Cypress.io 是一個快速、簡單和可靠的瀏覽器測試工具,可以用于任何在瀏覽器中運行的內(nèi)容。它支持 Mac、Linux 和 Windows 系統(tǒng),并提供了安裝指南。 Stars: 4.1k License: GPL-3.0 DeskHop 是一個快速切換桌面的設(shè)備,它允許用戶通過鍵盤快捷鍵或鼠標指針在不同操作系

    2024年01月25日
    瀏覽(56)
  • 是的,Android版Edge瀏覽器支持Extension(插件/擴展)了

    是的,Android版Edge瀏覽器支持Extension(插件/擴展)了

    本文同步發(fā)表于我的微信公眾號,掃一掃文章底部的二維碼或在微信搜索 郭霖 即可關(guān)注,每個工作日都有文章更新。 有些小伙伴的消息渠道實在過于靈通,所以這件事我也不用藏著掖著了。 (此處插件指的就是Extension,雖然Extension最標準的翻譯應(yīng)該是擴展) 其實Extension這

    2024年04月09日
    瀏覽(38)
  • 開源語言模型的歷史和重要性;Edge瀏覽器將推出Bing AI重寫文本功能

    開源語言模型的歷史和重要性;Edge瀏覽器將推出Bing AI重寫文本功能

    ?? AI新聞 ?? 微軟即將推出桌面版Microsoft Edge瀏覽器的Bing AI重寫文本功能 摘要 :微軟最近在桌面版Microsoft Edge瀏覽器中引入了一個新功能,允許用戶使用Bing AI重寫文本。用戶可以選擇不同的語氣、格式和長度,然后通過重寫按鈕來生成Bing AI的回應(yīng)。目前該功能正在向部分內(nèi)

    2024年02月14日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包