美文网首页
x5浏览器内核加载问题

x5浏览器内核加载问题

作者: SuperTypeMen | 来源:发表于2019-08-09 09:50 被阅读0次

    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);
                }
            }
        });
        
    

    相关文章

      网友评论

          本文标题:x5浏览器内核加载问题

          本文链接:https://www.haomeiwen.com/subject/ehkcjctx.html