Android. webview基本配置以及SSLerror錯誤過濾

@SuppressLint("SetJavaScriptEnabled")
    fun setWebSettings(context: Context?, mWebView: WebView) {
        val webSettings = mWebView.settings
        //        webSettings.setTextSize(WebSettings.TextSize.NORMAL);
        // 設置支持JavaScript
        webSettings.javaScriptEnabled = true
        webSettings.loadWithOverviewMode = true
        webSettings.defaultTextEncodingName = "utf-8"
        webSettings.layoutAlgorithm = WebSettings.LayoutAlgorithm.SINGLE_COLUMN
        webSettings.useWideViewPort = true
        //        webSettings.setSupportZoom(true);
        webSettings.domStorageEnabled = true //打開DOM存儲
        webSettings.javaScriptCanOpenWindowsAutomatically = true
        webSettings.pluginState = WebSettings.PluginState.ON
        webSettings.allowFileAccess = true
        webSettings.builtInZoomControls = true
        webSettings.setSupportZoom(false) // 設置不能支持縮放
        webSettings.setAppCacheEnabled(true) // 開啓H5(APPCache)緩存功能
        //        webSettings.setBlockNetworkImage(true);        //不加載圖片
        webSettings.databaseEnabled = true // 應用可以有數據庫
        val ua = webSettings.userAgentString
//        webSettings.userAgentString = "$ua JINRAN/Android"
        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
            webSettings.safeBrowsingEnabled = false
        }
        // 使用了https頭,而h5頁面中使用了http頭,解決的問題
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            webSettings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
        }
        webSettings.cacheMode = WebSettings.LOAD_NO_CACHE // 根據cache-control決定是否從網絡上取數據
        //提高渲染優先級
        webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH)
        val myWebViewClient = MyWebViewClient()
        mWebView.webViewClient = myWebViewClient
        mWebView.webChromeClient = WebChromeClient()
    }

}

// 過濾ssl錯誤
private class MyWebViewClient : WebViewClient() {
    override fun onReceivedSslError(view: WebView?, handler: SslErrorHandler?, error: SslError?) {
        handler!!.proceed()
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章