GTaSDK 主要为游戏发行海外地区(港澳台除外)提供登录功能。
接口描述:获取用户账号是否绑定的信息以及 token 值。
注意:选择是否需要遮罩,在 YES 时,调用该接口在界面上会有 loading 框,直到获取成功或失败,loading 框才会消失。
接口调用:
NSDictionary *parameters = @{
@"isMask":@(YES) // 是否加loading框提示,NO为不加loading框提示
};
[SuperSDK invoke:@"platform" funcName:@"accountInfoJson" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
// 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
// 1.回调参数解析
NSDictionary *retParam = nil;
if (result) {
NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue]; // 状态码
NSString *msg = [retParam objectForKey:@"msg"]; // 说明
// 2.回调参数判断
if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
if ([funcName isEqualToString:@"accountInfoJson"]) {// 获取当前登录用户的账号信息回调
if (code==BCORE_SUCCESS) {
NSDictionary *accountInfo = [retParam objectForKey:@"data"];
NSLog(@"获取用户账号信息成功,账号信息为:%@", accountInfo);
}
else {
NSLog(@"获取用户账号信息失败,原因为:%@", msg);
}
}
}
}
日志打印:
moduleName : platform,
funcName : accountInfoJson,
result : {
"msg":"账号信息获取成功",
"data":{
"google":0,
"gamecenter":0,
"twitter":0,
"yahoo":0,
"korea":0,
"facebook":0,
"apple":0,
"token":"3868561223eb8432b9bedc0e8597f0c4",
"livespace":0,
"gta":1
},
"code":1
}
接口描述:根据 bindType 的对应的 value 值来跳转不同的绑定界面,绑定类型有 GTA、Facebook。
接口调用:
NSDictionary *parameters = @{
@"bindType":@"GTA" // bindType 取值有 GTA、Facebook
};
[SuperSDK invoke:@"platform" funcName:@"showAccountLinkJson" parameters:parameters];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
// 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
// 1.回调参数解析
NSDictionary *retParam = nil;
if (result) {
NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue]; // 状态码
NSString *msg = [retParam objectForKey:@"msg"]; // 说明
// 2.回调参数判断
if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
if ([funcName isEqualToString:@"showAccountLinkJson"]) {// 账号绑定回调
if (code ==BCORE_SUCCESS) {
NSString *accountType = [retParam objectForKey:@"data"];
NSLog(@"绑定账号成功,绑定的账号类型为:%@", accountType);
}
else {
NSLog(@"绑定账号失败,原因为:%@", desc);
}
}
}
}
回调日志:
moduleName : platform,
funcName : showAccountLinkJson,
parameters : {
"msg" : "账号绑定成功",
"data" : "GTA",
"code" : 1
}
接口描述:获取某用户在 facebook 中的用户 ID 号。
接口调用:
[SuperSDK invoke:@"platform" funcName:@"getfbid" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
// 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
// 1.回调参数解析
NSDictionary *retParam = nil;
if (result) {
NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue]; // 状态码
NSString *msg = [retParam objectForKey:@"msg"]; // 说明
// 2.回调参数判断
if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
if ([funcName isEqualToString:@"getfbid"]) {// 获取facebook登录的facebookID回调
if (code==BCORE_SUCCESS) {
NSString * facebookID = [retParam objectForKey:@"data"];
NSLog(@"获取facebookID成功,facebookID为:%@", facebookID);
}
else {
NSLog(@"获取facebookID失败,原因为:%@", desc);
}
}
}
}
日志打印:
moduleName : platform,
funcName : getfbid,
parameters : {
"msg" : "获取facebookID成功",
"data" : "305129846360359",
"code" : 1
}
接口描述:查询当前用户是否已绑定邮箱。
接口调用:
[SuperSDK invoke:@"platform" funcName:@"queryBindEmail" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
// 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
// 1.回调参数解析
NSDictionary *retParam = nil;
if (result) {
NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue]; // 状态码
NSString *msg = [retParam objectForKey:@"msg"]; // 说明
// 2.回调参数判断
if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
if ([funcName isEqualToString:@"queryBindEmail"]) {// 查询当前用户是否已绑定邮箱回调
if (code==BCORE_SUCCESS) {
NSString *email = [retParam objectForKey:@"data"];
NSLog(@"当前账号已绑定邮箱,邮箱为:%@", email);
}
else {
NSLog(@"当前账号尚未绑定邮箱");
}
}
}
}
日志打印:
moduleName : platform,
funcName : queryBindEmail,
parameters : {
"msg" : "该账号已绑定邮箱",
"data" : "1003265311@qq.com",
"code" : 1
}
接口描述:查询 GTa 用户的用户名。
接口调用:
[SuperSDK invoke:@"platform" funcName:@"queryGTaUserName" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
// 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
// 1.回调参数解析
NSDictionary *retParam = nil;
if (result) {
NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue]; // 状态码
NSString *msg = [retParam objectForKey:@"msg"]; // 说明
// 2.回调参数判断
if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
if ([funcName isEqualToString:@"queryGTaUserName"]) {// 查询当前用户是否已绑定邮箱回调
if (code==BCORE_SUCCESS) {
NSString *username = [retParam objectForKey:@"data"];
NSLog(@"查询的GTa账号用户名为:%@", username);
}
else {
NSLog(@"没有查询到GTa账号用户名");
}
}
}
}
日志打印:
moduleName : platform,
funcName : queryGTaUserName,
parameters : {
"msg" : "queryGTaUserName success",
"data" : "1003265311@qq.com",
"code" : 1
}
接口描述:打开绑定邮箱页面让用户绑定密保邮箱。
接口调用:
[SuperSDK invoke:@"platform" funcName:@"showBindEmail" parameters:nil];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
// 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
// 1.回调参数解析
NSDictionary *retParam = nil;
if (result) {
NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue]; // 状态码
NSString *msg = [retParam objectForKey:@"msg"]; // 说明
// 2.回调参数判断
if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
if ([funcName isEqualToString:@"showBindEmail"]) {// 打开绑定邮箱页面回调
if (code==BCORE_SUCCESS) {
NSString *email = [retParam objectForKey:@"data"];
SLog(@"当前账号绑定邮箱成功,邮箱为:%@", email);
}
else {
NSLog(@"当前账号绑定邮箱失败,原因为%@", desc);
}
}
}
}
日志打印:
moduleName : platform,
funcName : showBindEmail,
parameters : {
"msg" : "绑定邮箱成功",
"data" : "1003265311@qq.com",
"code" : 1
}
接口描述:传入 GTa 语言参数可更换 GTa 和客服语言。
接口调用:
NSDictionary *parameters = @{
@"languagePath" : @"ko" // 语言参数
};
[SuperSDK invoke:@"platform" funcName:@"setLanguagePath" parameters:parameters];
参数 支持以下几种语言(16种):
语言标识符 | 语言描述 |
---|---|
ar | 阿拉伯语 |
de | 德语 |
en | 英语 |
es | 西班牙语 |
fr | 法语 |
in | 印尼语 |
ja | 日文 |
ko | 韩语 |
pl | 波兰语 |
pt | 葡萄牙语 |
ru | 俄语 |
th | 泰语 |
tr | 土耳其语 |
zh | 中文繁体 |
zh_cn | 中文简体 |
vi | 越南语 |
接口描述:游客单登录接口,自动创建并登录游客,不弹出游客登录框(静默登录)。
注意:该接口适用于 SuperSDK 母包,但需要将母包中的 SuperSDK.framework 更新到最新版本。
接口调用:
[SuperSDK invoke:@"platform" funcName:@"GuestSingleLogin" parameters:nil];
接口回调:
- (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result {
// 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
// 1.回调参数解析
NSDictionary *retParam = nil;
if (result) {
NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue]; // 状态码
NSString *msg = [retParam objectForKey:@"msg"]; // 说明
// 2.回调参数判断
if ([moduleName isEqualToString:@"platform"]) {// 平台模块回调
if ([funcName isEqualToString:@"GuestSingleLogin"]) {// 游客单登录回调
if (code == BCORE_SUCCESS) {
//游客单登陆成功,需要将osdk_ticket拿到游戏服务器去验证一下,以确定用户信息的合法性
NSDictionary *data = [retParam objectForKey:@"data"]; // 回调data数据
NSString *ticket = [data objectForKey:@"osdk_ticket"];//拿到ticket 去游戏服务器做登陆验证
}
else {
NSLog(@"游客单登陆失败,code=%d ,原因是 %@",code, msg);
}
}
}
}
日志打印:
moduleName : platform,
funcName : GuestSingleLogin,
result : {
"msg":"登录成功",
"data":{
"status":1,
"msg":"登录成功",
"osdk_ticket":"eyJvc2RrX2dhbWVfaWQiOiIxOTYzNzgwNzIiLCJ1c2VyX2lkIjoiMTY2NjkzOTc4MTY5NDQ2NjQ4NTY5ODU0MCIsImxvZ2luX3Nka19uYW1lIjoiZ3RhcmNhZGUiLCJjaGFubmVsX2lkIjoiMCIsImV4dGVuZCI6IjIxNDd8MjAxODQwMHwxODQ5IiwiYWNjb3VudF9zeXN0ZW1faWQiOiIwMDYwMDE1Iiwib3Nka191c2VyX2lkIjoiMDA2MDAxNV8xNjY2OTM5NzgxNjk0NDY2NDg1Njk4NTQwIiwiaXAiOiI0NS40MC42MC4yMTciLCJjb3VudHJ5IjoiMDAiLCJ0aW1lIjoxNjY5Njg4NjYxLCJzaWduIjoiYmM3NTBiY2U4YjkwODhkYTc2M2ViZGYzNmNhZjY4YjYifQ==",
"userinfo":{
"user_id":"1666939781694466485698540",
"login_sdk_name":"gtarcade"
}
},
"code":1
}
接口描述:游客升级接口。
注意:该接口只有升级成功时有回调。
接口调用:
[SuperSDK invoke:@"platform" funcName:BCORE_FUNC_GUEST_UPGRADE parameters:nil];
接口描述:可选择第三方登录方式。
登录方式:GTALogin、FacebookLogin、AppleLogin。
接口调用:
NSDictionary *parameters = @{
@"otherFuncName" : @"GTALogin" // GTALogin、FacebookLogin、AppleLogin
};
[SuperSDK invoke:@"platform" funcName:@"otherFunction" parameters:parameters];
说明:参考 海外拓展接口
接口描述:打开用户隐私协议。
注意:只支持日本地区。
接口调用:
NSDictionary *params = @{
@"type" : @"JP"
};
[SuperSDK invoke:@"platform" funcName:@"openUserAgreement" parameters:params];
接口回调:
+ (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result
{
// 处理SuperSDK回调逻辑,注意,所有模块回调都在这里。
NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
// 1.回调参数解析
NSDictionary *retParam = nil;
if (result) {
NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
if (jsonData) {
retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
}
}
int code = [[retParam objectForKey:@"code"] intValue]; // 状态码
NSString *msg = [retParam objectForKey:@"msg"]; // 说明
// 2.回调参数判断
if ([moduleName isEqualToString:@"platform"]) {// platform模块回调
if ([funcName isEqualToString:@"openUserAgreement"]) {// 获取打开协议的回调
if (code==BCORE_SUCCESS) {
NSDictionary *tmpDic = [retParam objectForKey:@"data"];
NSLog(@"打开协议成功:%@", tmpDic);
}else {
NSLog(@"打开协议失败,原因为:%@", msg);
}
}
}
}
日志打印:
moduleName : platform,
funcName : openUserAgreement,
result : {
"msg" : "用户同意了协议",
"data" : "JP",
"code" : 1
}