WebView no puede cargar la página web, está en blanco

Cuando cargué la página web en el proyecto de hoy, encontré que uno no se podía cargar, emmm, miré los proyectos anteriores y encontré que había más de una omisión, así que haré un resumen aquí.

1. Configuración de permisos: asegúrese de agregar permisos de red en el archivo AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />

2. Configuración de WebView: verifique la configuración relevante de WebView para asegurarse de que JavaScript esté habilitado y la capacidad de cargar contenido remoto:

webView.settings.javaScriptEnabled = true
webView.settings.loadsImagesAutomatically = true
Algunos proyectos se pueden cargar sin agregar esto antes, pero está bien agregarlo

3. Escuche los errores: cree un WebViewClient y configúrelo en WebView para manejar la carga de la página y los errores:

webView.webViewClient = object : WebViewClient() {
    override fun onPageFinished(view: WebView?, url: String?) {
        // 页面加载完成后的处理
    }

    override fun onReceivedError(
        view: WebView?,
        errorCode: Int,
        description: String?,
        failingUrl: String?
    ) {
        // 页面加载错误的处理
    }
}
 
 

4. Verifique la conexión de red: asegúrese de que el dispositivo esté conectado a Internet normalmente y pueda acceder a la página web cargada.

   Verifique los enlaces web: asegúrese de que los enlaces web cargados sean correctos y que no haya redireccionamientos o restricciones de acceso.

mi código:


class PrivacyActivity : AppCompatActivity() {

    private lateinit var webView: WebView
    private lateinit var close: AppCompatImageView

    @SuppressLint("SetJavaScriptEnabled")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.layout_privacy)

        ImmersionBar.with(this).fullScreen(false).navigationBarColor(R.color.transparent)
            .statusBarColor(R.color.transparent).init()

        webView = findViewById(R.id.icon_webview)
        close = findViewById(R.id.icon_back)

        webView.canGoBack()
        webView.settings.javaScriptEnabled = true
        webView.settings.loadsImagesAutomatically = true

        webView.webViewClient = object : WebViewClient() {
            override fun shouldOverrideUrlLoading(
                view: WebView?, request: WebResourceRequest?
            ): Boolean {
                view?.loadUrl("https://blog.csdn.net/LoveFHM?type=blog")
                return true
            }
        }
        webView.loadUrl("https://blog.csdn.net/LoveFHM?type=blog")

        close.setOnClickListener { finish() }

    }

    override fun onDestroy() {
        webView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null)
        webView.clearHistory()
        (webView.parent as ViewGroup).removeView(webView)
        webView.destroy()
        super.onDestroy()
    }

    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
        if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
            webView.goBack()
            return true
        }
        return super.onKeyDown(keyCode, event);
    }
}

Supongo que te gusta

Origin blog.csdn.net/LoveFHM/article/details/131558461
Recomendado
Clasificación