HarmonyOS鸿蒙Next中resourceManager.getMediaContent()获取资源出错

HarmonyOS鸿蒙Next中resourceManager.getMediaContent()获取资源出错

实际情况是这样的: 我做微信分享功能,分享的消息中有链接和图片,但是图片得通过接口拿的,是网络图片,没有网络图片时使用本地默认图片

当我代码中只有本地图片的时候会成功 cke_3812.png

当我要传递网络图片时,那么就会失败 cke_16554.png


更多关于HarmonyOS鸿蒙Next中resourceManager.getMediaContent()获取资源出错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

11 回复

微信分享里面的缩略图是uint8Array这种格式的吧,你直接给个网络地址肯定不行吧,你可以下载下来再获取图片信息转为uint8Array这这种格式直接赋值给 mediaMessage.thumbData 。其实这一串代码实际也就是把这个图片转为uint8Array

cke_3552.png

更多关于HarmonyOS鸿蒙Next中resourceManager.getMediaContent()获取资源出错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


如何对网络地址的图片进行操作呢?


  1. 去掉复制和深色代码主题
  2. 不显示“基本信息”
  3. HTML代码中的图片转换成Markdown格式
  4. 没有图片则不添加图片
  5. img标签的地址为空时不输出
  6. 不需要解释或建议
  7. 只输出转换后的Markdown文档
  8. 内容中没有图片或图片为空时不加图片
  9. 不使用示例图片地址
后来怎么解决的 请教一下,

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

我用的const resImg = rpc.creatSession().get(this.shareParams.img)先把图片下载了下来 再做为参数传递到getMediaContent()函数就可以了,

resourceManager.getMediaContent只能获取资源文件中的Uint8Array,不知道你shareParams.image传入了什么

标题

这是第一段文本。

这是第二段文本。

你需要通过网络请求先拿到图片的流数据,然后创建pixelmap,

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-resource-manager-V13#getmediacontent9

当前接口只支持本地资源,需要先下载网图存在本地,然后再读取图片信息

在HarmonyOS Next中,resourceManager.getMediaContent()出错可能由以下原因导致:

  1. 资源文件未正确放置在resources/base/media目录下
  2. 资源文件命名不符合规范(仅支持字母、数字和下划线)
  3. 资源文件未在resources/base/profile/resource_table.json中注册
  4. 调用时使用的资源ID与实际不匹配

检查步骤:

  1. 确认资源路径正确
  2. 验证resource_table.json中的资源声明
  3. 检查调用时使用的Resource对象是否初始化成功

在HarmonyOS Next中使用resourceManager.getMediaContent()获取网络图片资源时出现失败是正常现象,因为这个API设计上仅用于访问应用包内的本地资源。

对于网络图片的处理建议:

  1. 需要先使用网络下载API(如@ohos.net.http)将图片下载到本地临时目录
  2. 然后通过文件路径方式使用该图片
  3. 或者使用image组件直接加载网络图片URL

关键点:

  • getMediaContent()仅支持resouce/rawfile目录下的资源
  • 网络资源需要先下载再使用
  • 微信分享功能需要确保图片已本地化

可以检查网络权限是否已配置,以及下载过程是否正常完成。

回到顶部