相关问题
#鸿蒙通关秘籍#如何在鸿蒙Native模块中集成NDK接口?
513浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中通过Native C/C++创建子进程?
511浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中通过布局优化减少系统开销?
531浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中释放Native XComponent的资源?
571浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中将ArkTS对象转换为native数据?
422浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中获取Context对象?
531浏览 • 2回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中编译和链接Native子进程相关的动态库?
532浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中声明共享模块?
426浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中实现多终端适配?
415浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中开启代码混淆功能?
736浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中实现Native侧进度通知?
607浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙系统中如何转换Native应用信息为JavaScript对象?
375浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在ArkTS中实时对接Native进度更新?
518浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中复用混淆名称缓存?
481浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中为Native XComponent实现按键事件回调?
711浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中应用UIAbility的singleton模式?
486浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中创建默认样式的菜单?
468浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中创建和使用stepper组件?
498浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中绘制一个圆形?
440浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙开发中设置网页的深色模式?
437浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中嵌套使用Grid组件?
529浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中实现页面返回操作?
779浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中获取文档类URI?
364浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙系统中设置GridCol组件的宽度?
430浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙系统中如何在页面跳转时传递数据?
560浏览 • 1回复 待解决
在鸿蒙系统中创建与使用Native Bundle接口需要遵循特定的步骤,这里提供了详细的指导。
创建工程,会在工程生成
cpp
目录,内含libentry/index.d.ts、hello.cpp、CMakeLists.txt等文件。配置构建文件:
src/main/cpp/CMakeLists.txt
中target_link_libraries
配置添加libbundle_ndk.z.so
: bash target_link_libraries(entry PUBLIC libace_napi.z.so libbundle_ndk.z.so)增加头文件及方法:
添加头文件
#include "bundle/native_interface_bundle.h"
到hello.cpp
定义接口: cpp EXTERN_C_START static napi_value Init(napi_env env, napi_value exports) { napi_property_descriptor desc[] = { { "getCurrentApplicationInfo", nullptr, GetCurrentApplicationInfo, nullptr, nullptr, nullptr, napi_default, nullptr } };
napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc); return exports; } EXTERN_C_END
获取应用自身信息的方法: cpp static napi_value GetCurrentApplicationInfo(napi_env env, napi_callback_info info) { OH_NativeBundle_ApplicationInfo nativeApplicationInfo = OH_NativeBundle_GetCurrentApplicationInfo(); napi_value result = nullptr; napi_create_object(env, &result);
}
JavaScript侧使用Native接口: javascript import hilog from '@ohos.hilog'; import testNapi from 'libentry.so';
@Entry @Component struct Index { @State message: string = 'Hello World';
}