生活随笔
收集整理的這篇文章主要介紹了
Android使用腾讯浏览服务X5内核
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【前期準(zhǔn)備】
騰訊X5 jar包下載地址 [點(diǎn)擊打開]
本次完整DEMO源碼 [打開Github]
【集成步驟】
第一步:下載jar包添加到項(xiàng)目
第二步:添加權(quán)限
?
[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"?/>?? ?
第三步:創(chuàng)建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;????public?class?BaseApplication?extends?Application?{????????private?static?BaseApplication?instance;????????@Override??????public?void?onCreate()?{??????????super.onCreate();????????????instance?=?this;??????????initTbs();??????}????????private?void?initTbs()?{??????????????????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;??????}??}?? 不要忘記添加:
?
第三步:創(chuàng)建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>?? 第四步:創(chuàng)建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;????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("打印日志","網(wǎng)頁加載失敗");??????????????}??????????});??????????????????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);??????}????????}?? ?
【接入成功效果】
上述代碼只是最基礎(chǔ)的集成,更多的效果,請(qǐng)移步官網(wǎng) [官網(wǎng)接入文檔]
大概試了下,APP第一次啟動(dòng)好像用的還是自帶Webview,猜測是X5內(nèi)核還沒下載完吧
接入成功,標(biāo)志:1.長按文字會(huì)出現(xiàn)"保存離線網(wǎng)頁" 2.復(fù)制英文會(huì)出現(xiàn)"翻譯" 3.復(fù)制文字會(huì)有水滴標(biāo)志
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Android使用腾讯浏览服务X5内核的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。