android项目接使用 TBS X5 框架时问题记录(文档加载不出空白问题解决)

本文记录了在android项目中使用TBSX5框架遇到的文档加载空白问题及解决方案。主要原因是X5WebView内核在无权限环境下初始化失败,导致在线文档加载异常。通过调整初始化时机至SplashActivity并在获取存储权限后初始化X5内核,成功解决了文档加载空白的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android项目接使用 TBS X5 框架时问题记录(文档加载不出空白问题解决)

最近开发遇到一个棘手的问题
我打开文档后里面的内容变成空白了是怎么回事?
不知到为何,最后跟踪项目代码
发现测试整的这个文档是qq应用内部的文件
我这边打开首先是根据是否有本地路径如有直接打开
如没有,再去根据网络地址在线文档打开
发现出现一个错误,没有权限访问该问题,我的解决法案有两种

1,将其文件copy到我们app可以访问的路径下,直接打开即可
2,直接在线打开(在线打开,也是先把文档下载到本地然后打开)

过了一阵子后,在9.0手机上发现又出现空白问题
这个问题你不注意很难找到原因
android项目接入Tbs-实现项目内部打开office在线文档并解决

最后发现
我们的 x5webview 内核初始化 放在了application中
耳此时应用是没有任何全权限的,导致x5内核初始化失败,
而失败后,你可能不会知道,因为失败后,X5回自动给你切换到系统的webview内核,你也可以顺利的打开webview,你以为一直用的是X5内核,呵呵,其实你懂的
最后发现应用的存储权限没有
导致 x5webview 初始化失败
打开在线文档就会出现空白

解决方法:

X5webview初始化 在splashActivity中
同意存储权限之后就初始化X5内核,就不会出现空白的问题了

  RxPermissions(this)
                    .request(Manifest.permission.WRITE_EXTERNAL_STORAGE,
                            Manifest.permission.READ_EXTERNAL_STORAGE)
                    .subscribe {
           
                            initX5Webview()
                    }
  /**
     * x5初始化
     */
    private fun initX5Webview(){
        try {
            QbSdk.initX5Environment(applicationContext, object : QbSdk.PreInitCallback {
                override fun onCoreInitFinished() {
                    val map = mutableMapOf<String, Any>()
                    map[TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER] = true
                    QbSdk.initTbsSettings(map)
                    Log.e("x5--","Both success and failure are called back")
                }

                override fun onViewInitFinished(p0: Boolean) {
                    Log.e("x5--","Load the kernel successfully -- $p0")
                }
            })
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

完美解决问题,prefect。如有问题欢迎留言,一块讨论学习解决。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值