如何在C层获取一个hashmap或者自定义对象数据?

如何在C层获取一个hashmap或者自定义对象数据

阅读 189
1 个回答

可参考如下示例:

static napi_value TransObect(napi_env env, napi_callback_info info) { 
    napi_status status; 
    size_t argc = 1; 
    napi_value js_cb; 
    status = napi_get_cb_info(env, info, &argc, &js_cb, nullptr, nullptr); 
    assert(status == napi_ok); 
    napi_value onCallBack1, str_arg; 
    status = napi_get_named_property(env, js_cb, "onCallBack1", &onCallBack1); 
    assert(status == napi_ok); 
    status = napi_create_string_utf8(env, "mangguo", strlen("mangguo"), &str_arg); 
    assert(status == napi_ok); 
    size_t cb1argc = 1; 
    status = napi_call_function(env, js_cb, onCallBack1, cb1argc, &str_arg, nullptr); 
    size_t cb2argc = 1; 
    napi_value onCallBack2, int_arg; 
    status = napi_get_named_property(env, js_cb, "onCallBack2", &onCallBack2); 
    status = napi_create_int32(env, 2, &int_arg); 
    assert(status == napi_ok); 
    status = napi_call_function(env, js_cb, onCallBack2, cb2argc, &int_arg, nullptr); 
    assert(status == napi_ok); 
    napi_value oncallback3, arg_object; 
    status = napi_get_named_property(env, js_cb, "onCallBack3", &oncallback3); 
    assert(status == napi_ok); 
    status = napi_create_object(env, &arg_object); 
    assert(status == napi_ok); 
    napi_value testNum, testString, cb3argc; 
    status = napi_create_int32(env, 123, &testNum); 
    assert(status == napi_ok); 
    status = napi_set_named_property(env, arg_object, "testNum", testNum); 
    assert(status == napi_ok); 
    status = napi_create_string_utf8(env, "mangguo", strlen("mangguo"), &testString); 
    assert(status == napi_ok); 
    status = napi_set_named_property(env, arg_object, "testString", testString); 
    assert(status == napi_ok); 
    status = napi_call_function(env, js_cb, oncallback3, cb2argc, &arg_object, nullptr); 
    assert(status == napi_ok); 
    return nullptr; 
}

导入:import testNapi from "libentry.so";

使用:testNapi.transobject(tscb);

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进