HarmonyOS鸿蒙Next中Image组件加载http链接的图片无法显示

HarmonyOS鸿蒙Next中Image组件加载http链接的图片无法显示 在使用Image组件加载http链接的图片时无法显示,https的图片可以正常显示 该如何适配呢, 网页上打开时是正常的

7 回复

你好,麻烦提供下示例代码和图片Url地址

更多关于HarmonyOS鸿蒙Next中Image组件加载http链接的图片无法显示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


cke_378.png

我这边代码复制你的是可以显示的o

Image('http://www.178linux.com/wp-content/uploads/2017/09/222.png')
  .width(120)

我能成功访问的。

使用网络图片时,需要申请权限ohos.permission.INTERNET

你申请权限了没?

肯定申请了 我https的链接是正常加载的,

在HarmonyOS Next中,Image组件默认禁止加载http链接图片,这是安全策略要求。需使用https链接或在config.json中配置"cleartextTraffic"允许明文传输。若必须使用http,可在元数据中添加android:usesCleartextTraffic="true"。网络权限需在config.json中声明"ohos.permission.INTERNET"。图片加载失败时建议检查URL可达性。

在HarmonyOS Next中,由于安全策略限制,默认不允许加载非加密的HTTP资源。要解决Image组件无法显示HTTP图片的问题,可以通过以下两种方式适配:

  1. 修改应用配置: 在config.json文件中添加网络权限并允许明文传输:
{
  "deviceConfig": {
    "default": {
      "network": {
        "cleartextTrafficPermitted": true
      }
    }
  }
}
  1. 使用代理服务器中转: 将HTTP图片通过HTTPS代理服务进行中转加载,这是更安全的做法:
// 示例代码
Image($r('app.media.placeholder'))
  .onClick(() => {
    this.imageSrc = 'https://your-proxy.com/convert?url=' + encodeURIComponent('http://example.com/image.jpg')
  })

注意:从HarmonyOS Next开始,华为更推荐开发者使用HTTPS资源,这是未来的发展趋势。如果可能,建议将图片资源迁移到HTTPS服务上。

回到顶部