class TbsInstance {
fun initX5Environment(context:Context){
try {
val map = HashMap<String, Any>()
map[TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER] = true
map[TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE] = true
if (!QbSdk.getTBSInstalling())
map[TbsCoreSettings.TBS_SETTINGS_USE_PRIVATE_CLASSLOADER] = true
QbSdk.initTbsSettings(map)
QbSdk.setDownloadWithoutWifi(true)
QbSdk.setTbsListener(object : TbsListener {
override fun onDownloadFinish(i: Int) {
val tbsCoreInitFinish = P.getPreferences(TbsTAG, false)
LogUtil.e(TbsTAG, "QbSdk onDownloadFinish -->下载X5内核完成:" + i
+ " tbsCoreInitFinish:" + tbsCoreInitFinish
+ " isDownloading:" + TbsDownloader.isDownloading())
//[首次下载]
if (i != 100 && !tbsCoreInitFinish && !TbsDownloader.isDownloading()) {
QbSdk.reset(context)
TbsDownloader.startDownload(context)
}
}
override fun onInstallFinish(i: Int) {
LogUtil.e(TbsTAG,"QbSdk onInstallFinish -->安装X5内核进度:$i")
}
override fun onDownloadProgress(i: Int) {
LogUtil.e(TbsTAG,"QbSdk onDownloadProgress -->下载X5内核进度:$i")
}
})
val preInitCallback = object : QbSdk.PreInitCallback {
override fun onCoreInitFinished() {
LogUtil.e(TbsTAG, "QbSdk onCoreInitFinished")
}
override fun onViewInitFinished(arg0: Boolean) {
LogUtil.e(TbsTAG, "QbSdk onViewInitFinished -->内核加载 arg0:" + arg0
+ " isDownloading:" + TbsDownloader.isDownloading())
//[存储合成标记 意义不大]
P.putPreferences(TbsTAG, arg0)
if (!arg0 && !TbsDownloader.isDownloading()) {
QbSdk.reset(context)
TbsDownloader.startDownload(context)
}
}
}
QbSdk.initX5Environment(context,preInitCallback)
} catch (e:Exception){
e.printStackTrace()
}
}
companion object {
const val TbsTAG = "QbSdk"
@Volatile
private var tbsInstance: TbsInstance? = null
fun getInstance(): TbsInstance =
tbsInstance ?: synchronized(this){
tbsInstance ?: createInstance().also {
tbsInstance = it
}
}
private fun createInstance(): TbsInstance = TbsInstance()
}
}
感谢
1.官方文档
3.其他忘了就不一一感谢了,具体配置查看官网