SDK合规指南
1 文档修订记录
文档版本 | 文档更新日期 | 文档更新内容 |
---|---|---|
3.3.34 | 2021.12.30 | 1.「客户端回调」新增"接收实名认证信息回调" |
3.3.30 | 2021.11.18 | 1.从聚合SDK独立拆分;2.「接收实名认证信息」接口新增"scene"参数;3.「防沉迷弹窗」接口新增"scene"参数 |
2 接入准备
推荐C#4 以上版本,如果游戏是4及以下版本,可能会无法支持新特性
推荐Unity2018及以上版本
2.1 添加文件
- 将文件
FYBase.unitypackage
与FYAntiAddiction.unitypackage
先后导入到您的Unity工程的Assets
文件夹下 - 导入方式:打开UNITY工程,菜单栏Assets=>Import Package=>Custom Package... ,之后选择文件导入工程
2.2 配置DLL文件平台属性
UNITY项目中,选择对应Dll文件,在Inspector面板=>Select platforms for plugin 勾选对应平台
如果已经配置,请忽略此步骤
- Assets\Plugins\FYBase\FYBase.dll勾选"Any Platform",并勾选"iOS"和“Android”以排除这2平台
- Assets\Plugins\FYBase\Android\FYBase.dll选择平台为"Android",注意"Any Platform"不要打钩
- Assets\Plugins\FYBase\iOS\FYBase.dll选择平台为"iOS",注意"Any Platform"不要打钩
- Assets\Plugins\FYAntiAddiction\FYAntiAddiction.dll选择平台为"Any Platform"
2.3 添加SDK配置
1.打开"星云平台->对接中心->SDK对接->SDK 列表->基础接入参数",找到 App ID、App Key、Company ID
2.在UNITY打开星云配置界面
3.将 App ID、App Key、Company ID 填入对应输入框,选择游戏屏幕朝向,点击确定
,完成配置
2.4 开启调试模式
1.将配置界面中的Debug
勾选并点击确定
,即可开启「调试模式」;取消勾选并点击确定
,即关闭「调试模式」。
2.开启「调试模式」会显示客户端的悬浮球,点击进入调试工具可以查看接口/回调的调用信息,具体调试方法可查看文档。
2.5 引入命名空间
游戏代码中引入以下命名空间,开始接入。
using FYAntiAddiction;
3 界面跳转标准规范
为了您能快速接入,并避免大多数对接问题,请按照标准规范来对接。
3.1 首屏-防沉迷
3.2 游戏中-防沉迷
4 客户端接口与回调
接口接入的要诀?
- 必接接口一定要接入,选接接口根据需要接入
- 必传参数一定要传,能传的参数尽量都传
接口的回调何时注册?
- 第一种方式:在初始化回调成功后注册其余的回调
- 第二种方式:在每次调用对应接口前都预先注册对应的回调
- 综合使用:先使用第一种方式,之后如需改变再重新注册
4.1客户端回调
1.防沉迷弹窗回调 FYANAntiAddictionCallback
-
当调用「防沉迷弹窗接口」时,或在防沉迷弹窗点击确定时,将执行此回调
-
当 isPass 为 true 时,可以正常进入游戏或继续进行游戏;当 isPass 为 false 时,需禁止进入游戏或者退回到登录首页
-
使用方式:
FYAntiAddictionBridge.Instance.FYANAntiAddictionCallback = (isPass) =>
{
if (isPass)
{
//不符合防沉迷条件
//可以正常进入游戏
//可以继续进行游戏
}
else
{
//符合防沉迷条件,需要限制
//禁止进入游戏
//退回到登录首页
}
};
2.是否到防沉迷时间回调 FYANTimeOutCallback
- 当防沉迷时间到时自动执行此回调,或者调用「防沉迷时间查询接口」时执行此回调
- 收到此回调的「到达防沉迷时间」通知时,游戏应择机调用「防沉迷弹窗接口」,以及时弹出防沉迷
- 使用方式:
FYAntiAddictionBridge.Instance.FYANTimeOutCallback = new FYANTimeOutCallback(
(timeOutInfo) => {
//TODO: 到达防沉迷时间
//timeOutInfo.totalTime; // 总时间
//timeOutInfo.remainTime;// 剩下时间
//游戏必须在此择机弹出防沉迷
}, (timeNotUpInfo) => {
//TODO: 未到达防沉迷时间
//timeNotUpInfo.totalTime; // 总时间
//timeNotUpInfo.remainTime;// 剩下时间
});
3.限制支付回调 FYANLimitPayCallback
- 当调用「限制支付接口」时将执行此回调
- 当收到此回调的「可以继续支付」通知时,游戏可以继续拉起支付
- 当收到此回调的「支付受限」通知时,游戏需终止支付
- 使用方式:
FYAntiAddictionBridge.Instance.FYANLimitPayCallback = new FYANLimitPayCallback((limitPayInfo) => {
//TODO: 可以继续支付回调
//此用户没有被限制支付,游戏可以继续支付
//limitPayInfo.playerId;// 角色ID
//limitPayInfo.serverId;// 区服ID
//limitPayInfo.openId; // 唯一用户ID
//limitPayInfo.amount; // 金额(分)
//limitPayInfo.extra; // 额外参数
}, (limitPayInfo) => {
//TODO: 支付受限回调
//此用户被限制支付,游戏需结束支付
//limitPayInfo.playerId;// 角色ID
//limitPayInfo.serverId;// 区服ID
//limitPayInfo.openId; // 唯一用户ID
//limitPayInfo.amount; // 金额(分)
//limitPayInfo.extra; // 额外参数
});
4.接收实名认证信息回调 FYANRealNameCallback
- 当调用 realName 并且系统确定设置实名认证信息完成后回调
FYAntiAddictionBridge.Instance.FYANRealNameCallback = new FYANRealNameCallback((info) =>
{
// 表示设置实名认证信息已完成
// 可以继续执行后续的防沉迷逻辑(防沉迷弹窗、充值限制等)
}, (info) =>
{
// 设置实名认证信息失败
// 失败信息
string msg = info.message;
});
4.2 初始化接口 DoInit
(必接)
1.方法
void DoInit()
2.说明
- 游戏需要在刚启动游戏的时候调用
3.调用
FYAntiAddictionBridge.Instance.DoInit();
4.参数
无
5.回调
- 暂无
4.3 接收实名认证信息接口 RealName
(必接)
1.方法
void RealName(string unionId, string openId, string identityBirthday, string identityAge, string scene)
2.说明
- 此接口用来接收实名认证信息,为后续防沉迷做准备,如果此接口没有完成调用,则后续的防沉迷行为不会生效
- 若有接入聚合渠道SDK,
必须
在聚合渠道SDK的FYCombineLoginCallback
回调和FYCombineRealNameCallback
回调中调用,以及时将生日和年龄等实名信息传进来
3.调用
FYAntiAddictionBridge.Instance.RealName(unionId, openId, identityBirthday, identityAge, scene);
4.参数
参数名 | 说明 | 是否必传 |
---|---|---|
unionId | 渠道维度唯一用户ID | 是 |
openId | 游戏维度唯一用户ID | 是 |
identityBirthday | 出生日期,格式:xxxx-xx-xx | 是 |
identityAge | 年龄 | 是 |
scene | 调用场景,"1":在登录回调中调用,"2":在实名认证回调中调用,"0":其他地方调用 | 是 |
5.回调
- 接收实名认证信息回调
FYANRealNameCallback
4.4 防沉迷弹窗接口 AntiAddiction
(必接)
1.方法
void AntiAddiction(string scene)
2.说明
- 调用此接口,若用户已达到防沉迷条件,则会弹出防沉迷窗口
必须
在正式进入游戏时调用此接口,然后根据回调判断是否继续进入游戏必须
在FYANTimeOutCallback
回调中择机调用此接口,以在游戏中及时弹出防沉迷弹窗
3.调用
FYAntiAddictionBridge.Instance.AntiAddiction(scene);
4.参数
参数名 | 说明 | 是否必传 |
---|---|---|
scene | 调用场景,"1":在进入游戏时调用,"2":防沉迷时间到达时调用,"0":其他地方调用 | 是 |
5.回调
- 防沉迷弹窗回调
FYANAntiAddictionCallback
4.5 限制支付接口 LimitPay
(必接)
1.方法
LimitPay(string playerId, string serverId, string openId, string amount, string extra="")
2.说明
- 调用此接口,若用户已达到支付限制,则会弹出支付限制窗口
必须
在支付之前时调用,然后根据回调判断是否继续支付- 此接口传入的所有参数会原封不动的从回调
FYANLimitPayCallback
中传出
3.调用
FYAntiAddictionBridge.Instance.LimitPay(playerId, serverId, openId, amount, extra);
4.参数
参数名 | 说明 | 是否必传 |
---|---|---|
playerId | 角色ID | 是 |
serverId | 区服ID | 是 |
openId | 游戏维度唯一用户ID | 是 |
amount | 金额(分) | 是 |
extra | 额外参数 | 否 |
5.回调
- 限制支付回调
FYANLimitPayCallback
4.6 防沉迷时间查询接口 IsTimeOut
(选接)
1.方法
void IsTimeOut()
2.说明
- 调用此接口可以获取是否到防沉迷时间,以及防沉迷剩余时间
3.调用
FYAntiAddictionBridge.Instance.IsTimeOut();
4.参数
无
5.回调
- 是否到防沉迷时间回调
FYANTimeOutCallback
5 原生端对接
5.1 iOS
5.1.1 导出XCODE工程
- 将UNITY项目导出为XCODE工程,然后就可以在Xcode开发工具上调试了
5.2 Andorid
5.2.1 导出Android工程
- 方式一:使用UNITY打包Android APK调试
- 方式二:将UNITY项目导出为Android Studio工程,然后就可以在Android Studio开发工具上调试了
6 F&Q
6.1 iOS打包报错:MapFileParser.sh:Permission denied
- 打开终端,输入命令:chmod +x /Users/....../MapFileParser.sh (iOS工程目录下MapFileParser.sh的路径)
6.2 iOS打包报错:linker command failed with exit code 1
- Xcode配置:PROJECT -> Build Settings -> Enable Bitcode -> NO,其余具体配置可参照
聚合SDK-iOS
文档的添加SDK配置
部分