Native应用示例
介绍
本示例展示[ArkUI-X] Native C++模版创建的工程,增加了Native中调用ArkTS/TS/JS传入的方法的样例和Native中调用libuv第三方库进行简单事件轮询的样例,可通过点击事件改变Text组件展示的内容。
效果预览
-
Android平台展示效果
-
iOS平台展示效果
-
鸿蒙平台展示效果
使用说明
-
打开应用,首页显示三个Text文本和一个Button按钮。
-
点击文字部分,Text内容发生改变,点击按钮,NativeUvLoop result文本变为NativeUvLoop successful。
工程目录
Native
├── AppScope // App信息配置文件
├── entry/src/main
│ ├── cpp
│ │ ├── CMakeLists.txt
│ │ ├── hello.cpp // 引入uv.h和native_api.h第三方库,自定义方法
| │ └── types
│ | └── libentry // so库,将hello.cpp中的方法封装在一个库内
│ ├── ets
│ │ ├── entryability // 应用入口
│ │ └── pages // 应用页面
│ └── resources // 放置颜色、文字等资源
具体实现
-
首先完成so库的实现
- 新建hello.cpp文件,导入需要的第三方库,并编写在页面中需要用到的方法。
- 在libentry目录下的index.d.ts文件中,将编写的方法提取。
- 在oh-package.json5文件中,配置该so库的名字、版本以及目标文件。
-
然后完成应用页面的实现
- 新建Index.ets文件,导入so库中封装好的接口。
- 新增Text文本组件,并为其添加.onClick()事件,当检测到点击时,调用接口中的方法。
相关权限
不涉及。
依赖
不涉及。
约束与限制
-
本示例支持在Android\iOS\鸿蒙系统上运行。
-
本示例已适配API version 12版本ArkUI-X SDK及以上,版本号:2.0.0.27。
-
本示例需要使用DevEco Studio NEXT Developer Beta1 (Build Version: 5.0.3.403, built on June 20, 2024)及以上版本才可编译运行。
针对CMakeLists.txt的检查说明:
- 代码路径:.arkui-x/android/app/src/main/cpp/CMakeLists.txt
-
本示例需要配置“ARKUIX_SDK_HOME”的环境变量,用于CMakeLists.txt文件读取ArkUI-X SDK的文件位置。
-
CMakeLists.txt文件中的include路径需要检查对应API下的路径是否存在,例如下面路径,需要有API 12的ArkUI-X SDK存在:
set(NATIVE_INCLUDE_PATH "$ENV{ARKUIX_SDK_HOME}/12/arkui-x/engine/lib/include/")
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo /Native > .git/info/sparse-checkout
git remote add origin https://gitcode.com/arkui-x/samples.git
git pull origin master