android x5 浏览器教程,064-腾讯的X5WebView内嵌浏览器引擎的使用
X5內(nèi)核,微信和QQ瀏覽器都在用的WebView; 官網(wǎng)地址:http://x5.tencent.com,詳細(xì)的信息進(jìn)官網(wǎng)了解;
這是官方的宣傳語:
1) 速度快:相比系統(tǒng)webview的網(wǎng)頁打開速度有30+%的提升;
2) 省流量:使用云端優(yōu)化技術(shù)使流量節(jié)省20+%;
3) 更安全:安全問題可以在24小時(shí)內(nèi)修復(fù);
4) 更穩(wěn)定:經(jīng)過億級(jí)用戶的使用考驗(yàn),CRASH率低于0.15%;
5) 兼容好:無系統(tǒng)內(nèi)核的碎片化問題,更少的兼容性問題;
6) 體驗(yàn)優(yōu):支持夜間模式、適屏排版、字體設(shè)置等瀏覽增強(qiáng)功能;
7) 功能全:在Html5、ES6上有更完整支持;
8) 更強(qiáng)大:集成強(qiáng)大的視頻播放器,支持視頻格式遠(yuǎn)多于系統(tǒng)webview;
9) 視頻和文件格式的支持x5內(nèi)核多于系統(tǒng)內(nèi)核
10) 防劫持是x5內(nèi)核的一大亮點(diǎn)
1、下載SDK:
2 解壓出tbs_sdk_thirdapp_v4.3.0.1148_43697_sharewithdownloadwithfile_withoutGame_obfs_20190805_175505.jar 文件
拷貝到lib目錄 然后右鍵 ?add as libratry 好像是這個(gè)
SDK中附有so文件,看需求引入,
3 初始化
創(chuàng)建一個(gè)類package?com.example.administrator.myapplication;
import?android.app.Application;
import?android.util.Log;
import?com.tencent.smtt.sdk.QbSdk;
public?class?APPAplication?extends?Application?{
@Override
public?void?onCreate()?{
//?TODO?Auto-generated?method?stub
super.onCreate();
//搜集本地tbs內(nèi)核信息并上報(bào)服務(wù)器,服務(wù)器返回結(jié)果決定使用哪個(gè)內(nèi)核。
QbSdk.PreInitCallback?cb?=?new?QbSdk.PreInitCallback()?{
@Override
public?void?onViewInitFinished(boolean?arg0)?{
//?TODO?Auto-generated?method?stub
//x5內(nèi)核初始化完成的回調(diào),為true表示x5內(nèi)核加載成功,否則表示x5內(nèi)核加載失敗,會(huì)自動(dòng)切換到系統(tǒng)內(nèi)核。
Log.d("app",?"?onViewInitFinished?is?"?+?arg0);
}
@Override
public?void?onCoreInitFinished()?{
//?TODO?Auto-generated?method?stub
}
};
//x5內(nèi)核初始化接口
QbSdk.initX5Environment(getApplicationContext(),??cb);
}
}
然后在AndroidManifest.xml 中指定
同時(shí) 增加權(quán)限
自定義X5WebView類package?com.example.administrator.myapplication;
import?android.annotation.SuppressLint;
import?android.content.Context;
import?android.util.AttributeSet;
import?com.tencent.smtt.sdk.WebSettings;
import?com.tencent.smtt.sdk.WebSettings.LayoutAlgorithm;
import?com.tencent.smtt.sdk.WebView;
import?com.tencent.smtt.sdk.WebViewClient;
public?class?X5WebView?extends?WebView?{
private?WebViewClient?client?=?new?WebViewClient()?{
/**
*?防止加載網(wǎng)頁時(shí)調(diào)起系統(tǒng)瀏覽器
*/
public?boolean?shouldOverrideUrlLoading(WebView?view,?String?url)?{
view.loadUrl(url);
return?true;
}
};
@SuppressLint("SetJavaScriptEnabled")
public?X5WebView(Context?arg0,?AttributeSet?arg1)?{
super(arg0,?arg1);
this.setWebViewClient(client);
//?this.setWebChromeClient(chromeClient);
//?WebStorage?webStorage?=?WebStorage.getInstance();
initWebViewSettings();
this.getView().setClickable(true);
}
private?void?initWebViewSettings()?{
WebSettings?webSetting?=?this.getSettings();
webSetting.setJavaScriptEnabled(true);
webSetting.setJavaScriptCanOpenWindowsAutomatically(true);
webSetting.setAllowFileAccess(true);
webSetting.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
webSetting.setSupportZoom(true);
webSetting.setBuiltInZoomControls(true);
webSetting.setUseWideViewPort(true);
webSetting.setSupportMultipleWindows(true);
//?webSetting.setLoadWithOverviewMode(true);
webSetting.setAppCacheEnabled(true);
//?webSetting.setDatabaseEnabled(true);
webSetting.setDomStorageEnabled(true);
webSetting.setGeolocationEnabled(true);
webSetting.setAppCacheMaxSize(Long.MAX_VALUE);
//?webSetting.setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);
webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);
//?webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH);
webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);
//?this.getSettingsExtension().setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);//extension
//?settings?的設(shè)計(jì)
}
public?X5WebView(Context?arg0)?{
super(arg0);
setBackgroundColor(85621);
}
}
在活動(dòng)中使用<?xml ?version="1.0"?encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/x5_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
后臺(tái)代碼package?com.example.administrator.myapplication;
import?android.Manifest;
import?android.content.BroadcastReceiver;
import?android.content.Context;
import?android.content.Intent;
import?android.content.IntentFilter;
import?android.content.pm.PackageManager;
import?android.database.Cursor;
import?android.net.ConnectivityManager;
import?android.net.NetworkInfo;
import?android.net.Uri;
import?android.provider.ContactsContract;
import?android.support.annotation.Nullable;
import?android.support.v4.app.ActivityCompat;
import?android.support.v4.content.ContextCompat;
import?android.support.v7.app.AppCompatActivity;
import?android.os.Bundle;
import?android.view.KeyEvent;
import?android.view.View;
import?android.webkit.WebChromeClient;
import?android.webkit.WebSettings;
import?android.webkit.WebView;
import?android.webkit.WebViewClient;
import?android.widget.ArrayAdapter;
import?android.widget.Button;
import?android.widget.ListView;
import?android.widget.Toast;
import?java.util.ArrayList;
import?java.util.List;
public?class?MainActivity?extends?AppCompatActivity?{
private?static?final?String?mHomeUrl?=?"http://www.bamn.cn";
private?X5WebView?mX5WebView;
@Override
protected?void?onCreate(@Nullable?Bundle?savedInstanceState)?{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initHardwareAccelerate();
initView();
}
/**
*?啟用硬件加速
*/
private?void?initHardwareAccelerate()?{
try?{
if?(Integer.parseInt(android.os.Build.VERSION.SDK)?>=?11)?{
getWindow()
.setFlags(
android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}
}?catch?(Exception?e)?{
}
}
private?void?initView()?{
mX5WebView?=?(X5WebView)?findViewById(R.id.x5_webview);
mX5WebView.loadUrl(mHomeUrl);
}
/**
*?返回鍵監(jiān)聽
*?@param?keyCode
*?@param?event
*?@return
*/
@Override
public?boolean?onKeyDown(int?keyCode,?KeyEvent?event)?{
if?(keyCode?==?KeyEvent.KEYCODE_BACK)?{
if?(mX5WebView?!=?null?&&?mX5WebView.canGoBack())?{
mX5WebView.goBack();
return?true;
}?else?{
return?super.onKeyDown(keyCode,?event);
}
}
return?super.onKeyDown(keyCode,?event);
}
@Override
protected?void?onDestroy()?{
//釋放資源
if?(mX5WebView?!=?null)
mX5WebView.destroy();
super.onDestroy();
}
}
總結(jié)
以上是生活随笔為你收集整理的android x5 浏览器教程,064-腾讯的X5WebView内嵌浏览器引擎的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MTK6763平台手机 在国外无法成功注
- 下一篇: 【金融量化分析】#BSM formula