HarmonyOS 鸿蒙Next 使用Image组件加载网络图片地址,图片下载失败

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

HarmonyOS 鸿蒙Next 使用Image组件加载网络图片地址,图片下载失败

代码:
Image(this.verifyImgUrl)
.layoutWeight(1)
.height(50) 

3 回复

先把图片下载下来,然后到沙箱路径下读取。

try {

request.downloadFile(context, {

url: 'http://www.haodf.com/captcha.php?type=Login&width=110&height=40&size=20&token=U2VULQdiXGpXZAVnUT0NYVA0AGRRdQAxWzdWNVQ0AGdTZ1QzAGVXYwA2VGpUZg81V2oKMFRhCT4OZwBlUzUEY1NlVDYHY1xqV2QFYw',

filePath: cacheDir + '/s.jpg'

}).then((downloadTask: request.DownloadTask) => {

downloadTask.on('complete', () => {

console.info('download complete');

let file = fs.openSync(cacheDir + '/s.jpg', fs.OpenMode.READ_WRITE);

let arrayBuffer = new ArrayBuffer(1024);

let readLen = fs.readSync(file.fd, arrayBuffer);

let buf = buffer.from(arrayBuffer, 0, readLen);

console.info(`The content of file: ${buf.toString()}`);

fs.closeSync(file);

this.uri = "file://"+context.cacheDir + "/s.jpg"

})

}).catch((err: BusinessError) => {

console.error(`Invoke downloadTask failed, code is ${err.code}, message is ${err.message}`);

});

} catch (error) {

let err: BusinessError = error as BusinessError;

console.error(`Invoke downloadFile failed, code is ${err.code}, message is ${err.message}`);

}

}

更多关于HarmonyOS 鸿蒙Next 使用Image组件加载网络图片地址,图片下载失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


检查一下网络地址是不是有编码问题

在HarmonyOS鸿蒙Next中,使用Image组件加载网络图片地址时,如果图片下载失败,可能是由以下几个原因导致的:

  1. 网络权限未配置:确保在config.json文件中已正确配置网络权限,如ohos.permission.INTERNET

  2. URL格式错误:检查提供的图片URL是否正确,包括协议(http/https)、域名、路径及文件名等。

  3. 图片资源不存在:确认目标服务器上的图片资源确实存在且未被删除或移动。

  4. 网络问题:检查设备是否已连接到互联网,且网络状态良好。

  5. 跨域问题:如果图片服务器设置了CORS(跨源资源共享)策略,确保允许来自你的应用的请求。

  6. 组件使用错误:确认Image组件的使用方式正确,包括正确的属性设置和事件绑定。

  7. 缓存问题:尝试清除应用缓存或重启设备,看是否是缓存导致的问题。

  8. 版本兼容性问题:检查HarmonyOS版本与Image组件的兼容性,确保使用的组件版本支持当前系统。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部