2016-04-06 29 views
7

Sto utilizzando l'accesso a Google nella mia app iOS. Ho seguito il tutorial di Google (https://developers.google.com/identity/sign-in/ios/sign-in#add_the_sign-in_button) che utilizza un GIDSignInButton che l'utente deve fare clic. Quando clicca essa egli viene reindirizzato a Safari che assomiglia a questo:Selettore di account iOS per l'accesso a Google

enter image description here

Il problema di questo è che non ho più account Google e vorrei essere in grado di scegliere quale voglio usare. Ora ne basta uno automaticamente e tutto ciò che devo fare è premere "nega" o "consenti". Inoltre, non mi piace il fatto che l'app venga reindirizzata su Chrome. Idealmente quello che vorrei è qualcosa come l'applicazione Google Hangouts fa su iOS:

enter image description here

Esso mostra tutti i conti che avete usato per accedere a qualsiasi applicazione Google in precedenza e consente di decidere quali i utilizzare con l'app senza uscire dall'app. Su Android ho ottenuto qualcosa di simile a lavorare per la mia app:

enter image description here

Come posso ottenere questo tipo di comportamento (non lasciare app + selettore account) nel mio app iOS?

+0

Hai avuto alcuna soluzione? – diordna

risposta

3

Il motivo per cui sono in grado di farlo in Google Hangouts è perché è fatto da Google. Le aziende non sempre rendono disponibili tutte le funzionalità agli sviluppatori e questo è un ottimo esempio di ciò. Il motivo per cui sei riuscito a farlo in Android è stato il fatto che Google ha deciso di consentire agli sviluppatori un maggiore accesso a funzionalità diverse. Dopo tutto, Android è sviluppato da Google. Ora, per non lasciare l'app, puoi sempre utilizzare una visualizzazione Web incorporata. Ciò manterrà l'utente nell'app e comporterà invece una visualizzazione Web modale. Non è il migliore del mondo, ma è meglio che avere l'utente inviato da qualche altra parte. Hai provato questo codice:

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

Ho trovato questo sul link che hai postato. Non ho eseguito o testato il codice ma sembra presentare un controller di visualizzazione anziché inviarti a Safari. Questo potrebbe essere più simile a quello che vuoi.

Per rispondere alla domanda di Sam @:

"Come per accedere Google esistendo installato Google Apps invece di aprire l'URL in Safari?"

Probabilmente è possibile farlo con Android ma non con iOS. Questo è un altro esempio di qualcosa che è limitato a causa della piattaforma selezionata.

Ricordare qualsiasi opzione si finisce per scegliere sarà ancora necessario aderire a OAuth 2.0. Vorrei suggerire se possibile utilizzare ciò che Google ha costruito per gli sviluppatori iOS da utilizzare. Quando si tratta di selezionare un account diverso da quello predefinito, se si è scelto di seguire la guida e fare ciò che Google ha creato per gli sviluppatori iOS, è sufficiente toccare l'immagine del profilo e cambiare account.

TL; DR

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