Cocos 2d-x引擎鸿蒙游戏集成系统能力参考

1 背景

为了帮助开发更好使用HarmonyOS NEXT,现封装了部分系统API供开发者使用。

由于各API使用场景不同,部分API可以直接在UI线程调用,因此使用AKI框架通过C++调用ArkTS代码能力实现。

Cocos 2d-x引擎需使用的是3.17.2版本。

2 Demo接入准备(重要)

2.1 RomAPI代码二次开发(可选)

2.1.1 自动导入对应module

前往Demo 源码下载Demo。

0900086000300134184.20201216095126.86523331460016843504112994983392.png

确认插件包中压缩包是否是对应模块的zip格式压缩包,此格式为DevEco Studio导出module导出的结果。

上方菜单栏选择File/New/Import…/Import Module。

在文件选择栏中选择插件包中的对应模块的zip文件,选择后点击ok导入,导入成功如下:

0900086000300134184.20201216095126.86523331460016843504112994983392.png

导入完成后修改entry/oh-package.json5中的依赖路径。

2.1.2 手动导入module

如果在选择导入的module时对应路径下找不到存在的zip文件则需要手动添加文件进工程,方法如下:

  1. 解压zip的压缩包。
  2. 选择解压到此处,解压后文件内内容。
  3. 将解压后文件夹移动至DevEco Studio工程根目录。

注意此方法加入的文件夹未被识别成module

0900086000300134184.20201216095126.86523331460016843504112994983392.png

此时并未作为module使用,没有蓝色方块标识。需要执行以下操作:

  1. 打开工程级build-profile.json5文件。
  2. 在此处新增配置。
  3. 完成后同步工程。
    0900086000300134184.20201216095126.86523331460016843504112994983392.png已经重新关联成module。
    0900086000300134184.20201216095126.86523331460016843504112994983392.png

2.2 详细接入准备(不需要对应能力的可跳过)

部分Demo使用需要配置申请用户权限,此部分已集成在对应har包module.json5文件中,如果遇到权限问题,请检查对应har包的module.json5文件。

2.3 2dx接入说明

3 Demo功能介绍

3.1 应用信息Har (libAppInformation)

3.1.1 获取包名应用信息

0900086000300134184.20201216095126.86523331460016843504112994983392.png

调用HarmonyOS NEXT系统’@ohos.bundle.bundleManager’组件 获取应用包名信息。

3.1.2 设备信息Demo

|625.1x313.88

|637.07x284.62

调用HarmonyOS NEXT系统’@ohos.batteryInfo’,’@ohos.deviceInfo’ '@ohos.telephony.radio’组件,获取电池信息,设备信息,运营商信息等。resfilePath可以通过在DevEco Studio项目中,将部分资源放置在应用安装后的沙盒目录中。 需要开发者手动在<module-name>\resource路径下创建resfile目录,且目录不能为空

|416.29x402.99

3.1.3 设备可用窗口区域信息Demo

调用HarmonyOS NEXT系统’@kit.ArkUI’组件,实现获取窗口信息功能功能。

3.2 应用操作Har(libAppOperation)

3.2.1 应用重启Demo

调用HarmonyOS NEXT系统’@ohos.app.ability.Want’组件,使用want实现应用的重启功能。

3.2.2 跳转外部应用Demo

调用HarmonyOS NEXT系统’@ohos.app.ability.common’'组件,UIAbilityContext.startAbility开启外部应用,Demo开启的是华为手机设置。

3种方式拉起应用市场的具体接入流程请参见文档拉起指定应用

3.2.3 进程退出Demo

|658.35x293.93

调用HarmonyOS NEXT系统’@ohos.process’组件,直接通过进程退出应用。

3.2.4 通知推送Demo

调用HarmonyOS NEXT系统’@ohos.notificationManager’组件,实现本地推送通知功能。

本demo未实现后台推送功能,若需要后台推送,可以通过’@kit.PushKit’组件获取pushToken进行后台推送,详细请参见推送后台消息

3.3 日程管理Har(libCalendar)

|703.57x313.88

调用HarmonyOS NEXT系统’@ohos.calendarManager’组件,实现创建日历,创建日历时间,以及其他相关操作。

需要获取日历读写权限。需要在module.json5配置权限信息。已在har包内集成。

|653.0300000000001x259.35

3.4 数据管理Har(libDataStorage)

3.4.1 关键资产存储服务Demo

|559.9300000000001x251.37

调用HarmonyOS NEXT系统’@kit.AssetStoreKit’组件,实现持久化关键存储数据功能。

