# 游戏碰一碰近场快传
**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 是要传输的资源路径。