ios - 处理 openURL : with Facebook and Google

标签 ios facebook cocoa-touch oauth-2.0

我的应用中的用户可以使用 2 种服务登录:Facebook 或 Google

一切正常,但是,在 :

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation: (id)annotation {
    ...
}

我应该决定调用 Facebook 回调还是 Google 回调

如果用户有应用程序,这比我由 sourceApplication 决定的要容易 但如果不是(没有本地 Facebook 帐户链接,没有 FB 应用程序,没有 GooglePlus 应用程序),它会链接到浏览器 :( 我不知道它是来自 Facebook 还是来自 Google

有没有办法决定调用什么?喜欢

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation: (id)annotation {

    // how to decide?
    if (facebook) {

        return [FBSession.activeSession handleOpenURL:url];

    } else if (google) {

        return [GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation];

    }

}

最佳答案

我们不需要显式检查 URL,下面的代码可以做到:

- (BOOL)application: (UIApplication *)application openURL: (NSURL *)url sourceApplication: (NSString *)sourceApplication annotation: (id)annotation
{

    if ([GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation]) {
        return YES;
    }else if([FBAppCall handleOpenURL:url sourceApplication:sourceApplication]){
        return YES;
    }

    return NO;
}

关于ios - 处理 openURL : with Facebook and Google,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50364597/

相关文章:

facebook - Social Graph API 返回的 Facebook 字段列表

java - 未生成 key 哈希

facebook - channel 文件和CDN

objective-c - NSArray 上的 IOS 类别导致 "instance message does not declare a method with selector"

objective-c - 8192x8192 UIView 滞后

iphone - 如何对文本进行自动换行?

iphone - 企业 iPhone 应用程序无线分发的安全性 - OTA iOS

ios - 在 iOS 中,删除所有自定义注释并添加新的自定义注释的正确方法是什么?

ios - swift-无法使用 AutoLayout 在 UIScrollView 中将 UIImageView 居中

ios - NSDateFormatter - 添加一年?