Ios linkload
【非必接】帐号绑定/载入/解绑第三方账户(Link/Load)
本文档将说明L提供的ID和社交账号的绑定功能(主要用于变更机种)。该功能可以使一个不同的设备返回相同的LID,从而使玩家可以在不同的设备上玩同一个游戏进度。 1, 一般海外游戏使用较多,中国游戏基本不需要使用,因为中国游戏基本最上层会套用一个强账号系统的渠道SDK,所以可以通过渠道强账号进行切换设备。 2, LCM支持L用户与第三方帐号(Facebook、一次性变更机种随机码、GameCenter等)的绑定,帮助用户在不同设备上玩同一个帐号, 3, 您可以通过User类的相关方法获取该用户支持的绑定方式,并通过link/load/unlink等方法进行绑定、载入与解绑操作。 4, 同时,还提供了linkOrLoad方法,来帮助开发者直接绑定或载入(用户若未绑定过该社交帐号,直接link并返回,若绑定过社交帐号,直接load并返回), linkOrLoad可以帮助开发者模拟使用第三方帐号登录,详细使用方式,可以参照Sample APP,Pickle |
Link/Load概念效果图(仅供参考):
设备号与LID与社交号的关系图:
其中Store Account为设备号(google上是google play的acount, iOS上设备信息),Facebook Account是社交账号。
Link/Load支持的社交账号类型
商店类型 | link/load方式 |
---|---|
大陆 | 1.wechat(微信) 2.phoneno(手机号) 3.OneTimeCode(一次性变更机种随机码) 4. gamecenter(苹果only) |
亚太 | 1. OneTimeCode(一次性变更机种随机码) 2. Facebook 3. gamecenter(苹果only) 4. line |
获取支持的社交类型 Sample code from Pickle
/**
* 【link/load】
* 获取link/load支持的社交类型
* 推荐App在初始化的时候就获取可绑定的社交类型,并在内存中储存,
* 以便用户在需要绑定的时候可以直接操作
**/
- (void)fetchLinkInfo:(LCMUser*)user{
[user getLinkInfo:^(NSMutableArray *socialInfoArr, LCMError *error) {
if (error) {
NSLog(@"getLinkInfoError: %@",error);
}else{
//储存支持的社交绑定类型
socialInfoArray = socialInfoArr;
NSLog(@"linkInfo: %@",socialInfoArray);
}
}];
}
绑定社交帐号 Sample code from Pickle
//【link/load】
//App初始化时获取了所有支持的社交绑定的类型
//这里,将用户在UI界面选择的社交类型传入linkAccount方法进行绑定
LCMSocialInfo *socialInfo = [socialInfoArray objectAtIndex:buttonIndex-1];
//根据选择的社交类型,进行社交帐号的绑定
[ur linkAccount:socialInfo withCallback:^(NSString *socialType, NSString *socialAccount, LCMError *error) {
if (error) {
//错误处理,显示UI通知用户绑定失败
NSLog(@"onLinkError: %@",error.errorMessage);
UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"Link error"
message:error.errorMessage
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}else{
//绑定成功,socialType会返回成功绑定的社交类型,socialAccount会返回绑定的社交帐号
NSLog(@"onLinkSuccess, socialType: %@, socialAccount: %@",socialType,socialAccount);
NSString* msg = [[NSString alloc] initWithFormat:@"SocialType: %@\nSocialAccount: %@",socialType,socialAccount];
UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"Link successed"
message:msg
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
}];
载入绑定的社交帐号 Sample code from Pickle
//【link/load】
//载入绑定的社交帐号
//同link接口,首先从App初始化时获得的社交支持类型获取用户的选择
LCMSocialInfo *socialInfo = [socialInfoArray objectAtIndex:buttonIndex-1];
//如果是onetimecode,即一次性绑定码,则需弹出UI界面,提示用户输入link时拿到的码
if([socialInfo.socialType isEqualToString:@"oneTimeCode"]){
MyUIAlertView *alert = [[MyUIAlertView alloc] initWithTitle:@"Enter OneTimeCode"
message:@" "
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
alert.tag = ONE_TIME_CODE_INPUT_ALERT;
alert.data = socialInfo;
[alert show];
}else{
//若非一次性绑定码,则调起loadAccount
[self doLoadAccount:socialInfo];
}
解绑社交帐号 Sample code from Pickle
//【link/load】
//解绑社交帐号
//同link接口,首先从App初始化时获得的社交支持类型获取用户的选择
//只需传入社交类型,API会调起相应的社交SDK进行auth,并对auth完成的社交帐号进行解绑
LCMSocialInfo *socialInfo = [socialInfoArray objectAtIndex:buttonIndex-1];
//调用unlinkAccount接口进行解绑
[ur unlinkAccount:socialInfo withCallback:^(BOOL isSuccess, LCMError *error) {
if (error) {
//错误处理,提示用户解绑失败
NSLog(@"onUnlinkError: %@",error.errorMessage);
UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"Unlink error"
message:error.errorMessage
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}else{
//解绑成功,同样提示用户
NSLog(@"onUnlinkSuccess");
NSString* msg = [[NSString alloc] initWithFormat:@"Unlink success!\nSocialType: %@",socialInfo.socialType];
UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"Unlink successed"
message:msg
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
}];
具体请参考
Pickle/ViewController.m
搜索【link/load】