0

我正在使用 Xcode 7.2,在 iOS 9.2 上进行测试并使用 pod 'Google/SignIn'

登录成功并允许权限后,它会重定向到 google.co.in 页面,而不是关闭屏幕并调用他们的代理。在 OS 7.0 和 8.0 中同样可以正常工作。下面是用于登录的代码。

GIDSignIn*sigNIn=[GIDSignIn sharedInstance];
[sigNIn setDelegate:self];
[sigNIn setUiDelegate:self];
sigNIn.shouldFetchBasicProfile = YES;
sigNIn.allowsSignInWithBrowser = NO;
sigNIn.allowsSignInWithWebView = YES;
sigNIn.scopes = @[@"https://www.googleapis.com/auth/plus.login",@"https://www.googleapis.com/auth/userinfo.email",@"https://www.googleapis.com/auth/userinfo.profile"];
sigNIn.clientID =@"77904325793-iqdungs3ugddrf7h767pgagviokfi4cg.apps.googleusercontent.com";
[sigNIn signIn];



 - (BOOL)application:(UIApplication *)app
        openURL:(NSURL *)url
        options:(NSDictionary *)options {
return [[GIDSignIn sharedInstance] handleURL:url
                           sourceApplication:options[UIApplicationLaunchOptionsSourceApplicationKey]
                                  annotation:options[UIApplicationLaunchOptionsAnnotationKey]];


}

登录后重定向到 google.co.in 而不是关闭屏幕。

在此处输入图像描述

4

1 回答 1

2

我猜,是因为 iOS 9 中的 openUrl 函数发生了变化。

要解决此类问题,请根据可用的 iOS 版本对功能进行注释。

这是我为解决它所做的:

@available(iOS 9.0, *)
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {

    return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey]! as! String, annotation: options[UIApplicationOpenURLOptionsAnnotationKey])
}

@available(iOS 8.0, *)
func application(application: UIApplication,
    openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {

    return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: sourceApplication!, annotation: annotation)
}

让我知道这是否解决了您的问题。

于 2016-04-08T14:57:06.380 回答