napi多函数导出写法?

napi多函数导出写法

阅读 266
1 个回答

可以通过头文件引入不同的.h文件,参考如下示例:

#include <hilog/log.h> 
#include "manager/plugin_manager.h" 
#include "common/common.h" 
EXTERN_C_START 
static napi_value Init(napi_env env, napi_value exports) 
{ 
    OH_LOG_Print(LOG_APP, LOG_INFO, LOG_PRINT_DOMAIN, "Init", "Init begins"); 
    if ((nullptr == env) || (nullptr == exports)) { 
        OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "Init", "env or exports is null"); 
        return nullptr; 
    } 
    napi_property_descriptor desc[] = { 
        { "getContext", nullptr, PluginManager::GetContext, nullptr, nullptr, nullptr, napi_default, nullptr } 
    }; 
    if (napi_ok != napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc)) { 
        OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "Init", "napi_define_properties failed"); 
        return nullptr; 
    } 
    PluginManager::GetInstance()->Export(env, exports); 
    return exports; 
} 
EXTERN_C_END 
static napi_module nativerenderModule = { 
    .nm_version = 1, 
    .nm_flags = 0, 
    .nm_filename = nullptr, 
    .nm_register_func = Init, 
    .nm_modname = "nativerender", 
    .nm_priv = ((void *)0), 
    .reserved = { 0 } 
}; 
extern "C" __attribute__((constructor)) void RegisterModule(void) 
{ 
    napi_module_register(&nativerenderModule); 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进