項目中的第三方登錄本來好好的,可以拿到授權信息,但是過了大概半個月,去看的時候發現授權之后怎么都拿不到第三方賬號的信息了,糾結了好多天,准備從友盟換ShareSDK,demo都寫好了,准備換的時候發現自己的代碼設置里有這樣一段代碼,是iOS9之后官方推薦的設置回調的方法。
//iOS9之后官方推薦用此方法
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
NSLog(@"options %@", options);
if (![BeeCloud handleOpenUrl:url]) {
//handle其他類型的url
}
return YES;
}
因為用到的第三方SDK比較多,設置的時候又沒有多想,直接復制粘貼,結果在這個回調設置中沒有對友盟的進行處理,修改之后就可以拿到授權信息了。
//iOS9之后官方推薦用此方法
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
NSLog(@"options %@", options);
if (![BeeCloud handleOpenUrl:url]) {
//handle其他類型的url
BOOL result = [UMSocialSnsService handleOpenURL:url];
return result;
}
return YES;
}
之前只是在這兩段代碼設置了友盟的:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [UMSocialSnsService handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
BOOL result = [UMSocialSnsService handleOpenURL:url];
if (result == FALSE) {
//調用其他SDK,例如支付寶SDK等
if (![BeeCloud handleOpenUrl:url]) {
//handle其他類型的url
}
}
return result;
}
