如何在ArkTS调用从C++传递过来的function HarmonyOS 鸿蒙Next

如何在ArkTS调用从C++传递过来的function HarmonyOS 鸿蒙Next 在 Native 侧通过 napi_call_function 调用 ArkTS 侧提供的函数。这里传递一个 C++ 侧的回调函数到 ArkTS。让 ArkTS 侧的这个函数执行完成以后,调用这个回调函数通知到 C++。这里的函数应该如何传递并且怎么调用

2 回复

楼主,看下这个ArcTS层往C++层注册一个object或function的FAQ及demo示例,看看是否有帮助

更多关于如何在ArkTS调用从C++传递过来的function HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next系统中,ArkTS可以通过NAPI(Native API)调用从C++传递过来的函数。首先,需要在C++中定义一个函数,并使用NAPI将其暴露给ArkTS。以下是一个简单的示例:

C++部分:

在C++中定义一个函数,并使用NAPI将其暴露给ArkTS。

#include <napi/napi.h>

Napi::Value MyFunction(const Napi::CallbackInfo& info) {
    Napi::Env env = info.Env();
    // 函数逻辑
    return Napi::String::New(env, "Hello from C++");
}

Napi::Object Init(Napi::Env env, Napi::Object exports) {
    exports.Set("myFunction", Napi::Function::New(env, MyFunction));
    return exports;
}

NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)

ArkTS部分:

在ArkTS中调用从C++传递过来的函数。

import native from 'libnative.so';

let result = native.myFunction();
console.log(result); // 输出: Hello from C++
回到顶部