x5浏览器内核加载问题
2019-08-09 本文已影响0人
SuperTypeMen
1、集成,添加tbs的jar包到工程lib中
在application中进行初始化
QbSdk.setDownloadWithoutWifi(true)
val cb = object : QbSdk.PreInitCallback {
override fun onViewInitFinished(arg0: Boolean) {
//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
LogUtil.i(TAG,"onViewInitFinished $arg0")
}
override fun onCoreInitFinished() {
LogUtil.i(TAG,"onCoreInitFinished")
}
}
if (!QbSdk.isTbsCoreInited()) {
QbSdk.initX5Environment(this, cb)
}
在布局文件中使用
<com.tencent.smtt.sdk.WebView
android:id="@+id/wv_task"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
2、手机没有微信的情况
如果手机有微信,tbs包会共享微信的x5内核,如果手机没有微信,tbs包也会在wifi条件下自动下载x5内核,不过需要耗费24M的流量。
在x5内核没有初始化完成之前,会自动调用系统内核。
3、Https的支持
X5内核本身可以支持Https,不过会有提示。但是在没有初始化x5内核之前要使系统内核,但是系统内核默认是不支持https的,需要设置系统内核支持Https
webView.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
//设置接收所有证书
handler.proceed();
//启用mixed content
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
}
});