美文网首页
android TBS腾讯浏览服务的SDK接入

android TBS腾讯浏览服务的SDK接入

作者: xiaoChannel | 来源:发表于2017-05-26 14:32 被阅读0次

      在开发的时候,公司产品需要展示HTML5页面,而android原生的WebView的开发过程总结了一下....

    一句话概括:不要怀疑自己。

      后来寻找引擎 crosswalk和TBS X5做为最后的选择。

      crosswalk开源引擎,很赞,但是要接受20MB的肥料,想具体了解的话。

      X5呢,jar包只需要300kb左右,但是共享的QQ和微信的内核,所以说要是手机没有安装QQ或者微信,X5是不可能开启的。但是这问题在国内,不存在。

      好了那就开始把。

    http://x5.tencent.com/tbs/index.html

    注册登录之后,我们需要选择开发者后台

    其中APPKey 经过添加生成。

    这个就是申请界面,只需要名称和包名,填好就OK。

    然后通过主页下载SDK之后,接入项目当中。

    首先jar放之后,AndroidManifest.xml需要application中配置

    建议的是开启硬件加速:

    android:hardwareAccelerated="true"

      name固定写死的,value就是申请后的appKey。

    AndroidManifest.xml里加入权限声明:

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

    接下来在 bulid.gradle 中添加NDK库

    defaultConfig {

    .........

          ndk {

               //TBS 选择要添加的对应cpu类型的.so库。

                abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a'

               // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'

                 }

         ........

    }

    官方术语:

      x5暂时不提供64位so文件,为了保证64位手机能正常加载x5内核,请参照如下链接修改相关配置 https://x5.tencent.com/tbs/technical.html#/detail/sdk/1/34cf1488-7dc2-41ca-a77f-0014112bcab7

    简单的来说,做到这一步,我们就可以直接使用jar包提供的webView 来使用了。

    现在可以加载页面试试了

      。。。。。。( 这里直说x5,其他忽略)

      显示网页文字时,可通过长按选择文字的标识判断,如下水滴状选择效果是x5webview 的标志:

      其实实际使用中,确实比原生的webView快了不少,同时开发呀,兼容什么的,坑少了很多。(因为最近他们内核出了个问题,结果被我怼上了,怀疑自己挺长时间的,后来发现之后,沟通也蛮愉快的......吃饭喝酒二锅头,然后KTV 献歌一首丑八怪。~ 玩笑其实没有,忙)

     走到这一步不要以为就完了,其实周围都是很“凶”险的,不信站起来向窗外向下望望。

    虽然在接入的时候,只是负载了300kb左右的jar包,但同时也会有相应的麻烦之处,就是它需要预加载, 否则在使用的时候第一次调用会闪屏或者卡顿很久。

    所以推荐的是在Application 就预加载,虽然APP在这样干之后回比起初启动慢一点。

    private void initX5() {

        TbsDownloader.needDownload(this, false);

        QbSdk.initX5Environment(this,cb);

        Log.d("X5 ——TBS","预加载中...");

       QbSdk.setDownloadWithoutWifi(true);

       if (!QbSdk.isTbsCoreInited()) {

        // preinit只需要调用一次,如果已经完成了初始化,那么就直接构造view

       QbSdk.preInit(BuildingMaterialApp.getInstance(), null);// 设置X5初始化完成的回调接口

    }

    QbSdk.setTbsListener(new TbsListener() {

       @Override

       public void onDownloadFinish(int i) {

        L.d("onDownloadFinish");

    }

      @Override

        public void onInstallFinish(int i) {

        L.d("onInstallFinish");

    }

    @Override

       public void onDownloadProgress(int i) {

       L.d("onDownloadProgress:" + i);

    }

    });

    }

      QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {

       @Override

       public void onViewInitFinished(boolean arg0) {

       Log.e("0912", " onViewInitFinished is " + arg0);

       }

    @Override

    public void onCoreInitFinished() {

     }

    };

             这是官方文档    http://x5.tencent.com/tbs/guide/sdkInit.html

      如有需要播放视频的,文档有对其详细的说明。然后就这些,后面有时间更新联合X5 的webView 开发 setting配置 client拦截  以及js交互等,以及说一些坑和处理方法。

    相关文章

      网友评论

          本文标题:android TBS腾讯浏览服务的SDK接入

          本文链接:https://www.haomeiwen.com/subject/jwtlbttx.html