我已经在我的应用中成功通过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进行身份验证的东西)。
答案 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