項目中的第三方登錄本來好好的,可以拿到授權信息,但是過了大概半個月,去看的時候發現授權之后怎么都拿不到第三方賬號的信息了,糾結了好多天,准備從友盟換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; }