中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
微信扫码分享
static napi_value LoadModule(napi_env env, napi_callback_info info) { size_t argc = 2; napi_value args[2] = {nullptr}; napi_status params = napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); napi_value path_c = args[1]; napi_value name_c = args[0]; char name[500] = {0}; char path[500] = {0}; size_t len1 = 0; size_t len2 = 0; napi_get_value_string_utf8(env, name_c, name, 500, &len1); napi_get_value_string_utf8(env, path_c, path, 500, &len2); //OH_LOG_ERROR(LOG_APP, "chenlin LoadModule %{public}s", name); napi_value result; // napi_status status = napi_load_module(env , "ets/pages/Test", &result); napi_status status = napi_load_module_with_info(env, name, path, &result); napi_value nameFun = nullptr; status = napi_get_named_property(env, result, "circleTest", &nameFun); napi_value outputObject; status = napi_call_function(env, nullptr, nameFun, 0, nullptr, &outputObject); OH_LOG_ERROR(LOG_APP, "chenlin LoadModule status %{public}d", status); // if (status != napi_ok) { // return nullptr; // } return result; } export function circleTest(a: string) { a = "com.example.loadmoduleinfodemo/entry" let libHar:ESObject = napi.napiLoadModule("libraryHar",a); console.log(libHar.b); libHar.circleTest(); } build-profile.json5 "buildOption": { "arkOptions": { "runtimeOnly": { "sources": [ // 用于动态import的单文件场景,静态import和常量表达式动态import不需要配置 ], "packages": [ 'libraryHar', 'liblibrary.so']//har2,har1的so }}, "externalNativeOptions": { "path": "./src/main/cpp/CMakeLists.txt", "arguments": "", "cppFlags": "", //"abiFilters": ["armeabi-v7a"] } }, har2 index.ets export { b, c,libHarTest, circleTest } from "./src/main/ets/Test" export function circleTest() { console.log("napi_load_module_with_info static product har function test circle"); } export let b = "napi_load_module_with_info static product har variable test circle";