使用第三方登錄無法獲取授權信息的可能原因。


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM