WebView ne peut pas charger la page Web, elle est vide

Quand j'ai chargé la page Web sur le projet aujourd'hui, j'ai trouvé qu'une ne pouvait pas être chargée, emmm, j'ai regardé les projets précédents, et j'ai trouvé qu'il y avait plus d'une omission, donc je vais faire un résumé ici.

1. Configuration des autorisations : assurez-vous d'ajouter les autorisations réseau dans le fichier AndroidManifest.xml :

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

2. Paramètres WebView : Vérifiez les paramètres pertinents de WebView pour vous assurer que JavaScript est activé et que vous avez la possibilité de charger du contenu distant :

webView.settings.javaScriptEnabled = true
webView.settings.loadsImagesAutomatically = true
Certains projets peuvent être chargés sans l'ajouter auparavant, mais vous pouvez l'ajouter

3. Écoutez les erreurs : créez un WebViewClient et définissez-le sur WebView pour gérer le chargement de la page et les erreurs :

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

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

4. Vérifiez la connexion réseau : assurez-vous que l'appareil est normalement connecté à Internet et qu'il peut accéder à la page Web chargée.

   Vérifier les liens Web : assurez-vous que les liens Web chargés sont corrects et qu'il n'y a pas de redirections ou de restrictions d'accès.

mon code:


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

Je suppose que tu aimes

Origine blog.csdn.net/LoveFHM/article/details/131558461
conseillé
Classement