HarmonyOS鸿蒙Next中webview如何加载https和http混合页面

发布于 1周前 作者 itying888 来自 鸿蒙OS

HarmonyOS鸿蒙Next中webview如何加载https和http混合页面 我们的应用有https和http混合页面,webview无法正常加载显示,有大佬知道该怎么处理吗?

3 回复

给Web加个mixedMode(MixedMode.All)属性试下,该选项用于控制是否允许加载HTTP和HTTPS混合内容。https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-web-V5#mixedmode

更多关于HarmonyOS鸿蒙Next中webview如何加载https和http混合页面的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙Next)中,WebView组件默认支持加载httpshttp混合页面。你可以通过以下步骤确保WebView能够正确加载混合内容:

  1. 启用混合内容加载:
    WebView的设置中,可以通过setMixedContentMode方法配置混合内容的加载模式。鸿蒙提供了WebView.MixedContentMode枚举,允许你选择是否允许加载非安全的http内容。

    webView.setMixedContentMode(WebView.MixedContentMode.ALWAYS_ALLOW);

    其中,MixedContentMode.ALWAYS_ALLOW表示允许加载所有混合内容,包括非安全的http资源。

  2. 配置网络安全策略:
    如果你的应用需要加载http内容,确保在应用的网络安全配置中允许http请求。可以在config.json文件中配置cleartextTrafficPermittedtrue,以允许明文传输。

    {
      "deviceConfig": {
        "default": {
          "network": {
            "cleartextTrafficPermitted": true
          }
        }
      }
    }
  3. 处理SSL证书错误:
    如果页面中存在自签名或不受信任的SSL证书,WebView默认会阻止加载。你可以通过覆盖WebViewClientonReceivedSslError方法来处理SSL错误,选择继续加载页面。

    webView.setWebViewClient({
      onReceivedSslError: (view, handler, error) => {
        handler.proceed(); // 继续加载页面
      }
    });

通过以上配置,WebView可以正常加载httpshttp混合页面。

在HarmonyOS鸿蒙Next中,WebView默认支持加载HTTPS和HTTP混合页面。如果遇到混合内容加载问题,可以通过以下步骤进行配置:

  1. 设置WebView属性:确保WebView的setMixedContentMode方法设置为WebSettings.MIXED_CONTENT_ALWAYS_ALLOW,以允许加载混合内容。

  2. 配置网络安全配置:在res/xml/network_security_config.xml中,添加<domain-config cleartextTrafficPermitted="true">,允许HTTP流量。

  3. 处理证书验证:如果HTTPS页面使用自签名证书,需自定义WebViewClientonReceivedSslError方法,处理SSL错误。

通过这些配置,WebView可以正常加载HTTPS和HTTP混合页面。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!