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对象生命周期管理的问题
415浏览 • 1回复 待解决
HarmonyOS 关于ListItem的生命周期问题
39浏览 • 1回复 待解决
关于HarmonyOS应用@Comptent的生命周期问题
212浏览 • 1回复 待解决
HarmonyOS 关于网络请求与生命周期关联的问题?
128浏览 • 1回复 待解决
HarmonyOS NavDestination生命周期问题
221浏览 • 1回复 待解决
HarmonyOS Navigation生命周期问题
211浏览 • 1回复 待解决
Window窗口的生命周期问题
665浏览 • 1回复 待解决
HarmonyOS 页面组件的生命周期、自定义组件生命周期监听问题
296浏览 • 1回复 待解决
HarmonyOS 普通对象怎么监听组件生命周期
259浏览 • 1回复 待解决
HarmonyOS 是否有支持应用生命周期、页面生命周期、组件生命周期Hook的API?
550浏览 • 0回复 待解决
Dialog组件生命周期问题
492浏览 • 1回复 待解决
HarmonyOS 首页组件生命周期问题
79浏览 • 1回复 待解决
HarmonyOS 页面生命周期问题
196浏览 • 1回复 待解决
HarmonyOS tab组件生命周期问题
221浏览 • 1回复 待解决
HarmonyOS 关于组件重绘的生命周期函数
263浏览 • 1回复 待解决
HarmonyOS 弹框Dialog的生命周期问题
737浏览 • 1回复 待解决
HarmonyOS navdestination的生命周期,与页面和组件生命周期的关系
315浏览 • 1回复 待解决
HarmonyOS List中LazyForEach嵌套Component组件生命周期问题
454浏览 • 1回复 待解决
HarmonyOS 生命周期的区别
346浏览 • 1回复 待解决
#鸿蒙通关秘籍#关于HarmonyOS中如何管理页面和组件的生命周期?
346浏览 • 1回复 待解决
HarmonyOS Navigation生命周期
327浏览 • 1回复 待解决
HarmonyOS Navigation 生命周期
81浏览 • 1回复 待解决
HarmonyOS 自定义生命周期问题
206浏览 • 1回复 待解决
TabContent 内容的生命周期
707浏览 • 1回复 待解决
HarmonyOS 关于web组件的js运行环境的生命周期及页面间通信问题
264浏览 • 1回复 待解决
通过下面代码向global添加了__base__对象:
在JS代码中可以通过 this.base
方式获取,实际测试在OH_JSVM_CloseHandleScope后执行JS脚本也是可以获取到的。
同理,global变量是环境中的全局变量,如果对OH_JSVM_OpenHandleScope内创建的对象有引用,其对象也是不会被释放的,会随着环境的销毁释放,不会有内存泄漏的问题。