鸿蒙NEXT开发【ts回调接口实现分布】

1.ts接口申明

index.d.ts

export const startDownload: (cbFn: (progress: number) => void) => void;

2. C/C++ 代码

typedef struct CallbackContext {
    napi_env env = nullptr;
    napi_ref callbackRef = nullptr;
    int progress = 0;
} CallbackContext;

// Call back the ts side function to notify the progress information to the ts side.
static void callTS(napi_env env, napi_value jsCb, void *context, void *data) {
    CallbackContext *arg = (CallbackContext *)data;
    napi_value progress;
    //使用CallbackContext中的数据,构造progress
    napi_create_int32(arg->env, arg->progress, &progress);
    //调用jsCb,参数为progress,1位参数个数
    napi_call_function(arg->env, nullptr, jsCb, 1, &progress, nullptr);
}

// Simulate a download task. Because the ts side function is called here, a thread-safe function must be used.
void downloadTask(CallbackContext *context) {
    if (context) {
        n
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值