2016-04-06 13 views
7

मैं अपने आईओएस ऐप में Google साइन-इन का उपयोग कर रहा हूं। मैंने Google ट्यूटोरियल (https://developers.google.com/identity/sign-in/ios/sign-in#add_the_sign-in_button) का पालन किया जो एक GIDSignInButton का उपयोग करता है जिसे उपयोगकर्ता को क्लिक करना है। उस पर क्लिक करने से वह सफारी पर भेज दिया जाएगा जो इस तरह दिखता है:Google साइन-इन आईओएस खाता पिकर

enter image description here

इस के साथ समस्या यह मैं अधिक Google खाते हैं और लेने के लिए जो एक मैं प्रयोग करना चाहते हैं सक्षम होने के लिए चाहते हैं कि है। अब यह स्वचालित रूप से उनमें से एक लेता है और मुझे बस इतना करना है कि "अस्वीकार करें" या "अनुमति दें" दबाएं। साथ ही, मुझे यह तथ्य पसंद नहीं है कि ऐप को क्रोम पर रीडायरेक्ट किया जाता है। आदर्श रूप में मैं क्या चाहते हो जाएगा गूगल Hangouts एप्लिकेशन की तरह कुछ iOS पर करता है:

enter image description here

यह आप सभी खातों है कि आपने पहले किसी भी Google एप्लिकेशन में साइन इन करने का इस्तेमाल किया है दिखाता है और आप तय कर सकते हैं कि कौन सा ऐप छोड़ने के बिना ऐप के साथ उपयोग करें।

enter image description here

मैं इस तरह का व्यवहार कैसे प्राप्त कर सकते अपने iOS एप्लिकेशन में (एप्लिकेशन + खाता चयनकर्ता मत छोड़ो): एंड्रॉयड पर मैं अपने ऐप के लिए काम कुछ इसी तरह मिल गया?

+0

आप किसी भी समाधान मिला? – diordna

उत्तर

3

Google Hangouts में ऐसा करने में वे कारण हैं क्योंकि यह Google द्वारा बनाया गया है। कंपनियां हमेशा डेवलपर्स के लिए उपलब्ध हर सुविधा नहीं बनाती हैं और यह इसका एक प्रमुख उदाहरण है। एंड्रॉइड में ऐसा करने का कारण यह था क्योंकि Google ने डेवलपर्स को विभिन्न सुविधाओं तक पहुंचने की अनुमति देने का निर्णय लिया था। आखिरकार, एंड्रॉइड Google द्वारा विकसित किया गया है। अब ऐप को नहीं छोड़ने के लिए आप हमेशा एक एम्बेडेड वेब व्यू का उपयोग कर सकते हैं। यह उपयोगकर्ता को ऐप में रखेगा और इसके बजाय वैकल्पिक रूप से एक वेब दृश्य पॉप अप करेगा। यह दुनिया में सबसे अच्छा नहीं है, लेकिन उपयोगकर्ता को कहीं और भेजने से बेहतर है। क्या आपने इस कोड को आजमाया है:

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

मुझे यह आपके द्वारा पोस्ट किए गए लिंक पर मिला। मैंने कोड चलाया या परीक्षण नहीं किया है, लेकिन यह आपको सफारी भेजने के बजाय दृश्य नियंत्रक प्रस्तुत करना प्रतीत होता है। यह आपके इच्छित चीजों के साथ और अधिक हो सकता है।

@ सैम के सवाल का जवाब करने के लिए:

"कैसे गूगल लॉगइन करने के द्वारा स्थापित मौजूदा Google सफारी में यूआरएल को खोलने के बजाय एप्लिकेशन?"

आप शायद इसे एंड्रॉइड के साथ पूरा कर सकते हैं लेकिन आईओएस के साथ नहीं। चयनित प्लेटफार्म की वजह से प्रतिबंधित कुछ ऐसा एक और उदाहरण है।

याद रखें कि आप जो भी विकल्प चुनते हैं, आपको अभी भी OAuth 2.0 का पालन करना होगा। मैं सुझाव दूंगा कि आईओएस डेवलपर्स के इस्तेमाल के लिए Google ने जो कुछ भी बनाया है, उसका उपयोग कर। जब डिफ़ॉल्ट से भिन्न खाता चुनने की बात आती है, तो यदि आपने मार्गदर्शिका का पालन करना चुना है और आईओएस डेवलपर्स के लिए Google ने जो बनाया है, तो आप बस प्रोफ़ाइल छवि पर टैप कर सकते हैं और खाते स्विच कर सकते हैं।

टी एल; डॉ

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

संबंधित मुद्दे