android 整合最新X5WebView 以及离线安装教程
生活随笔
收集整理的這篇文章主要介紹了
android 整合最新X5WebView 以及离线安装教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在build.gradle中添加依賴
?
為了保障內核的動態下發和正常使用,您需要在您的AndroidManifest.xml增加如下權限:
<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.**{*;}?首次初始化冷啟動優化
// 在調用TBS初始化、創建WebView之前進行如下配置 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);?在項目啟動類加入此代碼
?
或者在?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);//設置布局,會引起WebView的重新布局(relayout),默認值NARROW_COLUMNSws.setLoadsImagesAutomatically(true);//自動加載圖片資源ws.setJavaScriptCanOpenWindowsAutomatically(true);ws.setJavaScriptEnabled(true);//執行javascript腳本ws.setUseWideViewPort(true);//支持HTML的“viewport”標簽或者使用wide viewportws.setLoadWithOverviewMode(true);//縮小內容以適應屏幕寬度ws.setGeolocationEnabled(true);//啟用定位ws.setAppCacheEnabled(true);ws.setDomStorageEnabled(true);//啟用DOM存儲APIws.setDefaultTextEncodingName("utf-8");//設置編碼格式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默認使用第三方或系統默認瀏覽器打開網頁的行為,使網頁用WebView打開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(); //表示等待證書響應//handler.cancel(); //表示掛起連接,為默認方式// handler.handleMessage(null); //可做其他處理}});webView.setWebChromeClient(new WebChromeClient(){@Overridepublic void onPermissionRequest(final PermissionRequest request) {request.grant(request.getResources());}});注意引用的包:
然后運行項目 當
/*** 預初始化結束* 由于X5內核體積較大,需要依賴wifi網絡下發,所以當內核不存在的時候,默認會回調false,此時將會使用系統內核代替* 內核下發請求發起有24小時間隔,卸載重裝、調整系統時間24小時后都可重置* 調試階段建議通過 WebView 訪問 debugtbs.qq.com -> 安裝線上內核 解決* @param isX5 是否使用X5內核*/@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內核安裝成功。。。。",mContext);}else{ToastUtils.showToast("X5內核安裝失敗。。。。",mContext);initX5WebView();}}?isX5 為true 說明內核下載成功,但是X5webview 很多機型都首次都下載不了, 所以我又嘗試 了離線安裝,但是app打包的apk會增加40M左右,可以參考地址
TBS文件瀏覽自主安裝內核方案_ThankSars的博客-CSDN博客_tbs內核
總結
以上是生活随笔為你收集整理的android 整合最新X5WebView 以及离线安装教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab和Fluent联合仿真实现涡
- 下一篇: 软考高项-质量管理论文范文