在没有GIDSignInButton的情况下以编程方式启动Google Signin

问题描述 投票:9回答:5

有没有办法以编程方式启动Google SignIn而无需按下GIDSignInButton?

我正试图在用户必须登录的谷歌api周围打一个信号。

有点 :

googleSignInSignal().then(getPersonalDataSignal)
ios swift reactive-programming reactive-cocoa google-signin
5个回答
14
投票

您实际上可以调用此方法:

GIDSignIn.sharedInstance().signIn()

它对我来说很好,它似乎是一个更清洁的方法。

我希望它可以帮助有同样问题的人。


1
投票

你可以尝试这样的东西 - 不漂亮,但有效:

GIDSignInButton *googleButton  =[[GIDSignInButton alloc] init];
[googleButton sendActionsForControlEvents:UIControlEventTouchUpInside];

0
投票

我已经回答了answer to same question,它对我有用。我已经完成了所有步骤并创建了签名按钮的出口

@property (retain, nonatomic) IBOutlet GIDSignInButton *googleSigninbtn;

并使用此按钮作为

[self.googleSigninbtn sendActionsForControlEvents:UIControlEventTouchUpInside];

我已经从故事板中隐藏了这个按钮,并在我自己的按钮的动作中添加了这个代码,它可以工作。


0
投票

我正在调用GIDSignIn.sharedInstance()。signIn()但是在调用后Google没有显示出用于OAuth的固定WebView。此外,未在配置的GIDSignInUIDelegate或GIDSignInDelegate对象上触发事件。

问题是在我的UIViewController中,我在调用signIn()之前调用了dismiss()。如果您已经解除了视图控制器,Google的UI将不会弹出。


-1
投票

最终我最后只是打电话

        let signIn = GIDSignIn.sharedInstance()
        signIn.delegate = self
        signIn.uiDelegate = uiDelegate

        if silent {
            signIn.signInSilently()
        }
        else {
            signIn.signIn()
        }
© www.soinside.com 2019 - 2024. All rights reserved.