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对象生命周期管理的问题
345浏览 • 1回复 待解决
HarmonyOS 关于网络请求与生命周期关联的问题?
44浏览 • 1回复 待解决
Dialog组件生命周期问题
330浏览 • 1回复 待解决
HarmonyOS 普通对象怎么监听组件生命周期
32浏览 • 1回复 待解决
Window窗口的生命周期问题
334浏览 • 1回复 待解决
HarmonyOS 是否有支持应用生命周期、页面生命周期、组件生命周期Hook的API?
366浏览 • 0回复 待解决
HarmonyOS 关于组件重绘的生命周期函数
24浏览 • 1回复 待解决
HarmonyOS 弹框Dialog的生命周期问题
578浏览 • 1回复 待解决
HarmonyOS List中LazyForEach嵌套Component组件生命周期问题
313浏览 • 1回复 待解决
#鸿蒙通关秘籍#关于HarmonyOS中如何管理页面和组件的生命周期?
147浏览 • 1回复 待解决
HarmonyOS 模块生命周期管理
230浏览 • 1回复 待解决
监听Ability生命周期
1180浏览 • 1回复 待解决
HarmonyOS 生命周期不触发
47浏览 • 1回复 待解决
TabContent 内容的生命周期
394浏览 • 1回复 待解决
HarmonyOS App的生命周期是什么?
396浏览 • 2回复 待解决
关于 OH_JSVM_CreateReference 创建非对象引用报错
446浏览 • 1回复 待解决
应用内的生命周期流转
639浏览 • 1回复 待解决
如何监听AbilitySlice的生命周期
5121浏览 • 1回复 待解决
HarmonyOS Navigation跳转的组件生命周期
605浏览 • 2回复 待解决
HarmonyOS 监听所有page的生命周期
465浏览 • 1回复 待解决
鸿蒙系统中的 AbilitySlice 如何管理生命周期?
192浏览 • 0回复 待解决
HarmonyOS 生命周期回调触发
49浏览 • 1回复 待解决
如何监听subwindow生命周期
368浏览 • 1回复 待解决
swiper切换监听生命周期
988浏览 • 1回复 待解决
HarmonyOS navigation主页面生命周期
491浏览 • 1回复 待解决
通过下面代码向global添加了__base__对象:
在JS代码中可以通过 this.base
方式获取,实际测试在OH_JSVM_CloseHandleScope后执行JS脚本也是可以获取到的。
同理,global变量是环境中的全局变量,如果对OH_JSVM_OpenHandleScope内创建的对象有引用,其对象也是不会被释放的,会随着环境的销毁释放,不会有内存泄漏的问题。