本文档主要介绍 unity 如何集成 V4 版 Tap 登录和防沉迷 SDK。
一、集成前准备
- 通过 Tap 开发者后台开启 Tap 登录服务和合规认证服务;
合规认证服务如果没有版号就选择「暂无版号」选项即可。
- 配置包名和签名(必须,十分重要!!!)
测试的 APK 的包名和签名一定要在开发者后台进行配置,不然登录会闪退。
二、导入依赖库
导入依赖有手动下载离线文件导入和使用 npmJS 远程依赖两种方式,本文只介绍 npmJS 方式导入,
在项目的 Packages/manifest.json
文件中添加以下依赖:
{ "dependencies": { "com.unity.nuget.newtonsoft-json":"3.2.1", "com.google.external-dependency-manager": "1.2.179", "com.taptap.sdk.core":"4.3.12", "com.taptap.sdk.login":"4.3.12", "com.taptap.sdk.compliance":"4.3.12", ... }, "scopedRegistries": [ { "name": "package.openupm.com", "url": "https://package.openupm.com", "scopes": [ "com.google.external-dependency-manager" ] }, { "name": "NPMJS", "url": "https://registry.npmjs.org/", "scopes": ["com.taptap"] } ] }
|
三、初始化 SDK
- 合规认证的回调函数
private Action<int, string> ComplianceCallback => (code, s) => { switch (code) {
case 500: Debug.Log(code + "玩家未受到限制,正常进入游戏"); break;
case 1000: Debug.Log(code+ "退出防沉迷认证及检查,当开发者调用 Exit 接口时或用户认证信息无效时触发,游戏应返回到登录页"); break; case 1001: Debug.Log(code+ "用户点击切换账号,游戏应返回到登录页"); break; case 1030: Debug.Log(code+ "用户当前时间无法进行游戏,此时用户只能退出游戏或切换账号"); break; case 1050: Debug.Log(code+ "用户无可玩时长,此时用户只能退出游戏或切换账号"); break; case 9002: Debug.Log(code+ "实名过程中点击了关闭实名窗,游戏可重新开始防沉迷认证"); break; case 1100: Debug.Log(code+ "当前用户因触发应用设置的年龄限制无法进入游戏"); break; case 1200: Debug.Log(code+ "数据请求失败,游戏需检查当前设置的应用信息是否正确及判断当前网络连接是否正常"); break; default: break; }};
|
- 初始化部分
TapTapSdkOptions coreOptions = new TapTapSdkOptions { clientId = "h2*******47n", clientToken = "JknZ*******************MPDHK", region = TapTapRegionType.CN, preferredLanguage = TapTapLanguageType.zh_Hans, enableLog = true }; TapTapComplianceOption complianceOption = new TapTapComplianceOption { showSwitchAccount = true, useAgeRange = true, };
TapTapSdkBaseOptions[] otherOptions = new TapTapSdkBaseOptions[] { complianceOption };
TapTapSDK.Init(coreOptions, otherOptions);、
TapTapCompliance.RegisterComplianceCallback(ComplianceCallback);
|
四、功能接口
- 开始登录
TapTapAccount account = await TapTapLogin.Instance.GetCurrentTapAccount();
if (account == null) { Debug.Log("当前未登录,接下来开始登录。。。"); List<string> permissions = new List<string>(); permissions.Add(TapTapLogin.TAP_LOGIN_SCOPE_PUBLIC_PROFILE); Task<TapTapAccount> task = TapTapLogin.Instance.LoginWithScopes(permissions.ToArray()); var result = await task; if (task.IsCompleted) { TapTapAccount currentUser = await TapTapLogin.Instance.GetCurrentTapAccount(); Debug.Log("登录成功,当前账户的信息:"); Debug.Log( currentUser.ToJson());
} else if (task.IsCanceled) { Debug.Log("登录取消。。。"); } else { Debug.Log("登录失败。。。");
}
} else { Debug.Log("当前已登录,可以进入游戏!"); }
|
- 开始实名
TapTapAccount account = await TapTapLogin.Instance.GetCurrentTapAccount(); if (account != null) { string userIdentifier = account.uniontId; TapTapCompliance.Startup(userIdentifier); }
|
完整代码请点击下载,然后替换代码中的 Clientid 与 ClientToken ,然后直接挂载到你的项目中进行测试。
五、常见问题
- 如何进行手动输入身份信息进行实名?
合规认证默认执行快速实名,当使用已经实名的 Tap 账号登录游戏,然后进行实名就会走快速认证不会弹出实名弹窗,回调方法中直接返回实名结果。
当执行实名方法前没有执行 Tap 登录操作时,会弹出让选择是否使用快速认证的按钮,如果点击【不使用】这时会弹出手动输入身份信息的弹窗。
- 执行登录操作时出现闪退,黑屏,或者报错
signature not match
请检查测试的 APK 的包名和签名是否和开发者后台配置的包名签名保持一致。获取 APK 的包名和签名的方法可以通过安装这个获取 APK md5 签名工具获取.
- 执行登录方法都是成功的,但是执行防沉迷方法一直回调返回 code =1200
这可能是因为你的应用是 V3 版本的不支持 V4 版本的 SDK。 请进入开发者后台查看自己的应用后台是否有内建账户、数据存储服务,如果有就说明是 V3 的应用。这时可以使用 V3 版本的 SDK ,或者提工单联系官方的技术支持将你的应用升级到 V4 版本,这样就可以使用 V4 版本的 SDK.