Facebook登录和谷歌登录之间的冲突 - iOS

时间:2015-07-19 23:01:14

标签: ios facebook google-signin

我已经在我的应用中成功通过Facebook部署了登录。然后,我尝试添加通过Google+登录的可能性,但是经过几个漫长的编码后,我放弃了一些人的帖子,这些帖子比我现在对目前存在的障碍的结论要先进得多:{{3 }}

我现在正尝试按照How can I login to google-plus using google-plus-ios-sdk-1.7.1 sdk?中看似简单的说明来实施Google登录。

然而,谷歌解释这种方式与通过Facebook运行登录所需的设置产生了一些冲突。 我试图通过使用Pod重写Facebook代码,并在安装Google登录的同时安装它,但我无法使其工作(仍然是阻碍通过Facebook进行身份验证的东西)。

4 个答案:

答案 0 :(得分:5)

以这种方式实施。

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


    if ([[url scheme] isEqualToString:FBTOKEN]) {
        return [FBSession.activeSession handleOpenURL:url];

        return [FBAppCall handleOpenURL:url
                      sourceApplication:sourceApplication
                            withSession:FBSession.activeSession];
    }
    else { 
            [GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation];

    }
  return YES;
}

答案 1 :(得分:2)

我为Google和Facebook实施了这种方式

func application(application: UIApplication,
    openURL url: NSURL,
    sourceApplication: String?,
    annotation: AnyObject) -> Bool {

        let options: [String: AnyObject] = [UIApplicationOpenURLOptionsSourceApplicationKey: sourceApplication!,
            UIApplicationOpenURLOptionsAnnotationKey: annotation]

            return FBSDKApplicationDelegate.sharedInstance().application(
                application,
                openURL: url,
                sourceApplication: sourceApplication,
                annotation: annotation) ||
            GIDSignIn.sharedInstance().handleURL(url, sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String, annotation: nil)

}

答案 2 :(得分:0)

检查是否在

中实现了GPPURLHandler方法
-(BOOL) application:(UIApplication *)application
              openURL:(NSURL *)url
    sourceApplication:(NSString *)sourceApplication
           annotation:(id)annotation { 

}
    -

答案 3 :(得分:-1)

这适用于Google登录版本2.4.0和Facebook ios SDK 4.10.0

1)删除方法

func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool 
来自AppDelegate的

2)实施如下:

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {



        if url.scheme == "fbxxxxxxxxxxxx" {
            return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
        }
        else {
            let options: [String: AnyObject] = [UIApplicationOpenURLOptionsSourceApplicationKey: sourceApplication!,
                UIApplicationOpenURLOptionsAnnotationKey: annotation]

            return FBSDKApplicationDelegate.sharedInstance().application(
            application,
            openURL: url,
            sourceApplication: sourceApplication,
            annotation: annotation) ||
            GIDSignIn.sharedInstance().handleURL(url, sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String, annotation: nil)
        }


    }

fb url方案取自Info.plist中的Url Schemes

相关问题