Android WebView打开网址黑屏

发布于:2024-05-08 ⋅ 阅读:(29) ⋅ 点赞:(0)

1.先说解决方案:

        // 允许执行JavaScript
        binding.webView.getSettings().setJavaScriptEnabled(true);
        // 启用硬件加速
        binding.webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
        // 允许混合内容。即使是通过HTTPS加载的页面也可以显示通过HTTP加载的资源。
        binding.webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        // 启用DOM存储API支持
        binding.webView.getSettings().setDomStorageEnabled(true);
        // 启用数据库存储API支持
        binding.webView.getSettings().setDatabaseEnabled(true);
        // 设置Web视口的宽度适应屏幕
        binding.webView.getSettings().setUseWideViewPort(true);
        // 是否允许WebView度超出以概览的方式载入页面
        binding.webView.getSettings().setLoadWithOverviewMode(true);

2.问题排查过程:

        加载网页时,WebView控件一直是默认的黑色,于是从以下方面进行排查

        1.是否因为网页无法运行JavaScript无法打开?webView.getSettings().setJavaScriptEnabled(true);依旧无法打开。

        2.是否因为网络环境等报错?setWebViewClient设置了日志监听,但onReceivedError、shouldOverrideUrlLoading、onReceivedSslError都没有触发。

        3.是否因为自己代码的原因,错误的使用了WebView,导致无法加载任何网址?将https://mp.csdn.net/可以正常加载(代码没有问题)

        4.是否因为需要加载的网址本身就无法打开?将url复制到(手机、电脑)浏览器,都可以正常打开(网址也没有问题)

        5.是否这个网址较为特殊,需要webView做兼容的?webView.getSettings().setDomStorageEnabled(true);设置后可以正常打开


网站公告

今日签到

点亮在社区的每一天
去签到