HarmonyOS资源引用问题

life模块(har)依赖 common模块(hsp),但life模块使用不了common模块中的color.json中的颜色资源,在life中使用fontColor($r('app.color.white'))报错,white是common中定义的,life/op-package.json5中的依赖。

"dependencies": {     "@ohos/common": "file:../../commons/common"}
HarmonyOS
2024-08-14 15:46:27
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

跨hsp 访问资源 ,需要先获取该 hsp的上下文, 通过资源管理 提供的getColorSync 可实现跨hsp资源引用。

参考资源管理https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-resource-manager-V5#getcolorsync10

例如:

getContext().createModuleContext('common').resourceManager.getColorSync($r('app.color.grey_e'))

如果您这边只有har包引入hsp依赖的话( “common”: “file:…/common”),可以使用如下方法:

1、在 common模块(hsp)中index页面导出。

export function colorFnc()  {     return $r('app.color.helloColor')   }

2、在life模块(har)中引入

import { colorFnc } from 'common'

使用 .fontColor(colorFnc()),但这种方案不太建议,原因分析如下:har包支持引用har包,har包不支持引用hsp包。harA 引用harB,harB代码会自动打到HarA包里面去 hap引用HarA,即使用户不知道存在harB, 可以直接依赖harA,直接使用。但是harA 依赖hsp的话 就只会把 接口定义的代码编译进去,如果别的应用引用harA在不知道其他依赖的情况下会找不到hsp的。

分享
微博
QQ
微信
回复
2024-08-14 21:04:01
相关问题
HarmonyOS 本地资源如何引用
62浏览 • 1回复 待解决
java如何引用resources资源获得value?
4424浏览 • 1回复 待解决
Hsp间的间接引用导致资源报错
1778浏览 • 1回复 待解决
HarmonyOS har包引用so问题
360浏览 • 1回复 待解决
HarmonyOS 调用内部资源问题
262浏览 • 1回复 待解决
HarmonyOS 文件上传 & 资源读取问题
305浏览 • 1回复 待解决
字符串资源引用出错,该怎么办啊?
641浏览 • 1回复 待解决
flutter_sound 插件引用问题
201浏览 • 1回复 待解决
如何排查循环引用问题
311浏览 • 1回复 待解决
HarmonyOS 引用自定义web的模块问题
317浏览 • 1回复 待解决
HarmonyOS 三方库和本地module引用问题
251浏览 • 1回复 待解决
har 包引用报错的问题
111浏览 • 1回复 待解决
静态工程引用har问题有哪些?
270浏览 • 1回复 待解决