美文网首页安卓优化
Android-集成腾讯TBS浏览器遇到的问题

Android-集成腾讯TBS浏览器遇到的问题

作者: 超级呆 | 来源:发表于2019-07-31 14:27 被阅读0次

    首先列一下,我在使用TBS浏览器中有遇到的问题。

    1. 如何确认x5内核是否成功加载
    2. 如果x5内核下载失败,如何处理
    3. 如何处理多次打开附件出现等待并且等待很久的情况

    提供一些自己解决问题的方案给大家参考

    如何确认x5内核是否成功加载

    我们在初始化的过程中,会有两个参数需要我们传入
    1、 上下文
    2、 回调方法
    确认x5内核是否成功加载的方法就在我们的回调方法中实现

            //搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
            QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
                @Override
                public void onViewInitFinished(boolean arg0) {
                    // TODO Auto-generated method stub
                    //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
                    Log.d("X5", " onViewInitFinished is " + arg0);
                }
    
                @Override
                public void onCoreInitFinished() {
                    Log.d("X5", " onCoreInitFinished   @@@@@@@@@@" );
                    // TODO Auto-generated method stub
                }
            };
    
            //x5内核初始化接口
            QbSdk.initX5Environment(getApplicationContext(),  cb);
    

    如果我们的x5内核集成成功,会调用回调方法里面我们添加的日志信息,
    如果没有调用,则表示我们的x5内核是集成失败的。

    如果x5内核下载失败,如何处理

    如果我们通过日志信息,发现我们的回调方法没有被调用。那么,我们肯定是要重新下载的。

           // 监听内核的下载
           QbSdk.setTbsListener(new TbsListener() {
               @Override
               public void onDownloadFinish(int i) {
                   //tbs 内核下载完成回调
                   Log.d("X5", "    内核下载完成" );
               }
    
               @Override
               public void onInstallFinish(int i) {
                   //内核安装完成回调,
                   Log.d("X5", "    内核安装完成" );
               }
    
               @Override
               public void onDownloadProgress(int i) {
                   //下载进度监听  百分比 : i%
                   Log.d("X5", "   内核下载进度:" + i );
               }
           });
    
           //判断是否要自行下载内核
           boolean needDownload = TbsDownloader.needDownload(this, TbsDownloader.DOWNLOAD_OVERSEA_TBS);
           Log.d("X5",needDownload + "");
           // 根据实际的网络情况下,选择是否下载或是其他操作
           // 例如: 只有在wifi状态下,自动下载,否则弹框提示
           if (needDownload){
               // 启动下载
               TbsDownloader.startDownload(this);
           }
    

    如何处理多次打开附件出现等待并且等待很久的情况

    可能是情况是,在第一次打开附件的时候,没有关闭,导致第二次打开,第一次的资源没有被释放,出现了一直等待的情况。

    解决的办法就是在我们使用x5内核的Activity中关闭我们的附件查看器。

     import com.tencent.smtt.sdk.TbsReaderView;
    
     private TbsReaderView mTbsReaderView;
    
       @Override
       protected void onDestroy() {
           super.onDestroy();
    
           if (mSuperFileView != null){
               // Log.d("=== ", "onDestroy: 页面关闭销毁资源");
               mSuperFileView.onStopDisplay();
           }
       }
    

    以上是我个人在项目中遇到的问题,以及解决的方案。
    欢迎各位朋友,讨论、指正~

    相关文章

      网友评论

        本文标题:Android-集成腾讯TBS浏览器遇到的问题

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