1. 程式人生 > >Android使用騰訊瀏覽服務X5核心

Android使用騰訊瀏覽服務X5核心

【前期準備】

騰訊X5 jar包下載地址 [點選開啟]

本次完整DEMO原始碼 [開啟Github]

【整合步驟】

第一步:下載jar包新增到專案

第二步:新增許可權

  1. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  3. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  4. <uses-permission android:name="android.permission.INTERNET" />  
  5. <uses-permission android:name="android.permission.READ_PHONE_STATE" />  

第三步:建立BaseApplication.class

  1. import android.app.Application;  
  2. import com.tencent.smtt.sdk.QbSdk;  
  3. import com.tencent.smtt.sdk.TbsListener;  
  4. import com.xiong.tbs_x5.utils.LogUtil;  
  5. /** 
  6.  * Created by [email protected] 
  7.  * CreateTime: 2017/1/12 
  8.  * Note:BaseApplication 
  9.  */  
  10. public class BaseApplication extends Application {  
  11.     private static BaseApplication instance;  
  12.     @Override  
  13.     public void onCreate() {  
  14.         super.onCreate();  
  15.         instance = this;  
  16.         initTbs();  
  17.     }  
  18.     private void initTbs() {  
  19.         //蒐集本地tbs核心資訊並上報伺服器,伺服器返回結果決定使用哪個核心。  
  20.         QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {  
  21.             @Override  
  22.             public void onViewInitFinished(boolean arg0) {  
  23.                 LogUtil.i("onViewInitFinished is " + arg0);  
  24.             }  
  25.             @Override  
  26.             public void onCoreInitFinished() {  
  27.             }  
  28.         };  
  29.         QbSdk.setTbsListener(new TbsListener() {  
  30.             @Override  
  31.             public void onDownloadFinish(int i) {  
  32.                 LogUtil.i("onDownloadFinish");  
  33.             }  
  34.             @Override  
  35.             public void onInstallFinish(int i) {  
  36.                 LogUtil.i("onInstallFinish");  
  37.             }  
  38.             @Override  
  39.             public void onDownloadProgress(int i) {  
  40.                 LogUtil.i("onDownloadProgress:" + i);  
  41.             }  
  42.         });  
  43.         QbSdk.initX5Environment(getApplicationContext(), cb);  
  44.     }  
  45.     public static BaseApplication getInstance() {  
  46.         return instance;  
  47.     }  
  48. }  

不要忘記新增:

第三步:建立tbs_activity.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:orientation="vertical">  
  6.     <com.tencent.smtt.sdk.WebView  
  7.         android:id="@+id/webView"  
  8.         android:layout_width="match_parent"  
  9.         android:layout_height="match_parent"  
  10.         android:background="@color/white" />  
  11. </LinearLayout>  

