JSVM使用示例,有谁知道吗?

JSVM使用示例


HarmonyOS
2024-05-28 21:40:28
581浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
roseprodigal

使用的核心API

  • OH_JSVM_CreateReference:对传入的值创建一个具有指定引用计数的新引用。
  • OH_JSVM_GetReferenceValue:如果仍然有效,此JSVM-API将返回JSVM_Value, 表示与JSVM_Ref关联的JavaScript值。否则,结果将为NULL。
  • OH_JSVM_ReferenceRef:增加传入引用的引用计数并返回生成的引用计数。
  • OH_JSVM_GetNamedProperty:此方法等效于调用OH_JSVM_GetProperty, 其中,通过utf8Name传入的字符串用于创建JSVM_Value。

详细参考文档:JSVM

核心代码解释

# cmakelist 中需要增加libjsvm.so 
target_link_libraries(entry PUBLIC libace_napi.z.so libhilog_ndk.z.so libjsvm.so) 
  
// 初始化env,如果OH_JSVM_CreateEnv 第二个参数填写的有,则descriptors的第三个参数回调不能为null 
JSVM_Env env; 
JSVM_PropertyDescriptor descriptors[] = {{"hello", NULL, NULL, NULL, NULL, NULL, JSVM_DEFAULT}}; 
OH_JSVM_CreateEnv(vm, 0, nullptr, &env); 
  
// 不能对string 类型进行创建引用,需要包装成obj对象 
JSVM_Value value; 
ret = OH_JSVM_CreateStringUtf8(env, input.c_str(), input.length(), &value); 
  
JSVM_Value obj; 
OH_JSVM_CreateObject(env, &obj);     
OH_JSVM_SetNamedProperty(env, obj, "input", value); 
  
// 获取引用计数,该函数会在原有的引用计数上 +1 
OH_JSVM_ReferenceRef(env, ref, &refCount); 
  
// 解引用 
OH_JSVM_GetReferenceValue(env, ref, &value);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

实现效果

分享
微博
QQ
微信
回复
2024-05-29 22:53:36
相关问题
动态页面跳转方案,有谁知道吗
2867浏览 • 1回复 待解决
同进程多Hap问题 ,有谁知道吗
2391浏览 • 1回复 待解决
访问控制开发指导,有谁知道吗
1615浏览 • 1回复 待解决
有谁知道flexBasis使用问题
1728浏览 • 1回复 待解决
有谁知道可以直接使用so库
2184浏览 • 1回复 待解决
有谁知道常用AppFreeze使用指导
2175浏览 • 1回复 待解决
有谁知道如何生成UUID
2513浏览 • 1回复 待解决
有谁知道如何创建 JSONObject
1135浏览 • 1回复 待解决
有谁知道ArkTS支持定时器
3864浏览 • 1回复 待解决
滑动选择组件,有谁知道怎么解决?
1581浏览 • 1回复 待解决
有谁知道ArkTS支持隐式跳转
2837浏览 • 1回复 待解决
有谁知道常用hdc命令使用指导
3559浏览 • 1回复 待解决
Worker多线程的使用有谁知道啊?
1849浏览 • 1回复 待解决
有谁知道如何主动关闭应用
2862浏览 • 1回复 待解决
有谁知道应用升级的方式
2561浏览 • 1回复 待解决
有谁知道如何理解栅格布局
1346浏览 • 1回复 待解决
有谁知道Image图片取反色
3091浏览 • 1回复 待解决
有谁知道沙箱目录怎么获取
3536浏览 • 1回复 待解决
有谁知道如何使用hdc命令截屏
4425浏览 • 2回复 待解决
有谁知道an\ai文件是什么
2762浏览 • 1回复 待解决
有谁知道如何监听屏幕旋转
2810浏览 • 1回复 待解决
有谁知道是否支持帧动画
3456浏览 • 1回复 待解决
有谁知道如何屏蔽触摸事件
2516浏览 • 1回复 待解决