android 整合最新X5WebView 以及离线安装教程
生活随笔
收集整理的這篇文章主要介紹了
android 整合最新X5WebView 以及离线安装教程
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在build.gradle中添加依賴(lài)
?
為了保障內(nèi)核的動(dòng)態(tài)下發(fā)和正常使用,您需要在您的AndroidManifest.xml增加如下權(quán)限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />為了保障X5功能的正常使用,您需要在您的proguard-rules.pro文件中添加如下混淆配置:
-keepattributes Exceptions-keep class com.tencent.smtt.export.external.**{*;} -keep class com.tencent.smtt.export.internal.**{*;}?首次初始化冷啟動(dòng)優(yōu)化
// 在調(diào)用TBS初始化、創(chuàng)建WebView之前進(jìn)行如下配置 HashMap map = new HashMap(); map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true); map.put(TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE, true); QbSdk.initTbsSettings(map);?在項(xiàng)目啟動(dòng)類(lèi)加入此代碼
?
或者在?AndroidManifest.xml配置新增
<service android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService" android:label="dexopt" android:process=":dexopt" > </service>布局文件
<LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/li_jitsi"android:orientation="vertical"android:background="#ffffff"android:layout_marginTop="?attr/actionBarSize"><com.tencent.smtt.sdk.WebViewandroid:id="@+id/webView"android:visibility="visible"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout> webView = mView.findViewById(R.id.webView); WebSettings ws = webView.getSettings();ws.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);//設(shè)置布局,會(huì)引起WebView的重新布局(relayout),默認(rèn)值NARROW_COLUMNSws.setLoadsImagesAutomatically(true);//自動(dòng)加載圖片資源ws.setJavaScriptCanOpenWindowsAutomatically(true);ws.setJavaScriptEnabled(true);//執(zhí)行javascript腳本ws.setUseWideViewPort(true);//支持HTML的“viewport”標(biāo)簽或者使用wide viewportws.setLoadWithOverviewMode(true);//縮小內(nèi)容以適應(yīng)屏幕寬度ws.setGeolocationEnabled(true);//啟用定位ws.setAppCacheEnabled(true);ws.setDomStorageEnabled(true);//啟用DOM存儲(chǔ)APIws.setDefaultTextEncodingName("utf-8");//設(shè)置編碼格式webView.requestFocus();webView.canGoForward();webView.canGoBack();webView.addJavascriptInterface(new JsInterface(mContext,roomName),"AndroidWebView");String JITSI_URL = SharedPUtils.findByKey(mContext,"JITSI_URl");webView.loadUrl(JITSI_URL);//覆蓋WebView默認(rèn)使用第三方或系統(tǒng)默認(rèn)瀏覽器打開(kāi)網(wǎng)頁(yè)的行為,使網(wǎng)頁(yè)用WebView打開(kāi)webView.setWebViewClient(new WebViewClient(){@Overridepublic boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {view.loadUrl(url);return true;}@Overridepublic void onReceivedSslError(WebView var1, SslErrorHandler handler, SslError var3) {handler.proceed(); //表示等待證書(shū)響應(yīng)//handler.cancel(); //表示掛起連接,為默認(rèn)方式// handler.handleMessage(null); //可做其他處理}});webView.setWebChromeClient(new WebChromeClient(){@Overridepublic void onPermissionRequest(final PermissionRequest request) {request.grant(request.getResources());}});注意引用的包:
然后運(yùn)行項(xiàng)目 當(dāng)
/*** 預(yù)初始化結(jié)束* 由于X5內(nèi)核體積較大,需要依賴(lài)wifi網(wǎng)絡(luò)下發(fā),所以當(dāng)內(nèi)核不存在的時(shí)候,默認(rèn)會(huì)回調(diào)false,此時(shí)將會(huì)使用系統(tǒng)內(nèi)核代替* 內(nèi)核下發(fā)請(qǐng)求發(fā)起有24小時(shí)間隔,卸載重裝、調(diào)整系統(tǒng)時(shí)間24小時(shí)后都可重置* 調(diào)試階段建議通過(guò) WebView 訪問(wèn) debugtbs.qq.com -> 安裝線上內(nèi)核 解決* @param isX5 是否使用X5內(nèi)核*/@Overridepublic void onViewInitFinished(boolean isX5) {Log.i("TAG", "onViewInitFinished: " + isX5);// hint: you can use QbSdk.getX5CoreLoadHelp(context) anytime to get help.if(isX5){ToastUtils.showToast("X5內(nèi)核安裝成功。。。。",mContext);}else{ToastUtils.showToast("X5內(nèi)核安裝失敗。。。。",mContext);initX5WebView();}}?isX5 為true 說(shuō)明內(nèi)核下載成功,但是X5webview 很多機(jī)型都首次都下載不了, 所以我又嘗試 了離線安裝,但是app打包的apk會(huì)增加40M左右,可以參考地址
TBS文件瀏覽自主安裝內(nèi)核方案_ThankSars的博客-CSDN博客_tbs內(nèi)核
總結(jié)
以上是生活随笔為你收集整理的android 整合最新X5WebView 以及离线安装教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Matlab和Fluent联合仿真实现涡
- 下一篇: 肖维勒准则matlab_肖维勒准则.PP