# 游戏碰一碰近场快传 **Repository Path**: harrysimply/openharmony-game-with-nearby-transfer-resource ## Basic Information - **Project Name**: 游戏碰一碰近场快传 - **Description**: 鸿蒙游戏资源近场快传 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-30 - **Last Updated**: 2025-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 鸿蒙游戏近场快传示例工程 # 概述 本工程为团结引擎导出鸿蒙工程,旨在通过对鸿蒙工程修改帮助游戏快速接入资源近场快传能力,而不需要修改团结游戏工程。 工程中包含: - [x] 碰一碰/抓一抓分享; - [x] 游戏资源近场快传。 # 提前准备 1、提供应用包名和游戏名称给支撑人员,以开启白名单。
2、近场快传是鸿蒙 6.0 版本及以上ROM 版本才有的能力,开发者调试需要先将手机鸿蒙系统升级到鸿蒙6.0, 再下载最新的deveco工程以支持api20。 # 接入步骤 1、将 tuanjieLib目录下的 nearby 目录拷贝到接入者游戏目录;
2、在可以获取到 UIContext 的位置初始化 NearbyShareManager;
```c // TuanjiePlayerView.ets let ctx: UIContext = this.getUIContext(); SetToGlobalThis('UIContext',ctx); NearbyShareManager.getInstance().init(); ``` 3、在 Ability 中增加两个生命周期方法,在 module.json5中配置相应的权限和 deeplink 的 skill。
4、配置版本文件路径,与需要传输的文件路径。 > 相关配置参考下面一章节 # 一些必要的配置 ## 1 为 Ability 增加生命周期方法 ```ts // entry/src/main/ets/ability/TuanjiePlayerAbility.ets onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void { NearbyShareManager.getInstance().openDialog(want); } onCollaborate(wantParam: Record): AbilityConstant.CollaborateResult { return NearbyShareManager.getInstance().acceptTransfer(wantParam); } ``` ## 2 权限配置 配置权限示例(需要ohos.permission.DISTRIBUTED_DATASYNC,ohos.permission.GET_NETWORK_INFO和ohos.permission.SET_NETWORK_INFO权限): ``` // entry/src/main/module.json5 "requestPermissions": [ { "name": "ohos.permission.DISTRIBUTED_DATASYNC", "usedScene": { "abilities": [ "TuanjiePlayerAbility" ], "when": "always" }, "reason": "$string:default_reason" }, { "name": "ohos.permission.GET_NETWORK_INFO", "usedScene": { "abilities": [ "TuanjiePlayerAbility" ], "when": "always" }, "reason": "$string:default_reason" }, { "name": "ohos.permission.SET_NETWORK_INFO", "usedScene": { "abilities": [ "TuanjiePlayerAbility" ], "when": "always" }, "reason": "$string:default_reason" } ] ``` ## 3 deeplink 的 skill配置 deeplink 是和华为分享中的碰一碰或者抓一抓配套使用的一个能力。 需要在 module.json5中配置相应的 skill 才会生效。 skill配置: ```c { "actions": [ // actions不能为空,actions为空会造成目标方匹配失败。 "ohos.want.action.viewData" ], "uris": [ { // scheme必选,可以自定义,以link为例,需要替换为实际的scheme "scheme": "link", // host必选,配置待匹配的域名 "host": "nearbyshare.com" } ] } // 新增一个skill对象,用于跳转场景。如果存在多个跳转场景,需配置多个skill对象。 ``` 碰一碰分享出去的域名需要和上述 scheme 和 host 相同,例如 link://nearbyshare.com ## 4 配置资源文件路径 示例代码中的资源版本路径和资源路径在`tuanjieLib/src/main/resources/rawfile/NearbyConfig.json`中: 例如: ```c "TransferVersionFilePath":"/AssetBundles/Version_Harmony.json", "TransferFolders":["/AssetBundles", "/IFS"], ``` 其中 Version_Harmony.json是游戏记录的资源版本文件,AssestBundles与 IFS 是要传输的资源路径。