Skip to main content
Version: v4

好友(含聊天)开发指南

本文介绍如何在游戏中加入好友&聊天系统。

集成前准备

  1. 参考 开发者中心配置 创建应用、配置包名与签名证书
  2. 参考集成指南(UnityAndroidiOS)完成对应平台或引擎的基础接入
  3. 好友模块依赖于 TapTap 登录模块,开发者接入前应先完成 TapTap 登录的接入

权限说明

权限使用目的权限申请时机
网络权限用于访问网络数据用户首次使用该功能时会申请权限
网络状态权限用于检查网络连接状态(如 Wi-Fi 或移动数据是否可用)用户首次使用该功能时会申请权限
读取外部存储权限用于读取设备上的文件和媒体内容用户首次使用相关功能时会申请权限
写入外部存储权限用于保存文件到设备存储用户首次使用文件保存功能时会申请权限
管理外部存储权限用于管理设备上的文件用户首次使用文件管理功能时会申请权限
前台服务权限用于在应用处于后台时保持某些功能运行应用需要在后台运行服务时
相机权限用于拍摄照片和视频通话用户首次使用相机相关功能时会申请权限
振动权限用于消息通知时的振动提醒应用需要使用振动提醒时

该模块将在应用中添加如下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />

SDK 获取

远程依赖

NPMJS 方式:在 Packages/manifest.json 中添加:

"dependencies":{
"com.taptap.sdk.core":"4.9.3",
"com.taptap.sdk.login":"4.9.3",
"com.taptap.sdk.relation":"4.9.3"
}

GitHub 方式:在 Packages/manifest.json 中添加:

"dependencies":{
"com.taptap.sdk.core":"https://github.com/taptap/tapsdk-unity-dist.git?path=/Core#4.9.3",
"com.taptap.sdk.login":"https://github.com/taptap/tapsdk-unity-dist.git?path=/Login#4.9.3",
"com.taptap.sdk.relation":"https://github.com/taptap/tapsdk-unity-dist.git?path=/Relation#4.9.3"
}

本地文件导入

下载页 下载并导入以下 unitypackage 文件:

  • TapSDK_Core.unitypackage (TapTapSDK 核心模块,必选)
  • TapSDK_Login.unitypackage(TapTapSDK 登录模块,必选)
  • TapSDK_Relation.unitypackage (TapTapSDK 好友模块,必选)

iOS 工程配置

在 iOS 项目或通过 Unity 项目导出 Xcode 工程时,由于使用好友服务需要相册、相机权限,所以需配置对应权限使用说明,配置方式如下:

Assets/Plugins/iOS/Resource 目录下创建 TDS-Info.plist 文件 (如果已创建,只需添加内容即可),配置相关权限并替换授权文案

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPhotoLibraryUsageDescription</key>
<string>需要访问相册以选择或保存图片</string>
<key>NSCameraUsageDescription</key>
<string>需要使用相机拍摄照片</string>
</dict>
</plist>

注册监听回调

好友聊天 SDK 中包含多个监听回调,分别会在未登录/有新增粉丝/有新增消息时被调用。

using TapSDK.Relation;

RelationCallback callback = new RelationCallback();
TapTapRelation.RegisterRelationCallback(callback);
TapTapRelation.UnregisterRelationCallback(callback);

class RelationCallback : ITapTapRelationCallback
{

public RelationCallback(){}

public void OnMessengerCodeResult(int code)
{
// 处理好友聊天的状态码
// code 400001 需要用户登录
}

public void OnNewFansCountChanged(int code, int newFansCount)
{
// 新增粉丝数量变化
// newFansCount 新增粉丝数
}

public void OnUnreadMessageCountChanged(int code, int unreadMsgCount)
{
// 新增未读消息数量变化
// unreadMsgCount 新增未读消息数
}

}

准备阶段

进入聊天之前的一些准备工作。

info

注意:【好友实时消息/获取新增未读消息数/获取新增粉丝数】需要在调用 prepare 之后才可生效。

using TapSDK.Relation;

TapTapRelation.Prepare();

开始聊天

打开聊天页面,根据初始化参数 screenOrientation 会有不同的动画表现。

using TapSDK.Relation;

TapTapRelation.StartMessenger();

邀请好友上线

打开邀请好友页面,向选中好友发送邀请上线消息。

using TapSDK.Relation;

TapTapRelation.InviteGame();

邀请好友组队

打开邀请好友页面,向选中好友发送邀请组队消息,需要传组队相关参数teamId。

using TapSDK.Relation;

string teamId = "";
TapTapRelation.InviteTeam(teamId);

获取新增粉丝数

获取当前用户新增粉丝的数量,也可在callback中处理。

using TapSDK.Relation;

TapTapRelation.GetNewFansCount((count) =>
{
Log($"新粉丝数量: {count}");
});

获取新增消息数

获取当前用户新增消息的数量,也可在callback中处理。

using TapSDK.Relation;

TapTapRelation.GetUnreadMessageCount((count) =>
{
Log($"未读消息数量: {count}");
});

展示 TapTap 用户名片

展示指定用户的名片弹窗,可用于关注/取关用户,传入用户的openId或者unionId。

using TapSDK.Relation;

string openId = "";
string unionId = "";
TapTapRelation.ShowTapUserProfile(openId, unionId);

国际化

TapTapRelation 支持设置语言:目前只支持简体中文