ios - Google SignIn SFSafariViewController/WebView 在接受权限后重定向到 Google.com

标签 ios objective-c google-signin

我正在尝试实现使用 Cocoapods 安装的新 Google SignIn 库。部署目标是 8.4,我在 9.0.2 设备中进行测试。

1-我有正确的 plist 文件,其中包含 clientID 和 reverseID

2- 我已设置 URL 类型

3- 我将 AppDelegate 作为 GIDSignIn [GIDSignIn sharedInstance].delegate = self; 的委托(delegate),并实现了正确的委托(delegate)方法来捕获回调 - (void)signIn:( GID登录 *)登录 didSignInForUser:(GIDGoogleUser *)用户 withError:(NSError *)错误

4- 我有 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication 注释:(id)注释 {返回[[GIDSignIn共享实例]handleURL:url 源应用程序:源应用程序 注释:注释]; }

5-我使用自动 GIDSignInButton 类并放置在 UIViewController 的子类中,因此我不需要实现 GIDSignIn uiDelegate 方法。但我仍然在 viewDidLoad 中设置了 [[GIDSignIn sharedInstance] setUiDelegate:self];

6-我在链接库中有 SFSafariViewController.framework。

7-我从未手动将 clientID 设置为 GIDSignIn,因为这不是 google 官方文档中的说明的一部分。尽管很多人一直这样做,但我不知道为什么。

问题:一旦我按下登录按钮,就会出现一个 SFSafariViewController,我选择我想要使用的帐户(请注意,即使我安装了多个应用程序,它也不会从我的应用程序进入任何其他谷歌应用程序进行身份验证)。权限已显示,我看到我在 Google 开发者控制台中配置的应用程序的名称和 Logo ,我接受权限。 SFSafariViewController 回退到“www.google.com”,仅此而已。关闭此屏幕的唯一方法是点击右上角的“确定”按钮,然后点击 - (void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)用户 withError:(NSError *)error 被调用,错误提示所使用的已取消登录过程。

最佳答案

解决掉就好了。当您使用 CocoaPods 时,似乎您必须设置

swift :

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
    return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: sourceApplication, annotation: annotation)
}

对象-c

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    return [[GIDSignIn sharedInstance] handleURL:url sourceApplication:sourceApplication annotation:annotation];
}

在你的appDelegate中。现在,在接受权限后,您将被重定向到您的应用程序。

更多信息:https://developers.google.com/identity/sign-in/ios/sign-in

关于ios - Google SignIn SFSafariViewController/WebView 在接受权限后重定向到 Google.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33907831/

相关文章:

ios - 当用户按下按钮时,如何在我的 swift 应用程序中切换到另一个 viewController?

ios - 滑动菜单 - 从右向左移动并向后移动

ios - ios 中长时间运行的后台任务

iOS 更改 UIViewController

java - 适用于 Android 的 Google 登录 - 发布与调试

android - Google 登录不适用于受信任的 Web Activity (TWA) 发行版 apk,但适用于调试 apk

c# - 如何在 DialogViewController 上将背景设置为透明

ios - iCloud NSMetadataQuery 和更新 (NSMetadataQueryUpdateChangedItemsKey)

iOS SDK : Renaming a lot of classes

iphone - 导航 iPhone 应用程序的核心数据最佳实践问题