腾讯X5内核的集成和使用

来源:互联网 发布:淘宝起店名 编辑:程序博客网 时间:2024/04/29 18:51
  • 先看看什么地方用到了这个内核:

  • TBS(腾讯浏览服务)的优势
  • 1)速度快:相比系统WebView的网页加载速度有近30%的提升
  • 2)省流量:云端优化技术使流量节省20%
  • 3)更安全:24小时安全问题解决机制
  • 4)更稳定:经过亿级用户的使用考验,CRASH率0.15%
  • 5)集成强大的视频播放器,支持各种视频格式直接打开
  • 6)适屏排版、字体设置等浏览增强功能的提供
  • 7)Html5更完整支持
  • 8)无系统碎片化问题、更少的兼容性问题
  • 原生webView和 x5webView对照图
系统内核SDK内核android.webkit.ConsoleMessagecom.tencent.smtt.export.external.interfaces.ConsoleMessageandroid.webkit.CacheManagercom.tencent.smtt.sdk.CacheManager(deprecated)android.webkit.CookieManagercom.tencent.smtt.sdk.CookieManagerandroid.webkit.CookieSyncManagercom.tencent.smtt.sdk.CookieSyncManagerandroid.webkit.CustomViewCallbackcom.tencent.smtt.export.external.interfaces.IX5WebChromeClient.CustomViewCallbackandroid.webkit.DownloadListenercom.tencent.smtt.sdk.DownloadListenerandroid.webkit.GeolocationPermissionscom.tencent.smtt.export.external.interfaces.GeolocationPermissionsCallbackandroid.webkit.HttpAuthHandlercom.tencent.smtt.export.external.interfaces.HttpAuthHandlerandroid.webkit.JsPromptResultcom.tencent.smtt.export.external.interfaces.JsPromptResultandroid.webkit.JsResultcom.tencent.smtt.export.external.interfaces.JsResultandroid.webkit.SslErrorHandlercom.tencent.smtt.export.external.interfaces.SslErrorHandlerandroid.webkit.ValueCallbackcom.tencent.smtt.sdk.ValueCallbackandroid.webkit.WebBackForwardListcom.tencent.smtt.sdk.WebBackForwardListandroid.webkit.WebChromeClientcom.tencent.smtt.sdk.WebChromeClientandroid.webkit.WebHistoryItemcom.tencent.smtt.sdk.WebHistoryItemandroid.webkit.WebIconDatabasecom.tencent.smtt.sdk.WebIconDatabaseandroid.webkit.WebResourceResponsecom.tencent.smtt.export.external.interfaces.WebResourceResponseandroid.webkit.WebSettingscom.tencent.smtt.sdk.WebSettingsandroid.webkit.WebSettings.LayoutAlgorithmcom.tencent.smtt.sdk.WebSettings.LayoutAlgorithm
 android.webkit.WebStoragecom.tencent.smtt.sdk.WebStorageandroid.webkit.WebViewcom.tencent.smtt.sdk.WebViewandroid.webkit.WebViewClientcom.tencent.smtt.sdk.WebViewClient
  1. 将jar包复制到libs文件夹中,然后同步(Sync Project with Gradel Files)。

  2. 如果你用以调试的手机是64位的,请在Main文件夹下新建jniLibs,并在jniLibs中引入32位的so文件,更多信息参考常见问题-您的App无法加载 x5 的原因排查。

  3. 创建BaseApplication,调用TbsDownloader 的 needDownload(Context context, boolean oversea) 方法,并在Menifest文件中声明BaseApplication。

    public class BaseApplication extends Application {@Overridepublic void onCreate() {    super.onCreate();    TbsDownloader.needDownload(getApplicationContext(), false);}}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  4. 添加com.tencent.smtt.sdk.WebView布局

    <com.tencent.smtt.sdk.WebView    android:id="@+id/m_web_view"    android:layout_width="match_parent"    android:layout_height="wrap_content"/>
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4
  5. 使用WebView控件,在我的手机上setWebViewClient(client)这一步很重要,其他的WebSettings同系统的WebView效果一样。

    public class MainActivity extends AppCompatActivity {@Bind(R.id.m_web_view)WebView mWebView;private WebViewClient client = new WebViewClient() {    // 防止加载网页时调起系统浏览器    public boolean shouldOverrideUrlLoading(WebView view, String url) {        view.loadUrl(url);        return true;    }};@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    ButterKnife.bind(this);    mWebView.setWebViewClient(client);     WebView.loadUrl("http://news.qq.com/a/20160817/044071.htm");}}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  6. 添加权限

    <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" />
    • 1
    • 2
    • 3
    • 4
    • 5
    • 1
    • 2
    • 3
    • 4
    • 5
  7. 调试运行 
    理论上你手机上如果已经安装了微信、QQ、QQ空间或者QQ浏览器,就已经下载了X5内核,第一次运行跳转到网页后,停留3秒,然后按下Home键,通过杀进程的方式结束应用(直接返回退出无效),然后再次进入应用,进入网页后长按复制,就能看到效果图:这里写图片描述
  8. 如果没有出现上述效果可以尝试如下操作: 
    (1) 下载TBSDemo,安装到手机上; 
    (2) 打开TBSDemo,安装x5内核,重启进入可以看到左上角的x5 core标识,意即X5内核安装成功; 
    (3) 卸载重装你的应用; 
    (4) 第一次打开应用,进入网页后停留3秒,在Home界面通过杀进程的方式结束应用; 
    (5) 再次进入应用,查看TBS是否成功接入。 
    以上步骤中安装TBSDemo其实就是为了安装x5内核,杀进程是因为X5内核一般是在第二次启动应用后生效。
          更多详情请移步官网
0 0