HarmonyOS 使用aki框架实现C++调用JS

安装aki :打开DevEco Studio,命令行工具进入entry目录,执行ohpm install @ohos/aki,确保AKI依赖集成到项目中

CMake配置 :在CMakeLists.txt中添加aki路径和链接库:

bash 复制代码
set(AKI_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../oh_modules/@ohos/aki)
set(CMAKE_MODULE_PATH ${AKI_ROOT_PATH})
find_package(Aki REQUIRED)

target_link_libraries(entry PUBLIC Aki::libjsbind)

模块声明:module.json5中声明Native模块,确保.so文件名与oh-package.json5中的依赖项匹配(如libentry.so

JS中绑定函数:

javascript 复制代码
import entry from "libentry.so";
export class NapiHelper {
    
    //项目启动时,JS侧调用该方法实现注册绑定
    static registerFunctions() {
        entry.JSBind.bindFunction("NapiHelper.cppCallJs", NapiHelper.cppCallJs);
    }

    static cppCallJs() : void {
        console.info('-----c++------call');
    }

};

C++中调用

cpp 复制代码
#include "aki/jsbind.h"

void testFunc()
{
    try {
	    if (auto jsfunc= aki::JSBind::GetJSFunction("NapiHelper.cppCallJs")) {
		    jsfunc->Invoke<void>();
	    }
    }
    catch (std::exception& e) {
		
    }
}