HarmonyOS关于JSVM中创建原生对象的生命周期问题
目前正在试用JSVM_API。demo中向 JSVM里添加了诸多对象,但是在注入的js中调用这些对象时会说这些对象找不到。demo的伪代码大致如下:
initJsEnv(){ 
  JSVM_Value global; 
  OH_JSVM_GetGlobal(jsvm_env, &global); 
  JSVM_Value base; 
  OH_JSVM_CreateObject(jsvm_env, &base); 
  OH_JSVM_SetNamedProperty(jsvm_env, global, "__base__", base); 
} 
static char* runScript(JSVM_Env env, char *buf, size_t buf_len) { 
  OH_JSVM_RunScript(env,"typeof globale.__base__", &result); 
}最后会报错说__base__未定义。目前怀疑是demo中提供的那个handlescope本身只能在一个方法里生效,跨方法就没法用了。你们提供的demo全部都是一个方法把所有事情都做了。而正常的项目开发,所有功能都分在不同的方法里,因此demo就缺乏参考性了。现在就想知道,该如何在js环境中添加一个全局的对象。文档地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/jsvm-data-types-interfaces-V5#%E5%88%9B%E5%BB%BAjs%E5%AF%B9%E8%B1%A1%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%9F%BA%E6%9C%AC%E7%B1%BB%E5%9E%8B
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 HarmonyOS关于JSVM中JSVM_Value对象生命周期管理的问题 
1225浏览  • 1回复 待解决
HarmonyOS 关于ListItem的生命周期问题 
807浏览  • 1回复 待解决
关于HarmonyOS应用@Comptent的生命周期问题 
1107浏览  • 1回复 待解决
HarmonyOS 关于网络请求与生命周期关联的问题? 
802浏览  • 1回复 待解决
HarmonyOS Navigation生命周期问题 
1076浏览  • 1回复 待解决
HarmonyOS NavDestination生命周期问题 
971浏览  • 1回复 待解决
HarmonyOS 页面组件的生命周期、自定义组件生命周期监听问题 
1399浏览  • 1回复 待解决
Dialog组件生命周期问题 
1425浏览  • 1回复 待解决
HarmonyOS 普通对象怎么监听组件生命周期 
1044浏览  • 1回复 待解决
Window窗口的生命周期问题 
1441浏览  • 1回复 待解决
HarmonyOS 首页组件生命周期问题 
1059浏览  • 1回复 待解决
HarmonyOS 页面生命周期问题 
1276浏览  • 1回复 待解决
HarmonyOS  tab组件生命周期问题 
1203浏览  • 1回复 待解决
HarmonyOS 是否有支持应用生命周期、页面生命周期、组件生命周期Hook的API? 
1780浏览  • 1回复 待解决
HarmonyOS 关于组件重绘的生命周期函数 
1403浏览  • 1回复 待解决
HarmonyOS 弹框Dialog的生命周期问题 
1856浏览  • 1回复 待解决
HarmonyOS List中LazyForEach嵌套Component组件生命周期问题 
1140浏览  • 1回复 待解决
HarmonyOS 生命周期的区别 
1550浏览  • 1回复 待解决
HarmonyOS navdestination的生命周期,与页面和组件生命周期的关系 
1820浏览  • 1回复 待解决
HarmonyOS Navigation生命周期 
1294浏览  • 1回复 待解决
HarmonyOS Navigation 生命周期 
1054浏览  • 1回复 待解决
#鸿蒙通关秘籍#关于HarmonyOS中如何管理页面和组件的生命周期? 
1701浏览  • 1回复 待解决
HarmonyOS  EntryFormAbility中的生命周期没有回调 
1119浏览  • 1回复 待解决
HarmonyOS 自定义生命周期问题 
1095浏览  • 1回复 待解决
关于 OH_JSVM_CreateReference 创建非对象引用报错 
1209浏览  • 1回复 待解决





















通过下面代码向global添加了__base__对象:
在JS代码中可以通过 this.base
方式获取,实际测试在OH_JSVM_CloseHandleScope后执行JS脚本也是可以获取到的。
同理,global变量是环境中的全局变量,如果对OH_JSVM_OpenHandleScope内创建的对象有引用,其对象也是不会被释放的,会随着环境的销毁释放,不会有内存泄漏的问题。