源自: https://www.jianshu/p/b54f65d8b5a7

其实吧,网络上很多 X5的教程。我只是想写一点 我遇到的问题吧。
https://x5.tencent/tbs/sdk.html
上面是官网下载地址。Android studio 可以直接 导入,很方便。
像这个样子。
api ‘com.tencent.tbs.tbssdk:sdk:43697’
然后听说 需要 兼容一些 cpu。需要导入一些 .so 文件,和一些配置。
像这个样子。

配置像这个样子。

vectorDrawables.useSupportLibrary = true<br>
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}

然后在 自己的Application 的onCreate 写入初始化。像这个样子

QbSdk.setDownloadWithoutWifi(true);
QbSdk.initX5Environment(this, new QbSdk.PreInitCallback() {
@Override
public void onCoreInitFinished() {
Log.e(TAG, "onCoreInitFinished: " );
}
@Override
        public void onViewInitFinished(boolean b) {
            Log.e(TAG, "onViewInitFinished: "+b );
        }
    });

以上 都和别人写的没有任何区别。
然后 骚的事情来了。我的下载监听 竟然的false.
下面就是 debug 之路了。
首先在你手动下的sdk 的压缩文件解压应该是这个样子。

jar 文件 名字被我改掉了(这个可以忽略)。

另外一个是问题自查手册,还是可以看一下,关键是 我特么内核都加载失败了,能自己应用中打开吗?还不是 只能微信打开。debugtbs.qq 这个网址还有有用的,如果x5浏览器能够打开这个网址,说明,x5内核加载成功了。

这么一想,是一个思路。

然后提示网络错误?嗯???

换了一个 9以下的手机,发现内核加载成功了,en???

https://x5.tencent/tbs/technical.html#/detail/sdk/1/b1b4cd06-f71e-47ab-b15f-f92fa9fe81da
将上面配置 写入项目。然后X5 就可以打开 debugtbs.qq了。
写了这么多,其实 就是 这么一句话 没找到:
由于debugtbs.qq访问需要依赖http请求,当targetAPI为28时非Https请求将会被block,会导致部分内核功能异常。您可以手动降低targetAPi到27及以下或者在您的AndroidManifst.xml中的Application标签中添加
android:networkSecurityConfig="@xml/network_security_config"
并在app的res/xml目录中添加network_security_config.xml文件,文件内容为

<?xml version="1.0" encoding="utf-8"?>

然后 就是文件 预览 了。
还是 下载的sdk 里面 有这么一个文件。

其实加载文件就这样

/**
本地播放。
@param pathName
*/
public void openFileReader(String pathName) {
    HashMap<String, String> params = new HashMap<String, String>();
    params.put("local", "true");
    JSONObject Object = new JSONObject();
    try
    {
        Object.put("pkgName",this.getApplicationContext().getPackageName());
    }
    catch (JSONException e)
    {
        e.printStackTrace();
    }
    params.put("menuData",Object.toString());
    QbSdk.getMiniQBVersion(this);
    int ret = QbSdk.openFileReader(this, pathName, params, this);
}

然后 骚的是如果有QQ浏览器,他会优先用QQ浏览器打开,这个估计可以设置。上面那张图片 指向的那个 pdf 有传参 含义的(我没有仔细看过)。
如果没有QQ浏览器 他就会当前应用打开,像这样子,

这个是必须加了,否则,下一次加载不了,还有一个问题,就是同时只能用一个,用了openFileReader 再用TbsReaderView TbsReaderView加载不出来内容。

另附上一篇混淆配置文章

腾讯X5TBS 混淆规则

更多推荐

日常搬砖 - 腾讯X5 tbs 文件预览