HarmonyOS JSVM 如何实现binding方法在某个对象上

doc上描述的demo比较简单,直接在创建JSVM_Env的时候绑定了几个方法。在实际的生产环境中,会在特定的对象上动态binding方法,能否提供一个demo或者提供一个教程。

JSVM_CallbackStruct param[] = { 
  {.data = nullptr, .callback = ConsoleInfo}, 
{.data = nullptr, .callback = Add}, 
}; 
JSVM_PropertyDescriptor descriptor[] = { 
  {"consoleinfo", NULL, ¶m[0], NULL, NULL, NULL, JSVM_DEFAULT}, 
{"add", NULL, ¶m[1], NULL, NULL, NULL, JSVM_DEFAULT}, 
}; 
// create env, register native method, and open env scope 
JSVM_Env env; 
OH_JSVM_CreateEnv(vm, sizeof(descriptor) / sizeof(descriptor[0]), descriptor, &env);
HarmonyOS
2024-09-11 11:51:25
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

参考demo:

static JSVM_Value SayHello(JSVM_Env env, JSVM_CallbackInfo info) { 
  OH_LOG_INFO(LOG_APP, "Hello World"); 
  JSVM_Value ret; 
  OH_JSVM_GetBoolean(env, true, &ret); 
  return ret; 
} 
JSVM_Value funcValue = nullptr; 
JSVM_CallbackStruct param; 
param.data = nullptr; 
param.callback = SayHello; 
OH_JSVM_CreateFunction(env, "sayHello", NAPI_AUTO_LENGTH, ¶m, &funcValue); 
JSVM_Value global; 
OH_JSVM_GetGlobal(env, &global); 
OH_JSVM_SetNamedProperty(env, global, "sayHello", funcValue); 
JSVM_Value func; 
OH_JSVM_GetNamedProperty(env, global, "sayHello", &func); 
JSVM_Value ret; 
OH_JSVM_CallFunction(env, nullptr, func, 0, nullptr, &ret);
分享
微博
QQ
微信
回复
2024-09-11 15:18:30
相关问题
如何判断对象某个interface的实现
875浏览 • 1回复 待解决
如何判断一个对象实现某个接口
1133浏览 • 1回复 待解决
Native侧释放ArkTS对象方法
311浏览 • 1回复 待解决
HarmonyOS 如何获取对象方法列表
248浏览 • 1回复 待解决
HarmonyOS 单例对象如何实现
250浏览 • 1回复 待解决
如何判断JS对象中是否存在某个
2115浏览 • 1回复 待解决
如何获取对象的所有方法
243浏览 • 1回复 待解决
openharmony怎么app实现一键关机?
2599浏览 • 2回复 待解决
如何某个组件实现局部截图?
244浏览 • 1回复 待解决
HarmonyOS 动态hook实例方法如何实现
398浏览 • 1回复 待解决