第四步:建立TbsActivity.class

  1. import android.graphics.PixelFormat;  
  2. import android.os.Bundle;  
  3. import android.support.v7.app.AppCompatActivity;  
  4. import android.util.Log;  
  5. import android.view.KeyEvent;  
  6. import android.view.WindowManager;  
  7. import com.tencent.smtt.sdk.WebChromeClient;  
  8. import com.tencent.smtt.sdk.WebSettings;  
  9. import com.tencent.smtt.sdk.WebView;  
  10. import com.tencent.smtt.sdk.WebViewClient;  
  11. import com.xiong.tbs_x5.R;  
  12. /** 
  13.  * Created by [email protected] 
  14.  * CreateTime: 2017/1/13 
  15.  * Note:騰訊瀏覽服務 
  16.  */  
  17. public class TbsActivity extends AppCompatActivity{  
  18.     private com.tencent.smtt.sdk.WebView webView;  
  19.     private String url = "http://3g.qq.com";  
  20.     @Override  
  21.     protected void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.activity_main);  
  24.         getWindow().setFormat(PixelFormat.TRANSLUCENT);//(這個對宿主沒什麼影響,建議宣告)  
  25.         getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);  
  26.         initView();  
  27.         loadUrl(url);  
  28.     }  
  29.     private void initView() {  
  30.         webView = (com.tencent.smtt.sdk.WebView) findViewById(R.id.webView);  
  31.     }  
  32.     private void loadUrl(String url) {  
  33.         WebSettings webSettings = webView.getSettings();  
  34.         webSettings.setJavaScriptEnabled(true);  
  35.         webView.loadUrl(url);  
  36.         webView.setWebViewClient(new WebViewClient() {  
  37.             @Override  
  38.             public boolean shouldOverrideUrlLoading(WebView view, String url) {  
  39.                 view.loadUrl(url);  
  40.                 return true;  
  41.             }  
  42.             @Override  
  43.             public void onReceivedError(WebView var1, int var2, String var3, String var4) {  
  44.                 Log.i("列印日誌","網頁載入失敗");  
  45.             }  
  46.         });  
  47.         //進度條  
  48.         webView.setWebChromeClient(new WebChromeClient() {  
  49.             @Override  
  50.             public void onProgressChanged(WebView view, int newProgress) {  
  51.                 if (newProgress == 100) {  
  52.                     Log.i("列印日誌","載入完成");  
  53.                 }  
  54.             }  
  55.         });  
  56.     }  
  57.     @Override  
  58.     protected void onDestroy() {  
  59.         super.onDestroy();  
  60.         if (webView != null) webView.destroy();  
  61.     }  
  62.     @Override  
  63.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  64.         if (keyCode == KeyEvent.KEYCODE_BACK) {  
  65.             if (webView != null && webView.canGoBack()) {  
  66.                 webView.goBack();  
  67.                 return true;  
  68.             }  
  69.             return super.onKeyDown(keyCode, event);  
  70.         }  
  71.         return super.onKeyDown(keyCode, event);  
  72.     }  
  73. }  

【接入成功效果】

上述程式碼只是最基礎的整合,更多的效果,請移步官網 [官網接入文件]

大概試了下,APP第一次啟動好像用的還是自帶Webview,猜測是X5核心還沒下載完吧

接入成功,標誌:1.長按文字會出現"儲存離線網頁" 2.複製英文會出現"翻譯" 3.複製文字會有水滴標誌

相關推薦

Android使用瀏覽服務X5核心

【前期準備】 騰訊X5 jar包下載地址 [點選開啟] 本次完整DEMO原始碼 [開啟Github] 【整合步驟】 第一步:下載jar包新增到專案 第二步:新增許可權 <uses-permission android:name="android.permission.WR

Android Studio 使用瀏覽服務(替換掉系統自帶的WebView)

一、為何不直接使用內建的WebView元件? 用Android自帶的WebView元件,做過一些較複雜應用的人應該都會發現,這個自帶的元件很多時候真是讓人無力吐嘈,主要理由有二: Android中的WebView元件,記憶體洩漏的問題一直沒有非常有效的解決方案,讓程式猿們痛不欲生。Android中的WebV

AndroidX5核心WebView載入失敗原因

