官网地址:
http://x5.tencent.com/tbs/index.html
该控件的特点:
官网介绍
该控件的特点:
官网介绍
1) 速度快:相比系统webview的网页打开速度有30+%的提升;
2) 省流量:使用云端优化技术使流量节省20+%;
3) 更安全:安全问题可以在24小时内修复;
4) 更稳定:经过亿级用户的使用考验,CRASH率低于0.15%;
5) 兼容好:无系统内核的碎片化问题,更少的兼容性问题;
6) 体验优:支持夜间模式、适屏排版、字体设置等浏览增强功能;
7) 功能全:在Html5、ES6上有更完整支持;
8) 更强大:集成强大的视频播放器,支持视频格式远多于系统webview;
9) 视频和文件格式的支持x5内核多于系统内核
10) 防劫持是x5内核的一大亮点
开始接入
SDK下载 :http://x5.tencent.com/tbs/sdk.html
压缩包解压后如下图
Android studio 示例
在libs放入sdk 的包
布局文件
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<com.tencent.smtt.sdk.WebView
android:id=
"@+id/webView_showHtml"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
</com.tencent.smtt.sdk.WebView>
</RelativeLayout>
|
MainActivity代码
public class MainActivity extends MyActivity { private WebView webViewShowHtml; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webViewShowHtml= (WebView) findViewById(R.id.webView_showHtml); getWindow().setFormat(PixelFormat.TRANSLUCENT); getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); WebSettings settings = webViewShowHtml.getSettings(); settings.setJavaScriptEnabled(true); settings.setGeolocationEnabled(true); settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS); settings.setGeolocationDatabasePath(this.getFilesDir().getPath()); //------------------------收集BUG------------------------- CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(MainActivity.this); strategy.setCrashHandleCallback(new CrashReport.CrashHandleCallback() { public Map<String, String> onCrashHandleStart(int crashType, String errorType, String errorMessage, String errorStack) { LinkedHashMap<String, String> map = new LinkedHashMap<String, String>(); String x5CrashInfo = com.tencent.smtt.sdk.WebView.getCrashExtraMessage(MainActivity.this); map.put("x5crashInfo", x5CrashInfo); return map; } @Override public byte[] onCrashHandleStart2GetExtraDatas(int crashType, String errorType, String errorMessage, String errorStack) { try { return "Extra data.".getBytes("UTF-8"); } catch (Exception e) { return null; } } }); CrashReport.initCrashReport(MainActivity.this, "此处填写腾讯Bugly上面的appId", true, strategy); //----------------以上是收集BUG所用代码----------------------------- webViewShowHtml.setWebViewClient(client); webViewShowHtml.loadUrl("file:///android_asset/xxx");//此处加载的是本地html"xxx"是文件名 } private WebViewClient client = new WebViewClient() { /** * 防止加载网页时调起系统浏览器 */ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }; }