我正在使用适用于IOS的Google Sign-In SDK 2.1.0。
在我的登录ViewController中我只需将google登录按钮添加到我的视图
GIDSignIn.sharedInstance().uiDelegate = self
self.googleLoginBtn = GIDSignInButton(frame: CGRectMake(0, 0, 200, 60))
self.view.addSubview(self.googleLoginBtn)
我有2个测试设备,在其中一个安装了Youtube App的设备中,当点击登录btn时,打开Youtube应用程序并登录并返回我的应用程序。哪作得很完美。
在安装了一些旧应用的其他设备中,它会显示此错误
<GIDSignIn: 0x167b97b0> error: Error Domain=com.google.GIDSignIn Code=-3 "No sign-in handlers installed" UserInfo=0x17fe0bf0 {NSLocalizedDescription=No sign-in handlers installed}
所以...处理这个问题的常见做法是什么?
覆盖它并显示用户登录的webview?
或提示他们没有Google登录处理程序应用程序??
感谢。
//更新 我发现在工作的模拟器中,即使没有安装其他应用程序,它也会提供一个用于登录的viewController。
但似乎他们没有在我的应用程序中调用两个iphone(我确实设置了一个断点来验证这一点)
// Present a view that prompts the user to sign in with Google
func signIn(signIn: GIDSignIn!,
presentViewController viewController: UIViewController!) {
self.presentViewController(viewController, animated: true, completion: nil)
}
// Dismiss the "Sign in with Google" view
func signIn(signIn: GIDSignIn!,
dismissViewController viewController: UIViewController!) {
self.dismissViewControllerAnimated(true, completion: nil)
}
答案 0 :(得分:0)
如果你看这个SDK的演示。
- (void)toggleAllowSignInWithBrowser:(UISwitch *)sender {
[GIDSignIn sharedInstance].allowsSignInWithBrowser = sender.on;
}
- (void)toggleAllowSignInWithWebView:(UISwitch *)sender {
[GIDSignIn sharedInstance].allowsSignInWithWebView = sender.on;
}
所以你必须将BOOL状态设置为on或off(即YES或NO)
[GIDSignIn sharedInstance].allowsSignInWithWebView = YES;
答案 1 :(得分:0)
嘿,我遇到了类似的错误,并找到解决此问题的方法。看看我对这个问题的回答: Not fetch Google user when handle sign in with another Google app using GIDSignIn
我发现当我必须使用自己的clientserverid时,它会给我一个错误或一个错误代码。你需要使用clientserverid吗?