Android之腾讯TBS浏览器WebView

今天记录一下,webView的替代TBS的使用,腾讯浏览服务,X5强大内核。因为以前的接入H5界面、加载富文本,都是使用安卓原生的WebView控件。总所周知,WebView有很多的坑,其知识快是相当大的。由于原来项目使用原生加载高德地图,感觉可以满足开发的需求:在地图上画轨迹、添加图片等。最近有了新的需求,准备加载web端的界面。然而使用原生的webView加载显示不了,主要是根据不同的手机,显示异常。

最后选择使用腾讯的TBS,官网地址。官网上讲的很详细,以下就简洁概述集成过程。

1.导入jar包

下载Android SDK(完整版) 这个就是Jar包,之后放到你项目的libs文件夹。

compile fileTree(dir: 'libs', include: ['*.jar'])
//TBS
compile files('libs/tbs_sdk_thirdapp_v3.6.0.1310_43612_sharewithdownload_withoutGame_obfs_20180706_163319.jar')

2.添加权限 

在Manifest文件添加下面的权限:

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

3.初始化TBS

根据下载的demo中的方法,在Aplication中初始化

QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
			
    @Override
    public void onViewInitFinished(boolean arg0) {
        // TODO Auto-generated method stub
        //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
        Log.d("app", " onViewInitFinished is " + arg0);
    }
			
    @Override
    public void onCoreInitFinished() {
        // TODO Auto-generated method stub
    }
};
//x5内核初始化接口
QbSdk.initX5Environment(getApplicationContext(),  cb);

5.查看文档中原生和X5 WebView的类对应表

类的对应方法要进行修改,否则无法顺利使用,即导包使需要注意。

6.xml中的代码

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

7.内存泄漏

@Override
protected void onDestroy() {
        web_view.setWebChromeClient(null);
        web_view.setWebViewClient(null);
        web_view.clearCache(true);

        try {
            if (web_view != null) {
                web_view.stopLoading();
                web_view.removeAllViewsInLayout();
                web_view.removeAllViews();
                web_view.setWebViewClient(null);
                web_view.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
                web_view.clearHistory();
                ((ViewGroup) web_view.getParent()).removeView(web_view);
                CookieSyncManager.getInstance().stopSync();
                web_view.destroy();
                web_view = null;
            }
        } catch (Throwable throwable) {
            throwable.printStackTrace();
        } finally {
            super.onDestroy();
        }
}

8.混淆

jar包本来就已经是混淆好的了,如果你打包时候没有添加规则再混淆一遍的话,就会无法使用x5内核了。所以需要添加混淆规则:下载混淆文件。解压后用文本编辑器打开,复制里面的内容到你项目的proguard-rules.pro混淆文件即可。

注:还有一些高级使用的方法,推荐网址,其实官方文档都有讲解,对于一些视频、输入法、兼容、混淆等内容。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值