網上整合騰訊X5核心方法有很多了,我就不闡述了,簡單記錄一下載入X5核心失敗原因 執行官方demo一點毛病也沒有,自己建立modul執行也沒問題 ,一放到自己的專案就永遠初始化失敗,最後發現是這個原因: 這是官方demo裡的配置: ndk { //選擇要新增的

服務器 設置ngxin + fastdfs +tomcat 開機自啟動

tools.jar rtu .sh cal restart lin 權限 一個 catalina 在tomcat中新建一個可以啟動的 .sh 腳本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk

服務器 - 安裝redis3.2.9以及集群

分享 無法訪問 前臺 www 改密碼 log 後臺 to do 測試 redis大家都知道,服務器上必不可少的,那麽在生產環境下安裝的步驟和虛擬機裏也是差不多的 官網上最新穩定版是3.2.9,而4.0的更新比較大,但是比幾個還是beta版嘛 下載並且上傳壓縮包至雲服務

服務器 Centos6.5 安裝 nginx1.12.0

-1 安全組 dev class scrip local pcr 我們 /usr 如果出現 CentOS ping: unknown host 的話,表示沒有配置dns vim /etc/sysconfig/network-scripts/ifcfg-eth** 添加如

服務器安裝JDK與tomcat(ubuntu)

ack print 過程 文件名 eth installer 不同的 tor ins ##騰訊雲服務器安裝JDK與tomcat 關於文件無法創建或者傳輸的問題: 首先在命令行中進入root模式,輸入 sudo su 然後輸入你的賬戶密碼,進入root模式。 在對於你

Android Bugly——異常上報和應用更新

schema err hidden eno xmlns 哈哈 map ant export 騰訊Bugly,為移動開發者提供專業的異常上報和運營統計,幫助開發者快速發現並解決異常,同時掌握產品運營動態,及時跟進用戶反饋。 首先Bugly有兩大優點,免費,不用審核 使用步驟如

Android Bugly 熱更新

nor 現在 oar rri filter ble 實施 2.2.0 armeabi 這個是一位大佬教我的,我自己照著做寫博客 熱更新雖然看起來很復雜,但是Bugly通過集成,使得這個過程很簡單。我這裏不涉及多渠道熱更新,只講述最簡單的情況。 1.首先我們需要在Bugly上

服務器linux centOS7.4 搭建ftp服務器 vsftpd

centos7 style 打開 mct tp服務器 mkdir -p 密碼 grep enable 騰訊雲服務器linux centos 7.4 搭建ftp服務器 vsftpd # 安裝 vsftpd $ yum install vsftpd -y # 啟動 $ serv

小溪邊服務器2折優惠

5折 包括 騰訊雲 並且 lan 地址 target cps .com 小溪邊騰訊雲服務器2折優惠,僅需要原價的2折即可購買一臺騰訊雲服務器。 騰訊雲官網服務器2折優惠活動地址點擊打開 只要是新用戶首次購買,即可在原價的基礎上最低2折優惠。優惠幅度為2折到5折,購買的時間

服務器優惠券

左右 direct 營業執照 條件 頁面 很多 ref pla 聯系人 騰訊雲服務器的代金券優惠券,只限企業領取,我們個人是無法領取的。 企業申請騰訊雲代金券優惠券的條件:完成企業認證,從事軟件開發、互聯網等行業的公司,可在騰訊雲申請代金券。企業認證需要提供營業執照,稅務,

客戶端連接服務總是自動斷開連接解決辦法

nta val ive tar 意思 ali conf count 服務端 1.找到sshd_config配置文件 輸入以下命令: vim /etc/ssh/sshd_config 在此文件中找到以下配置項: #ClientAliveInterval 0 #ClientAl

服務器手動和自動安裝WordPress網站程序

img 詳細 密碼 賬戶 htm 技術分享 center 建站 upload 如果我們需要建站的話,對於基礎個人網站、博客建站選擇基礎的1Mbps帶寬配置的1GB內存的騰訊雲服務器還是夠用的,且如果我們需要用來建網站的話可以手工添加程序,以及有些面板,比如寶塔面板是自帶CM

服務器使用smtp發送郵件

管理平臺 問題 tpc detail 原來 pcl 發送 安全 article 問題:在騰訊雲服務器上使用自編寫的郵件服務失敗。查其原因,是該郵件服務調用smtpclient.Send(mailMessage)時,出現錯誤:由於連接方在一段時間後沒有正確答復或連接的主機沒有

服務器新用戶優惠,8元一個月

alt col creat 配置 pro 用戶 text https amd 配置低了些,但價格便宜,可以作為學習練手用 活動鏈接:https://cloud.tencent.com/act/group/amd/detail?from=10137&group=51527&

從0開始在服務器上搭建python3+flask+uwsgi+nginx服務

我們 mac make ssl 騰訊雲 sgi 配置文件 wsgi div 以ssh方式連接騰訊雲,以mac為例 一、安裝Python3、flask、uwsgi和nginx (一)安裝基礎包 1、因為缺少gcc,沒法make,所以安裝gcc yum -y install

Tomcat+Nginx+Linux+Mysql部署豆瓣TOP250的項目到服務

socket 也會 path auto col protocol 配置 catalina mysqld 寫在前面 因為前面有寫過一篇關於豆瓣的top250的電影的可視化展示項目,你可以移步http://blog.csdn.net/liuge36/article/detail

這家公司的核心競爭力是什麼 為什麼

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android bugly的學習使用

轉載:https://www.jianshu.com/p/7984b3ee7880 前序:一般一個專案的開發,從需求調研到開發完成正式上線必須要經歷修改bug,修改bug,修改bug 的死迴圈中,而往往一些專案在上線之後由於測試人員沒有測試出一些偶發概率的bug,這就導致使用者在下載使用App的