获取ohos.permission.STORE_PERSISTENT_DATA权限后,可实现卸载后仍保留数据。

需要设置锁屏密码后,可以测试调用需要鉴权的接口。

3.4.2 关系数据库Demo

|668.99x303.24

|670.32x303.24

调用HarmonyOS NEXT系统’@ohos.data.relationalStore’组件,实现创建数据库,创建数据表,以及对表内数据增删改查的操作。

3.4.3 用户首选项Demo

调用HarmonyOS NEXT系统’@kit.ArkData’组件,实现持久化存储数据功能。

3.5 文件操作Har(libFileOperation)

3.5.1 应用存储空间Demo

调用HarmonyOS NEXT系统’@ohos.file.statvfs’组件,获取应用安装目录的剩余存储空间和总存储空间。

3.5.2 文件压缩解压缩Demo

调用HarmonyOS NEXT系统’@kit.BasicServicesKit’的zlib组件,压缩和解压缩文件。

首次使用请先点击一次CopyFile按钮把文件复制到应用沙箱目录方便操作。

3.5.3 读取rawfile路径文件Demo

3.6 弹窗通知Har(libDialogLibrary)

调用HarmonyOS NEXT系统’@ohos.promptAction’组件,实现调用系统弹窗提示通知功能。

3.7 游戏常用工具Har(libGameCommon)

3.7.1 权限管理Demo

调用HarmonyOS NEXT系统’@ohos.abilityAccessCtrl’组件的requestPermissionsFromUser接口实现弹窗申请权限。

权限条目需要在DevEco Studio的model.json5内提前配置,当前Demo已在har包内集成。

3.7.2 剪贴板Demo

|550.62x243.39000000000001

调用HarmonyOS NEXT系统’@ohos.pasteboard’组件,支持复制到系统剪贴板。

  • 从系统剪贴板获取需要以下步骤:ohos.permission.READ_PASTEBOARD是受限的user_grant(用户授权)权限,使用自定义控件的应用可以通过申请ohos.permission.READ_PASTEBOARD权限,在用户授权的场景下访问剪贴板内容。
  • 权限申请步骤:
    1. 查看READ_PASTEBOARD介绍,审视应用是否符合申请该权限的使用场景。
    2. 在AGC侧申请Profile文件,将用于后续的应用签名信息配置。
    3. 在module.json5配置文件中声明权限。
    4. 通过弹窗向用户申请权限。

3.7.3 获取定位Demo

|550.62x243.39000000000001

调用HarmonyOS NEXT系统’@ohos.geoLocationManager’组件,开启定位功能获取定位和精确定位权限,开发者需要在module.json5配置权限信息。

|550.62x376.39000000000004

3.7.4 振动器Demo

调用HarmonyOS NEXT系统’@kit.SensorServiceKit’组件,使用设备振动器。

3.8 广告Har(libAdsLibrary)

调用HarmonyOS NEXT系统’@kit.AdsKit’组件,实现获取广告标识符,加载广告,播放广告等功能。

获取广告标识符需要获取应用追踪权限。

|528.01x175.56

3.9 Picker工具Har(libPicker)

3.9.1 文件picker工具

|550.62x243.39000000000001

调用HarmonyOS NEXT系统’@kit.CoreFileKit’组件的picker,拉起文件选择器。

3.9.2 图片picker工具

调用HarmonyOS NEXT系统’@kit.MediaLibraryKit’组件的photoAccessHelper,拉起图片选择器。

跳转页面,使用ArkUI安全控件和showAssetsCreationDialog接口实现保存图片功能。

3.9.3 联系人picker工具

调用HarmonyOS NEXT系统’@kit.ContactsKit’组件的contact,拉起联系人选择器。

3.9.4 卡证picker工具

跳转页面,在ArkUI中调用HarmonyOS NEXT系统’@kit.VisionKit’组件的CardRecognition,实现卡证识别。

3.9.5 文档扫描picker工具

跳转页面,在ArkUI中调用HarmonyOS NEXT系统’@kit.VisionKit’组件的DocumentScanner,实现文档扫描。

3.9.6 摄像机picker工具

调用HarmonyOS NEXT系统’@kit.CameraKit’组件拉起系统摄像机。

3.9.7 扫码picker工具

调用HarmonyOS NEXT系统’@kit.ScanKit’组件实现扫码。

3.9.8 剪贴板picker工具

跳转页面,使用ArkUI的安全控件组件,实现获取剪贴板内容。