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);
            }
        }
    });
    
上一篇下一篇

猜你喜欢

热点阅读