HarmonyOS bundleManager.getBundleInfoForSelfSync获取的label和icon无效

通过bundleManager.getBundleInfoForSelfSync获取应用的名称和图标进行显示,但没作用。

Image($r(bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)
  .appInfo
  .icon))
Text($r(bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)
  .appInfo
  .label))

也尝试过appInfo.iconResource和appInfo.labelResource也是无效,文字没有显示,图片显示空白。

HarmonyOS
4天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

1、想要获取appInfo参数,请在模拟器或真机运行。

2、appInfo.label和appInfo.icon获取到的结果为"$media:app_icon", "$string:app_name",不符合resource资源格式,故不能使用$r。

3、想要获取资源内容并显示,请获取iconResource和labelResource的资源id,根据资源id获取资源内容。

4、图片资源的思路为:根据data.appInfo.iconResource.id,调用getMediaContent接口获取到Uint8Array对象,转换为ArrayBuffer类型后,创建imageResource,再创建pixelMap类型的对象,使用image组件即可显示。

5、文本资源思路为:根据data.appInfo.labelResource.id,调用getStringValue接口获取到string内容,直接保存显示即可。

参考文档:

1、image kit——开发示例-对资源文件中的图片进行解码:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/image-decoding-V5#%E5%BC%80%E5%8F%91%E7%A4%BA%E4%BE%8B-%E5%AF%B9%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E5%9B%BE%E7%89%87%E8%BF%9B%E8%A1%8C%E8%A7%A3%E7%A0%81

2、@ohos.resourceManager (资源管理) —— getMediaContent、getStringValue等接口说明及示例:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-resource-manager-V5#getstringvalue9

分享
微博
QQ
微信
回复
3天前
相关问题
HarmonyOS 设置了iconlabel不生效
367浏览 • 1回复 待解决
HarmonyOS 替换名称logo无效
6浏览 • 0回复 待解决
HarmonyOS 获取剪切板getData无效
0浏览 • 0回复 待解决
HarmonyOS animateToduration无效
48浏览 • 1回复 待解决
如何修改应用icon图标
2174浏览 • 1回复 待解决
HarmonyOS icon图标库
46浏览 • 1回复 待解决
HarmonyOS 如何改变图标icon颜色
59浏览 • 1回复 待解决
eTS求助 tabBarIcon代码样例 ?
5861浏览 • 1回复 待解决