2016-04-06 31 views
7

Tôi đang sử dụng Đăng nhập bằng Google trong ứng dụng iOS của mình. Tôi theo hướng dẫn của Google (https://developers.google.com/identity/sign-in/ios/sign-in#add_the_sign-in_button) sử dụng GIDSignInButton mà người dùng phải nhấp vào. Khi nhấp vào nút anh được chuyển hướng đến Safari mà trông như thế này:Trình chọn tài khoản iOS Đăng nhập bằng Google

enter image description here

Vấn đề ở đây là tôi có nhiều tài khoản Google và muốn để có thể chọn cái nào tôi muốn sử dụng. Bây giờ nó chỉ mất một trong số họ tự động và tất cả những gì tôi phải làm là nhấn "từ chối" hoặc "cho phép". Ngoài ra, tôi không thích thực tế là ứng dụng được chuyển hướng đến Chrome. Lý tưởng nhất là những gì tôi muốn là một cái gì đó giống như ứng dụng Google Hangouts có trên iOS:

enter image description here

Nó cho bạn thấy tất cả các tài khoản mà bạn đã sử dụng để đăng nhập vào bất kỳ ứng dụng Google trước đây và cho phép bạn quyết định những sự sử dụng với ứng dụng mà không cần rời khỏi ứng dụng. Trên Android tôi có một cái gì đó tương tự như làm việc cho ứng dụng của tôi:

enter image description here

Làm thế nào tôi có thể đạt được loại hành vi (không rời khỏi ứng dụng + trình chọn tài khoản) trong ứng dụng iOS của tôi?

+0

Bạn có nhận được bất kỳ giải pháp? – diordna

Trả lời

3

Lý do họ có thể thực hiện việc đó trong Google Hangouts là do Google tạo ra. Các công ty không phải lúc nào cũng làm mọi tính năng có sẵn cho các nhà phát triển và đây là một ví dụ điển hình của nó. Lý do bạn có thể làm điều này trong Android là bởi vì Google đã quyết định cho phép các nhà phát triển truy cập nhiều hơn vào các tính năng khác nhau. Sau khi tất cả, android được phát triển bởi Google. Bây giờ là không rời khỏi ứng dụng, bạn luôn có thể sử dụng chế độ xem web được nhúng. Điều này sẽ giữ người dùng trong ứng dụng và thay vào đó bật lên chế độ xem web một cách bình thường. Nó không phải là tốt nhất trên thế giới, nhưng là tốt hơn so với việc có người dùng gửi ở một nơi khác. Bạn đã thử mã này chưa:

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

Tôi tìm thấy điều này trên liên kết mà bạn đã đăng. Tôi đã không chạy hoặc thử nghiệm mã nhưng nó xuất hiện để trình bày một bộ điều khiển xem thay vì gửi bạn đến safari. Điều này có thể phù hợp hơn với những gì bạn muốn.

Để trả lời câu hỏi của @ Sam:

"Cách đăng nhập Google bằng ứng dụng hiện có của Google thay vì mở URL trong Safari?"

Bạn có thể thực hiện việc này bằng Android nhưng không phải với iOS. Đây là một ví dụ khác về một cái gì đó bị hạn chế vì nền tảng được chọn.

Hãy nhớ bất kỳ tùy chọn nào bạn chọn sẽ vẫn được yêu cầu tuân thủ OAuth 2.0. Tôi sẽ đề nghị nếu có thể bằng cách sử dụng những gì Google đã xây dựng cho các nhà phát triển iOS để sử dụng. Khi chọn một tài khoản khác với tài khoản mặc định, nếu bạn chọn theo hướng dẫn và thực hiện những gì Google tạo cho nhà phát triển iOS, bạn có thể chỉ cần nhấn vào hình ảnh tiểu sử và chuyển đổi tài khoản.

TL; DR

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

Các vấn đề liên quan