您需要先 登录 才能评论/回答

全部评论(1)
核心代码解释
napi_load_module_with_info(napi_env env, const char* path, const char* module_info, napi_value* result);
napi_load_module_with_info参数说明:
参数 |
说明 |
env |
当前的虚拟机环境 |
path |
加载的文件路径或者模块名 |
module_info |
bundleName/moduleName的路径拼接 |
result |
加载的模块 |
- bundleName表示AppScope/app.json5中配置的工程名。
- moduleName指的是待加载模块所在的HAP下module.json5中配置的名字。
- napi_load_module只局限于在主线程中进行模块加载。
entry模块。
static napi_value loadModule(napi_env env, napi_callback_info info) {
napi_value result;
// 1. 使用napi_load_module_with_info加载har模块
napi_status status = napi_load_module_with_info(env, "myhar", "com.example.load_har/entry", &result)
napi_value testFn;
// 2. 使用napi_get_named_property获取test函数
napi_get_named_property(env, result, "test", &testFn);
napi_value inputargs[2];
int32_t a=3,b=1;
napi_create_int32(env, a, &inputargs[0]);
napi_create_int32(env, b, &inputargs[1]);
// 3. 使用napi_call_function调用函数test
napi_value output;
napi_call_function(env, result, testFn, 2, inputargs, &output);
return output;
}
har模块的Index.ets。
export function test(a:number,b:number){
let c = a-b
console.log("%d - %d = %d",a,b,c)
}
效果:

2024-06-14 10:50:43