HarmonyOS开发实战:ArkTS接口绑定

场景介绍

通过napi_wrap将ArkTS对象与Native的C++对象绑定,后续操作时再通过napi_unwrap将ArkTS对象绑定的C++对象取出,并对其进行操作。

使用示例

  1. 接口声明、编译配置以及模块注册

    接口声明

    // index.d.ts
    export class MyObject {
       constructor(arg: number);
       plusOne: () => number;
    
       public get value();
       public set value(newVal: number);
    }

    编译配置

    // CMakeLists.txt
    # the minimum version of CMake.
    cmake_minimum_required(VERSION 3.4.1)
    project(object_wrap)
    
    set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})
    
    include_directories(${NATIVERENDER_ROOT_PATH}
                        ${NATIVERENDER_ROOT_PATH}/include)
    
    add_definitions("-DLOG_DOMAIN=0x0000")
    add_definitions("-DLOG_TAG=\"testTag\"")
    
    add_library(object_wrap SHARED object_wrap.cpp)
    target_link_libraries(object_wrap PUBLIC libace_napi.z.so libhilog_ndk.z.so)

    模块注册

    // object_wrap.cpp
    class MyObject {
     public:
      static napi_value Init(napi_env env, napi_value exports);
      static void Destructor(napi_env env, void* nativeObject, void* finalize_hint);
    
     private:
      explicit MyObject(double value_ = 0);
      ~MyObject();
    
      static napi_value New(napi_env env, napi_callback_info info);
      static napi_value GetValue(napi_env env, napi_callback_info info);
      static napi_value SetValue(napi_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值