HarmonyOS 鸿蒙Next NAPI能否导出一个class 封装多个方法

发布于 1周前 作者 h691938207 来自 鸿蒙OS

HarmonyOS 鸿蒙Next NAPI能否导出一个class 封装多个方法 NAPI能否导出一个class,封装多个方法,最好给一个demo,在JS侧应该如何调用此类中方法

2 回复
declare namespace testNapi {
    const add: (a: number, b: number) => number;
    const sub: (a: number, b: number) => number;
    const getString: (a: string) => string;
    // 定义js接口
    class MyDemo {
        constructor(name: string)
        name: string

        add(a: number, b: number): number
        sub(a: number, b: number): number
    }
}

export default testNapi;

import hilog from '@ohos.hilog';
import testNapi from 'liblibrary.so';

@Component
export struct MainPage {
    @State message: string = 'Hello World';

    build() {
        Row() {
            Column() {
                Text(this.message)
                    .fontSize(50)
                    .fontWeight(FontWeight.Bold)
                    .onClick(() => {
                        new testNapi.MyDemo('abc');
                        hilog.info(0x0000, 'testTag', 'Test NAPI 2 + 3 = %{public}d', testNapi.add(2, 3));
                        hilog.info(0x0000, 'testTag', 'Test NAPI 2 + 3 = %{public}d', testNapi.sub(2, 3));
                    })
            }
        .width('100%')
        }
    .height('100%')
    }
}

更多关于HarmonyOS 鸿蒙Next NAPI能否导出一个class 封装多个方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next NAPI中,虽然其设计初衷更多偏向于提供底层系统能力的抽象,但理论上,开发者仍然可以通过C++等支持面向对象编程的语言来实现class的封装。NAPI本身并不直接限制class的使用,而是依赖于开发语言的能力。因此,如果你使用C++进行开发,完全可以定义一个class来封装多个相关的方法,并通过NAPI提供的接口将这些方法暴露给上层应用。

然而,需要注意的是,由于NAPI主要用于原生应用开发,并且鸿蒙系统也支持使用其他高级语言(如JavaScript、eTS等)进行开发,因此在实际开发中,是否需要通过NAPI导出class可能取决于具体的开发场景和需求。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部