
Cocos Creator引擎鸿蒙游戏集成系统能力参考 原创
1 背景
为了帮助开发者更好使用HarmonyOS NEXT系统服务,现封装了部分系统API供开发者使用。
根据目前接口模块分别使用不同界面展示,本文基于反射机制在JavaScript中调用ArkTS的静态方法。
2 实现方案
- 3.8.x 版本Cocos Creator引擎请参考基于反射机制实现 JavaScript 与 HarmonyOS Next 系统原生通信。
- 2.4.x 版本Cocos Creator引擎请参考基于反射机制实现 JavaScript 与 HarmonyOS Next 系统原生通信。
3 主界面
前往Demo 源码下载Demo。

根据模块分别对应一个按钮

主模块标题,根据次级模块分别对应按钮 ,返回按钮,可返回主界面。
模块内详情界面 次级模块标题,返回按钮,可返回上一级,根据涉及的接口分别对应功能按钮。
下方文本框,用于显示触发功能按钮后返回的数据详情。
4 涉及接口
4.1 libAppInformation(应用信息Har)
调用HarmonyOS NEXT系统’@ohos.bundle.bundleManager’组件获取应用包名信息,其中有callback为异步方法:
- 获取包信息。
function getBundleInfo(param: string): string
- 获取产品版本。
function getDisplayVersion(param: string): string
- 获取电池信息。
function getBatterInfo(param: string): number
- 获取系统版本。
function getOSFullName(param: string): string
- 获取开发者匿名设备标识符。
function getODID(param: string): string
- 获取网络状态。
function getNetworkState(param: string, cb: Function)
- 获取资源文件夹路径。
function getResFilePath(param: string): string
- 获取当前窗口的属性。
function getWindowPro(param: string, cb: Function)
- 获取当前应用窗口内容规避区域。
function getWindowAvoidArea(param: string, cb: Function)
- 设置窗口是否为隐私模式,使用前应先获取ohos.permission.PRIVACY_WINDOW权限。
function setWindowPrivacyMode(param: string, cb: Function)
- DPI异步开启监听。
function obServerOn(param: string, cb: Function)
- DPI异步关闭监听。
function obServerOff(param: string, cb: Function)
4.2 libackgroundPush(用户通知服务Har)
调用HarmonyOS NEXT系统’@ohos.notificationManager’组件,实现本地推送通知功能。
若需要后台推送,可以通过’@kit.PushKit’组件获取pushToken,具体实现请参见推送后台消息。
- 通知服务权限检测。
function checkNoticeSync(param: string):string
- 前台发布用户通知。
function publishNotice(param: string, cb: Function)
- 获取推送令牌(token)。
function getToken(param: string, cb: Function)
4.3 libCalendarManager(日程管理Har)
调用HarmonyOS NEXT系统’@ohos.calendarManager’组件,实现创建日历,创建日历时间,以及其他相关操作。
- 根据上下文获取CalendarManager对象,用于管理日历。
function getCalendarManager(param: string, cb: Function)
- 根据日历账户信息,创建一个Calendar对象。
function createCalendar(param: string, cb: Function)
- 删除指定Calendar对象。
function deleteCalendar(param: string, cb: Function)
- 获取默认Calendar对象或者指定Calendar对象。
function getCalendar(param: string, cb: Function)
- 获取当前应用所有创建的Calendar对象以及默认Calendar对象。
function getCalendars(param: string, cb: Function)
- 创建日程。
function addEvent(param: string, cb: Function)
- 批量创建日程。
function addEvents(param: string, cb: Function)
- 删除指定id的日程。
function deleteEvent(param: string, cb: Function)
- 根据日程id,批量删除日程。
function deleteEvents(param: string, cb: Function)
- 更新日程。
function updateEvent(param: string, cb: Function)
- 查询当前日历下所有日程。
function getAllEvents(param: string, cb: Function)
- 获取Calendar下符合查询条件的Event。
function getEventsById(param: string, cb: Function)
- 获取Calendar下符合查询条件的Event。
function getEventsByTitle(param: string, cb: Function)
- 获取日历配置信息。
function getConfig(param: string)
- 设置日历配置信息。
function setConfig(param: string, cb: Function)
- 获取日历账户信息。
function getAccount(param: string)
4.4 libDataStorage(数据管理Har)
- 调用HarmonyOS NEXT系统’@kit.AssetStoreKit’组件,实现持久化关键存储数据功能。获取ohos.permission.STORE_PERSISTENT_DATA权限后,可实现卸载后任然保留数据。需要设置锁屏密码后,可以测试调用需要鉴权的接口。
- 新增一条关键资产。
function addAsset(param: string): string
- 删除符合条件的一条或多条关键资产。
function removeAsset(param: string): string
- 更新符合条件的一条关键资产。
function updateAsset(param: string): string
- 查询一条或多条符合条件的关键资产。
function queryAsset(param: string): string
- 查询需要验证的关键资产。
function queryAssetNeedCheck(param: string, cb: Function)
- 调用HarmonyOS NEXT系统’@kit.ArkData’组件,实现持久化存储数据功能。
- 通过获取Preferences实例来设置用户首选项对象。
function getPreferences(param: string): string
- 从缓存中移出指定的Preferences实例。
function rmPreferences(param: string): string
- 从缓存的Preferences实例中获取键对应的值。
function getValueByKey(param: string): string
- 从缓存的Preferences实例中获取所有键值数据,并将它们转换为JSON字符串。
function getAllValve(param: string): string
- 将数据写入缓存的Preferences实例中。
function putValue(param: string): string
- 检查缓存的Preferences实例中是否包含名为给定Key的存储键值对。
function hasValue(param: string): string
- 从缓存的Preferences实例中删除名为给定Key的存储键值对,可通过flush将Preferences实例持久化。
function deleteValue(param: string): string
- 将缓存的Preferences实例中的数据存储到用户首选项的持久化文件中。
function flushPre(param: string): string
- 清除缓存的Preferences实例中的所有数据,可通过flush将Preferences实例持久化。
function clearPre(param: string): string
- 调用HarmonyOS NEXT系统’@ohos.data.relationalStore’组件,实现创建数据库、创建数据表、以及对表内数据增删改查操作。
- 创建关系型数据库(RDB)存储。
function createDB(param: string,cb:Function)
- 删除指定名称的数据库。
function deleteDB(param: string,cb:Function)
- 在关系型数据库(RDB)存储中执行一个SQL语句。
function ExecuteSql(param: string,cb:Function)
- 将数据插入到指定的关系型数据库(RDB)表中。
function insertData(param: string): string
- 将多个数据批量插入到指定的关系型数据库(RDB)表中。
function insertDataBulk(param: string): string
- 同步删除指定关系型数据库(RDB)表中的所有数据。
function deleteDataAll(param: string): string
- 同步删除指定关系型数据库(RDB)表中满足特定条件的所有数据。
function deleteData(param: string): string
- 查询指定关系型数据库(RDB)表中的所有数据。
function queryAllData(param: string): string
- 查询指定关系型数据库(RDB)表中满足特定条件的数据。
function queryData(param: string): string
- 更新关系型数据库(RDB)中满足特定条件的数据。
function updateData(param: string): string
4.5 libFileOperation(文件操作Har)
调用HarmonyOS NEXT系统’@kit.BasicServicesKit’zlib组件,压缩和解压缩文件。
- 压缩用户传入的文件。
function compressFile(param: string, cb: Function)
- 解压缩用户传入的文件。
function decompressFile(param: string, cb: Function)
- 获取resources/rawfile目录下对应的rawfile文件内容。
function getRawFileContent(param: string)
- 获取指定文件系统空闲字节数。
function getFreeSize(param: string)
- 获取指定文件系统总字节数。
function getTotalSize(param: string)
4.6 libGameCommon(游戏常用工具Har)
- 调用HarmonyOS NEXT系统’@ohos.geoLocationManager’组件,开启定位功能获取定位和精确定位权限,开发者需在module.json5配置权限信息。
- 申请权限。
function applyForPerssion(param: string,cb:Function)
- 获取上一次位置。
function getLastLocation(param: string, cb: Function)
- 获取当前位置。
function getCurrentLocation(param: string, cb: Function)
- 调用HarmonyOS NEXT系统’@ohos.pasteboard’组件,支持复制到系统剪贴板。
- 从系统剪贴板获取需要以下步骤:ohos.permission.READ_PASTEBOARD是受限的user_grant(用户授权)权限,使用自定义控件的应用可以通过申请ohos.permission.READ_PASTEBOARD权限,在用户授权的场景下访问剪贴板内容。
- 权限申请步骤:
- 查看READ_PASTEBOARD介绍,审视应用是否符合申请该权限的使用场景。
- 在AGC侧申请Profile文件,将用于后续的应用签名信息配置。
- 在module.json5配置文件中声明权限。
- 通过弹窗向用户申请权限。
- 实现方法:
- 设置剪切板。
function setSysBoard(param: string)
2. 获取剪切板。
function getSysBoard(param: string, cb: Function)
4.7 libAppOperation(应用操作Har)
调用HarmonyOS NEXT系统’@ohos.app.ability.common’组件,UIAbilityContext.startAbility开启外部应用,Demo开启的是华为手机设置。
3种方式拉起应用市场的实现方式请参见拉起指定应用。
- 跳转其他应用。
function openApp(param: string)
- 拉起应用市场详情页,需要外部市场填上架应用。
function openAppInAppMarket(param: string)
- 拉起应用市场对应的应用详情页面(loadProduct)。
function openProductViewManager(param: string)
- 拉起应用市场对应的应用详情页面(deeplink)。
function startApp(param: string)
- 拉起应用市场对应的应用详情页面(applink)。
function openAppLink(param: string)
4.8 libPicker(Picker工具Har)
- 调用HarmonyOS NEXT系统’@kit.CoreFileKit’组件的picker,拉起文件选择器。
- 选择文件。
function pickFile(param: string, cb: Function)
- 获取文件内容。
function getFileContent(param: string, cb: Function)
- 保存文件。
function saveFile(param: string, cb: Function)
- 调用HarmonyOS NEXT系统’@kit.MediaLibraryKit’组件的photoAccessHelper,拉起图片选择器。跳转页面,使用ArkUI安全控件和showAssetsCreationDialog接口实现保存图片功能。
- 选择图片。
function pickPhoto(param: string, cb: Function)
- 保存图片。
function savePhoto(param: string)
- 调用HarmonyOS NEXT系统’@kit.ContactsKit’组件的contact,拉起联系人选择器。选择联系人。
function pickContacts(param: string, cb: Function)
- 跳转页面,在ArkUI中调用HarmonyOS NEXT系统’@kit.VisionKit’组件的CardRecognition,实现卡证识别。选择卡证。
function scanCard(param: string, cb: Function)
- 跳转页面,在ArkUI中调用HarmonyOS NEXT系统’@kit.VisionKit’组件的DocumentScanner,实现文档扫描。扫描文档。
function scanDoc(param: string, cb: Function)
- 调用HarmonyOS NEXT系统’@kit.CameraKit’组件,拉起系统摄像机。唤起相机。
function takephoto(param: string, cb: Function)
- 调用HarmonyOS NEXT系统’@kit.ScanKit’组件,实现扫码。唤起扫描。
function autoScan(param: string, cb: Function)
- 跳转页面,使用ArkUI的安全控件组件,实现获取剪贴板内容。打开剪贴板。
function openPasteBoardPage(param: string)
4.9 libAds(广告服务Har)
调用HarmonyOS NEXT系统’@kit.AdsKit’组件,实现获取广告标识符,加载广告,播放广告等功能。获取广告标识符需要获取应用追踪权限。
- 获取OAID。
function getOAIDOnWorker(param: string, cb: Function)
- 加载广告。
function loadADOnWorker(param: string, cb: Function)
- 订阅方法并展示激励广告。
function registerPPSR(param: string, cb: Function)
- 取消订阅事件。
function unRegisterPPSR(param: string, cb: Function)
4.10 libAlgorithms(算法Har)
调用HarmonyOS NEXT系统’@ohos.security.huks’组件,实现对数据的加解密功能。
- 加密数据。
function encryptData(param: string, cb: Function)
- 解密数据。
function decryptData(param: string, cb: Function)
4.11 libDialog(弹窗Har)
调用HarmonyOS NEXT系统’@ohos.promptAction’组件,实现调用系统弹窗提示通知功能。
- 显示Toast。
function ShowTip(param: string)
- 显示对话框。
function ShowDialog(param: string)
原文链接:华为开发者文章
更多问题可关注:
鸿蒙游戏官方网站:已有游戏移植-鸿蒙游戏-华为开发者联盟
公开课:华为开发者学堂
