HarmonyOS har 模块不能读取 rawfile 下的资源

有三个模块分别是 har_lib, hsp_lib, entry;

每个模块下都有 rawfile, 其中:

har_lib: rawfile/har/xxx.json

hsp_lib: rawfile/hsp/xxx.json

entry: rawfile/entry/xxx.json

模块代码:

  1. har_lib 模块:
import { Context } from '@kit.AbilityKit'

export const har_lib = (context: Context): void => {
  const resourceManager = context.resourceManager
  const list = resourceManager.getRawFileListSync('')
  console.warn('har_lib list: ', JSON.stringify(list))
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  1. hsp_lib 模块:
export * from 'har_lib'
  • 1.
  1. entry 模块:
import {har_lib} from 'har_lib' 或者 import {har_lib} from 'hsp_lib'
har_lib(this.context)
  • 1.
  • 2.

场景1: 如果entry 仅仅引入 har_lib, 且执行 har_lib();

输出:har_lib list: ["entry","har"]

场景2:如果 entry 仅仅引入 hsp_lib, hsp_lib 引入 har_lib, 在 entry 中执行 har_lib();

输出: har_lib list: ["entry"]

目前项目是按照场景2构建的,导致在 har_lib 中不能读取 rawfile。请问有什么好的解决方案。

HarmonyOS
2024-12-23 14:16:44
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
put_get

出现该问题原因是由于entry是直接访问不到hsp中har的资源的,需要createModuleContext才行

请参考如下实现方案:

先创建hsp的上下文,再用getRawFileContent获取内容:

getContext().createModuleContext(‘library’).resourceManager.getRawFileContent((‘bundle.harmony.js’));
  • 1.

获取hsp的上下文,请尝试这个:

Context.createModuleContext,

参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-context-stage-V5#获取本应用中其他module的context

moduleName获取请参考:

1、获取har所在hsp或者hap模块的模块名:解决方案:让hap或者hsp自己传参给har。

2、 若在entry引入har,无需moduleName,直接getContext().resourceManager,

若在hsp引入,需模块名 需getContext().createModuleContext(moduleName).resourceManager

注意:createModuleContext仅支持获取本应用中其他Module的Context和应用内HSP的Context,不支持获取其他应用的Context。

分享
微博
QQ
微信
回复
2024-12-23 16:44:35
相关问题
HAR能读到另一个HARrawfile文件吗
2577浏览 • 1回复 待解决
hsp模块rawfile文件读取问题
1054浏览 • 1回复 待解决
无法读取到hsp模块rawfile文件
2845浏览 • 1回复 待解决
appscope里定义资源Har不能引用
844浏览 • 1回复 待解决
HarmonyOS Rawfilejson文件读取
975浏览 • 1回复 待解决
HarmonyOS 读取本地RawFile文件失败
1237浏览 • 1回复 待解决
Preview是否支持读取rawfile文件
3464浏览 • 1回复 待解决
HarmonyOS RawFile文件拷贝
683浏览 • 1回复 待解决
pthread创建线程中如何读取rawfile
2720浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人