Android集成Tbs 替代原生webView

来源:互联网 发布:农村淘宝合伙人官网 编辑:程序博客网 时间:2024/05/01 08:35

简介

原生WebView存在些许问题。所以考虑到集成第三方。
介绍一下TBS的优势。
1)速度快:相比系统WebView的网页加载速度有近30%的提升;
2)省流量:云端优化技术使流量节省20%;
3)更安全:24小时安全问题解决机制;
4)更稳定:经过亿级用户的使用考验,CRASH率0.15%;
5)集成强大的视频播放器,支持各种视频格式直接打开;
6)适屏排版、字体设置等浏览增强功能的提供;
7)HTML5更完整支持;
8)无系统碎片化问题、更少的兼容性问题。


TBS(腾讯浏览服务)官方接入文档


1.下载sdk 去官方下载。然后把lib包集成到项目中。
2.在TBS官网的“开发者后台”注册app,取得appKey。
申请的AppKey以下述格式放进AndroidMenifest.xml里,位置在application标签内部:(ps:我没有申请也正常使用了这个webview,由于本人学习,所以为申请appkey)

<meta-data android:name="QBSDKAppKey" android:value="your app key"> </meta-data>

3.布局了添加控件。

<com.tencent.smtt.sdk.WebView android:id=”@+id/tbs_webview” android:layout_width=”match_parent” android:layout_height=”match_parent”/> 

4.添加权限

<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” /> 

ps:这些步骤官方文档里都有。博主只是用来记录一下。

tbsWebView = (WebView) findViewById(R.id.tbs_webview); //加载网页 tbsWebView.loadUrl(url); //设置属性 整体更原生webview差不多 WebSettings webSettings = tbsWebView.getSettings(); webSettings.setJavaScriptCanOpenWindowsAutomatically(true); tbsWebView.setWebViewClient(new WebViewClient() { @Override         public boolean shouldOverrideUrlLoading(WebView webView, String s) {             webView.loadUrl(s);             return true;         }     }); //与js交互详情可看官方demo tbsWebView.addJavascriptInterface(new WebViewJavaScriptFunction() { @Override     public void onJsFunctionCalled(String tag) {     } }, “Android”);

发现播放视频不错,一句话就可以播放本地视频。

在配置文件里加上

<activity    android:name="com.tencent.smtt.sdk.VideoActivity"    android:configChanges="orientation|screenSize|keyboardHidden"    android:exported="false"    android:launchMode="singleTask"    android:alwaysRetainTaskState="true">    <intent-filter>        <action android:name="com.tencent.smtt.tbs.video.PLAY" />        <category android:name="android.intent.category.DEFAULT" />    </intent-filter></activity>
TbsVideo.openVideo(this, Environment.getExternalStorageDirectory() + “****.mp4”);

githup地址

1 0
原创粉丝点击