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对象生命周期管理的问题
248浏览 • 1回复 待解决
Dialog组件生命周期问题
232浏览 • 1回复 待解决
HarmonyOS 是否有支持应用生命周期、页面生命周期、组件生命周期Hook的API?
245浏览 • 0回复 待解决
HarmonyOS List中LazyForEach嵌套Component组件生命周期问题
225浏览 • 1回复 待解决
Window窗口的生命周期问题
238浏览 • 1回复 待解决
HarmonyOS 弹框Dialog的生命周期问题
429浏览 • 1回复 待解决
HarmonyOS 模块生命周期管理
132浏览 • 1回复 待解决
监听Ability生命周期
1037浏览 • 1回复 待解决
HarmonyOS App的生命周期是什么?
282浏览 • 2回复 待解决
TabContent 内容的生命周期
254浏览 • 1回复 待解决
应用内的生命周期流转
490浏览 • 1回复 待解决
如何监听AbilitySlice的生命周期
5040浏览 • 1回复 待解决
HarmonyOS 监听所有page的生命周期
267浏览 • 1回复 待解决
HarmonyOS Navigation跳转的组件生命周期
423浏览 • 2回复 待解决
鸿蒙系统中的 AbilitySlice 如何管理生命周期?
36浏览 • 0回复 待解决
关于 OH_JSVM_CreateReference 创建非对象引用报错
336浏览 • 1回复 待解决
HarmonyOS navigation主页面生命周期
276浏览 • 1回复 待解决
如何监听subwindow生命周期
289浏览 • 1回复 待解决
swiper切换监听生命周期
889浏览 • 1回复 待解决
如何监听全局Ability生命周期?
265浏览 • 1回复 待解决
如何在页面中订阅UIAbility实例的生命周期变化
1748浏览 • 1回复 待解决
HarmonyOS Navigation跳转生命周期咨询
477浏览 • 1回复 待解决
HarmonyOS页面onPageShow生命周期不回调
779浏览 • 1回复 待解决
如何监听指定Ability的生命周期变化?
342浏览 • 1回复 待解决
HarmonyOS Tabs以及嵌套Tabs生命周期的支持
148浏览 • 1回复 待解决
通过下面代码向global添加了__base__对象:
在JS代码中可以通过 this.base
方式获取,实际测试在OH_JSVM_CloseHandleScope后执行JS脚本也是可以获取到的。
同理,global变量是环境中的全局变量,如果对OH_JSVM_OpenHandleScope内创建的对象有引用,其对象也是不会被释放的,会随着环境的销毁释放,不会有内存泄漏的问题。