UITextView में ईमेल लिंक पर क्लिक करते समय आईफोन के मेल ऐप को कैसे खोलें? - आईओएस, एक्सकोड

मैं आईफोन विकास में नया हूं।मेरे पास एक xib में UITextView है। वहां मैं एक ईमेल पता लिंक प्रदर्शित करता हूं। मैं उस ईमेल लिंक पर क्लिक करते समय आईफोन के मेल एप्लिकेशन को खोलना चाहता हूं। मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर:

उत्तर № 1 के लिए 12

जैसा कि में बताया गया है यह जवाब, आप सेट कर सकते हैं dataDetectorTypes की संपत्ति UITextView:

textview.editable = NO;
textview.dataDetectorTypes = UIDataDetectorTypeAll;

आपको इंटरफ़ेस बिल्डर में डिटेक्टर टाइप सेट करने में भी सक्षम होना चाहिए।

से ऐप्पल दस्तावेज:

UIDataDetectorTypes

 Defines the types of information that can be detected in text-based content.

enum {
UIDataDetectorTypePhoneNumber   = 1 << 0,
UIDataDetectorTypeLink          = 1 << 1,
UIDataDetectorTypeAddress       = 1 << 2,
UIDataDetectorTypeCalendarEvent = 1 << 3,
UIDataDetectorTypeNone          = 0,
UIDataDetectorTypeAll           = NSUIntegerMax
}; typedef NSUInteger UIDataDetectorTypes;

अपने UITextView में ईमेल पते पर क्लिक करने के बाद स्वचालित रूप से मेल एप्लिकेशन खोलना चाहिए।

एक तरफ ध्यान दें, अगर आप अपने ऐप के भीतर से ईमेल भेजना चाहते हैं, तो आप MFMailComposeViewController का उपयोग कर सकते हैं।

ध्यान दें कि MFMailComposeViewController को दिखाने के लिए, डिवाइस ऐप को डिवाइस पर स्थापित करने की आवश्यकता है, और इसके साथ एक खाता जुड़ा हुआ है, अन्यथा आपका ऐप क्रैश हो जाएगा।

तो आप इसे जांच सकते हैं [MFMailComposeViewController canSendMail]:

// Check that a mail account is available
if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController * emailController = [[MFMailComposeViewController alloc] init];
emailController.mailComposeDelegate = self;

[emailController setSubject:subject];
[emailController setMessageBody:mailBody isHTML:YES];
[emailController setToRecipients:recipients];

[self presentViewController:emailController animated:YES completion:nil];

[emailController release];
}
// Show error if no mail account is active
else {
UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"Warning" message:@"You must have a mail account in order to send an email" delegate:nil cancelButtonTitle:NSLocalizedString(@"OK", @"OK") otherButtonTitles:nil];
[alertView show];
[alertView release];
}

MFMailComposeViewController क्लास संदर्भ


उत्तर № 2 के लिए 1

In addition to the code above, once the user has मोडल ईमेल व्यू को खारिज करने के लिए आपको भेजने या रद्द करने वाले बटन दबाए जाएंगे। MFMailComposeViewControllerDelegate प्रोटोकॉल में "didFinishWithResult" नामक एक विधि शामिल है। दृश्य को बंद करने के रूप में इस विधि को स्वचालित रूप से बुलाया जाएगा। हालांकि, अगर आप इसे लागू नहीं करते हैं, तो कुछ भी नहीं होगा और मोडल व्यू रहेगा, जिससे आपका ऐप खड़े हो जाएगा!

निम्नलिखित कोड को न्यूनतम के रूप में आवश्यक है:

- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{

// Close the Mail Interface
[self dismissViewControllerAnimated:YES completion:NULL];
}

संबंधित सवाल
सबसे लोकप्रिय