欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

Android使用腾讯浏览服务X5内核

发布时间:2024/4/14 Android 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Android使用腾讯浏览服务X5内核 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

【前期准备】

腾讯X5 jar包下载地址 [点击打开]

本次完整DEMO源码 [打开Github]

【集成步骤】

第一步:下载jar包添加到项目

第二步:添加权限

 

[java] view plaincopy
  • <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" />  
  •  

    第三步:创建BaseApplication.class

     

    [java] view plaincopy
  • import android.app.Application;  
  • import com.tencent.smtt.sdk.QbSdk;  
  • import com.tencent.smtt.sdk.TbsListener;  
  • import com.xiong.tbs_x5.utils.LogUtil;  
  •   
  • /** 
  •  * Created by xiongwenwei@aliyun.com 
  •  * CreateTime: 2017/1/12 
  •  * Note:BaseApplication 
  •  */  
  • public class BaseApplication extends Application {  
  •   
  •     private static BaseApplication instance;  
  •   
  •     @Override  
  •     public void onCreate() {  
  •         super.onCreate();  
  •   
  •         instance = this;  
  •         initTbs();  
  •     }  
  •   
  •     private void initTbs() {  
  •         //搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。  
  •         QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {  
  •   
  •             @Override  
  •             public void onViewInitFinished(boolean arg0) {  
  •                 LogUtil.i("onViewInitFinished is " + arg0);  
  •             }  
  •   
  •             @Override  
  •             public void onCoreInitFinished() {  
  •             }  
  •         };  
  •   
  •         QbSdk.setTbsListener(new TbsListener() {  
  •             @Override  
  •             public void onDownloadFinish(int i) {  
  •                 LogUtil.i("onDownloadFinish");  
  •             }  
  •   
  •             @Override  
  •             public void onInstallFinish(int i) {  
  •                 LogUtil.i("onInstallFinish");  
  •             }  
  •   
  •             @Override  
  •             public void onDownloadProgress(int i) {  
  •                 LogUtil.i("onDownloadProgress:" + i);  
  •             }  
  •         });  
  •   
  •         QbSdk.initX5Environment(getApplicationContext(), cb);  
  •     }  
  •   
  •     public static BaseApplication getInstance() {  
  •         return instance;  
  •     }  
  • }  
  • 不要忘记添加:

     

    第三步:创建tbs_activity.xml

     

    [java] view plaincopy
  • <?xml version="1.0" encoding="utf-8"?>  
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  •     android:layout_width="match_parent"  
  •     android:layout_height="match_parent"  
  •     android:orientation="vertical">  
  •   
  •     <com.tencent.smtt.sdk.WebView  
  •         android:id="@+id/webView"  
  •         android:layout_width="match_parent"  
  •         android:layout_height="match_parent"  
  •         android:background="@color/white" />  
  •   
  • </LinearLayout>  
  • 第四步:创建TbsActivity.class

     

     

    [java] view plaincopy
  • import android.graphics.PixelFormat;  
  • import android.os.Bundle;  
  • import android.support.v7.app.AppCompatActivity;  
  • import android.util.Log;  
  • import android.view.KeyEvent;  
  • import android.view.WindowManager;  
  • import com.tencent.smtt.sdk.WebChromeClient;  
  • import com.tencent.smtt.sdk.WebSettings;  
  • import com.tencent.smtt.sdk.WebView;  
  • import com.tencent.smtt.sdk.WebViewClient;  
  • import com.xiong.tbs_x5.R;  
  •   
  • /** 
  •  * Created by xiongwenwei@aliyun.com 
  •  * CreateTime: 2017/1/13 
  •  * Note:腾讯浏览服务 
  •  */  
  • public class TbsActivity extends AppCompatActivity{  
  •       
  •     private com.tencent.smtt.sdk.WebView webView;  
  •     private String url = "http://3g.qq.com";  
  •   
  •     @Override  
  •     protected void onCreate(Bundle savedInstanceState) {  
  •         super.onCreate(savedInstanceState);  
  •         setContentView(R.layout.activity_main);  
  •         getWindow().setFormat(PixelFormat.TRANSLUCENT);//(这个对宿主没什么影响,建议声明)  
  •         getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);  
  •   
  •         initView();  
  •         loadUrl(url);  
  •     }  
  •   
  •     private void initView() {  
  •         webView = (com.tencent.smtt.sdk.WebView) findViewById(R.id.webView);  
  •     }  
  •   
  •     private void loadUrl(String url) {  
  •         WebSettings webSettings = webView.getSettings();  
  •         webSettings.setJavaScriptEnabled(true);  
  •         webView.loadUrl(url);  
  •         webView.setWebViewClient(new WebViewClient() {  
  •             @Override  
  •             public boolean shouldOverrideUrlLoading(WebView view, String url) {  
  •                 view.loadUrl(url);  
  •                 return true;  
  •             }  
  •   
  •             @Override  
  •             public void onReceivedError(WebView var1, int var2, String var3, String var4) {  
  •                 Log.i("打印日志","网页加载失败");  
  •             }  
  •         });  
  •         //进度条  
  •         webView.setWebChromeClient(new WebChromeClient() {  
  •             @Override  
  •             public void onProgressChanged(WebView view, int newProgress) {  
  •                 if (newProgress == 100) {  
  •                     Log.i("打印日志","加载完成");  
  •                 }  
  •             }  
  •         });  
  •     }  
  •   
  •     @Override  
  •     protected void onDestroy() {  
  •         super.onDestroy();  
  •         if (webView != null) webView.destroy();  
  •     }  
  •   
  •     @Override  
  •     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  •         if (keyCode == KeyEvent.KEYCODE_BACK) {  
  •             if (webView != null && webView.canGoBack()) {  
  •                 webView.goBack();  
  •                 return true;  
  •             }  
  •             return super.onKeyDown(keyCode, event);  
  •         }  
  •         return super.onKeyDown(keyCode, event);  
  •     }  
  •       
  • }  
  •  

    【接入成功效果】

    上述代码只是最基础的集成,更多的效果,请移步官网 [官网接入文档]

    大概试了下,APP第一次启动好像用的还是自带Webview,猜测是X5内核还没下载完吧

    接入成功,标志:1.长按文字会出现"保存离线网页" 2.复制英文会出现"翻译" 3.复制文字会有水滴标志

     

     

     

    总结

    以上是生活随笔为你收集整理的Android使用腾讯浏览服务X5内核的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。