HarmonyOS鸿蒙Next中js调用鸿蒙的类和方法有更好的建议吗?

HarmonyOS鸿蒙Next中js调用鸿蒙的类和方法有更好的建议吗? 比如,原生端定义了一个类Phone,还有一个方法call
js通过jsbridge调用到原生端,将类名和方法作为参数传到原生,比如{"arg":{"class":"Phone","func":"call"}}。然后,
如果是Android,可以通过反射调到传入的类和方法。
在鸿蒙中,除了if判断,还有其他好的方法吗?

2 回复
  1. 用JSBridge通信方案,鸿蒙有提供相应参考案例和对应codeLab,参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkweb-11-V5

  2. dsBridge三方库:[https://ohpm.openharmony.cn/#/cn/detail/@hzw%2Fohos-dsbridge](https://ohpm.openharmony.cn/#/cn/detail/@hzw%2Fohos-dsbridge) 在原生中新建类JsBridge,实现业务API, 通过类来集中统一管理API,在web中引用ds包,JavaScript中通过dsBridge对象调用原生API。不需要用ifelse判断。

例子比如:

function test() {
  return "aaa"
}
function test2() {
  return 16
}

function reflectTest(): string | number {
  const Ironman = new Object({
    firstName: 'Tony',
    lastName: 'Stark',
    methodName: test()
  });
  return Reflect.get(Ironman, 'methodName');
}

@Entry
@Component
struct ReflectPage {
  @State message: string = 'Hello World';

  build() {
    Row() {
      Column() {
        Text(reflectTest().toString())
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

更多关于HarmonyOS鸿蒙Next中js调用鸿蒙的类和方法有更好的建议吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS的鸿蒙Next中,通过JS调用鸿蒙的类和方法时,建议使用@ohos命名空间来访问系统API。此外,利用JS FA(Feature Ability)框架,可以更高效地实现跨语言调用。确保遵循官方文档的API规范,使用import语句导入所需模块,并通过this上下文正确调用方法,以提升代码的可维护性和性能。

回到顶部