2011-12-19 13 views
11

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

उत्तर

38

आपको मेल ऐप पर इतना अधिक नियंत्रण नहीं मिलेगा क्योंकि आईफोन पर सभी ऐप्स उन्हें ऐप्पल अनुप्रयोगों के साथ गड़बड़ करने से रोकने के लिए सैंडबॉक्स किए गए हैं।

/* create mail subject */ 
NSString *subject = [NSString stringWithFormat:@"Subject"]; 

/* define email address */ 
NSString *mail = [NSString stringWithFormat:@"[email protected]"]; 

/* define allowed character set */ 
NSCharacterSet *set = [NSCharacterSet URLHostAllowedCharacterSet]; 

/* create the URL */ 
NSURL *url = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"mailto:?to=%@&subject=%@", 
                         [mail stringByAddingPercentEncodingWithAllowedCharacters:set], 
                         [subject stringByAddingPercentEncodingWithAllowedCharacters:set]]];  
/* load the URL */ 
[[UIApplication sharedApplication] openURL:url]; 

/* release the URL. If you are using ARC, remove this line. */ 
[url release]; 
+0

ठीक है और उत्तर देने के लिए धन्यवाद। – user574089

2

स्विफ्ट::

 if let url = NSURL(string: "mailto://\(email)") { 
      UIApplication.sharedApplication().openURL(url) 
     } 
2

लियॉन की स्विफ्ट संस्करण

केवल एक चीज आप कर सकते हैं (यदि आप एक ईमेल भेजने के मेल क्लाइंट खोलना चाहते हैं), कुछ इस तरह है रॉडेनबर्ग का उत्तर:

// define email address 
    let address = "[email protected]" 

    // create mail subject 
    let subject = "Subject" 

    // create the URL 
    let url = NSURL(string: "mailto:?to=\(address)&subject=\(subject)".stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!) 

    // load the URL 
    UIApplication.sharedApplication().openURL(url!) 
0

मैं एक और अधिक बेहतर उत्तर का सुझाव दूंगा। Slack.com मोबाइल ऐप यह करता है, यह डिवाइस पर सूचीबद्ध सामान्य ईमेल क्लाइंट का पता लगाता है और 'कौन सा' ईमेल क्लाइंट खोलने के लिए आप पॉप अप पिकर दिखाता है।

तो लागू करने के लिए:

  1. गूगल के आसपास शीर्ष 10 ईमेल क्लाइंट (जैसे मेल, गूगल इनबॉक्स, आउटलुक, एअर मेल आदि) को खोजने के लिए।

  2. फ़ोन पर इंस्टॉल किए गए ऐप्स की एक सूची प्राप्त करें या तो सभी ऐप्स खोजकर (लेकिन मुझे बताया गया है कि अब आप केवल यह पता लगा सकते हैं कि कोई ऐप स्पष्ट रूप से स्थापित है या नहीं, इसलिए आपको ऐप का पता लगाने की आवश्यकता होगी)।

  3. यदि 1 से अधिक ईमेल ऐप का पता चला है तो पॉपअप सूची दिखाएं, उन्हें 'कौन सा ऐप खोलने का अनुरोध करें। मेल, इनबॉक्स।

यह सबसे अच्छा समाधान है जिसे मैंने आज तक काम किया है।