2016-04-06 15 views
7

Używam logowania do Google w mojej aplikacji na iOS. Śledziłem samouczek Google'a (https://developers.google.com/identity/sign-in/ios/sign-in#add_the_sign-in_button), który wykorzystuje przycisk GIDSignInButton, który użytkownik musi kliknąć. Kiedy go kliknie on przekierowany do Safari, który wygląda tak:Logowanie przez konto Google i wybieranie konta na konto iOS

enter image description here

Problem polega na tym, że mam wiele kont Google i chciałbyś, aby móc wybrać, który z nich chcę używać. Teraz wystarczy jeden z nich automatycznie i wszystko, co muszę zrobić, to nacisnąć "odmówić" lub "pozwolić". Ponadto nie podoba mi się fakt, że aplikacja jest przekierowywana do Chrome. Idealnie co chciałbym coś takiego jak aplikacja Google Hangouts działa na iOS:

enter image description here

To pokazuje wszystkie rachunki, które zostały użyte do zalogowania się do dowolnej aplikacji Google poprzednio i pozwala zdecydować, które z nich to korzystać z aplikacji bez opuszczania aplikacji. W Androidzie mam coś podobnego materiału dla mojej aplikacji:

enter image description here

Jak mogę osiągnąć ten rodzaj zachowań (nie opuszczają App + wybierania konta) w mojej aplikacji na iOS?

+0

Dostałeś jakieś rozwiązania? – diordna

Odpowiedz

3

Dzieje się tak dlatego, że robią to Google Hangouts. Firmy nie zawsze udostępniają deweloperom każdą dostępną funkcję i jest to doskonały przykład. Powodem, dla którego udało Ci się to zrobić w Androidzie, było to, że Google postanowił umożliwić programistom większy dostęp do różnych funkcji. W końcu Android jest rozwijany przez Google. Teraz, nie opuszczając aplikacji, zawsze możesz użyć wbudowanego widoku internetowego. Spowoduje to, że użytkownik pozostanie w aplikacji, a zamiast tego wyświetli się widok sieciowy. Nie jest najlepszy na świecie, ale jest lepszy niż wysłanie użytkownika w inne miejsce. Czy wypróbowałeś ten kod:

// Implement these methods only if the GIDSignInUIDelegate is not a subclass of 
// UIViewController. 

// Stop the UIActivityIndicatorView animation that was started when the user 
// pressed the Sign In button 
func signInWillDispatch(signIn: GIDSignIn!, error: NSError!) { 
    myActivityIndicator.stopAnimating() 
} 

// 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) 
} 

Znalazłem to na opublikowanym przez Ciebie linku. Nie uruchomiłem ani nie przetestowałem kodu, ale wydaje mi się, że przedstawiam kontroler widoku zamiast wysyłać cię na safari. Może to być bardziej zgodne z tym, co chcesz.

Aby odpowiedzieć @ Sama pytanie:

„Jak się zalogować do Google przez istniejące zainstalowane aplikacje Google zamiast otwierania URL w Safari?”

Prawdopodobnie można to osiągnąć z Androidem, ale nie z iOS. To kolejny przykład czegoś, co jest ograniczone z powodu wybranej platformy.

Pamiętaj, że niezależnie od wybranej opcji będziesz musiał przestrzegać OAuth 2.0. Sugerowałbym, jeśli w ogóle możliwe, wykorzystanie tego, co zbudował Google dla programistów iOS. Jeśli chodzi o wybór innego konta niż domyślnego, jeśli zdecydujesz się postępować zgodnie z przewodnikiem i zrobić to, co Google stworzył dla programistów iOS, możesz po prostu dotknąć obrazu profilu i przełączyć konta.

TL; DR

https://www.youtube.com/watch?time_continue=227&v=-26DGO_E1ds

Powiązane problemy