HarmonyOS鸿蒙Next中Image组件加载http链接的图片无法显示
HarmonyOS鸿蒙Next中Image组件加载http链接的图片无法显示 在使用Image组件加载http链接的图片时无法显示,https的图片可以正常显示 该如何适配呢, 网页上打开时是正常的
你好,麻烦提供下示例代码和图片Url地址
更多关于HarmonyOS鸿蒙Next中Image组件加载http链接的图片无法显示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我这边代码复制你的是可以显示的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图片的问题,可以通过以下两种方式适配:
- 修改应用配置: 在config.json文件中添加网络权限并允许明文传输:
{
"deviceConfig": {
"default": {
"network": {
"cleartextTrafficPermitted": true
}
}
}
}
- 使用代理服务器中转: 将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服务上。