我是iPhone的新開發者。我有一個xib中的UITextView。我在那裏顯示電子郵件地址鏈接。我想打開iPhone的郵件應用程序,同時點擊該電子郵件鏈接。我怎樣才能做到這一點?如何在UITextView中點擊電子郵件鏈接時打開iPhone的郵件應用程序?
6
A
回答
12
正如this answer指出的那樣,你可以設置UITextView
的dataDetectorTypes
屬性:
textview.editable = NO;
textview.dataDetectorTypes = UIDataDetectorTypeAll;
你也應該能夠設置detectorTypes在Interface Builder。
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];
}
1
除了上面的代碼,一旦用戶按下發送或取消按鈕,你將需要關閉該模式的郵件視圖。 MFMailComposeViewControllerDelegate協議包含一個名爲「didFinishWithResult」的方法。這個方法將在視圖關閉時自動調用。 但是,如果你不實施它,什麼都不會發生&模態視圖將保持不變,將您的應用程序停頓!
下面的代碼是必需的最低限度:
- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
// Close the Mail Interface
[self dismissViewControllerAnimated:YES completion:NULL];
}
相關問題
- 1. 通過電子郵件鏈接打開iPhone應用程序
- 2. 在Android的電子郵件中點擊鏈接打開應用程序?
- 3. Android的電子郵件應用程序:打開郵件直接
- 4. 如何打開電子郵件超鏈接點擊展望
- 5. 如何在UITextView中獲取電子郵件鏈接的點擊事件?
- 6. 從短信/電子郵件鏈接打開應用程序
- 7. 從電子郵件鏈接打開iOS應用程序
- 8. 如何通過郵件鏈接打開iPad/iPhone應用程序?
- 9. 在網站中點擊電子郵件圖標時打開電子郵件
- 10. 在黑莓電子郵件應用程序中打開特定電子郵件
- 11. 如何通過點擊郵件鏈接直接打開我的應用程序?
- 12. 如何從Android電子郵件中的鏈接打開應用程序?
- 13. 如何從電子郵件中的鏈接打開應用程序?
- 14. 如何使用鏈接發送電子郵件以打開Android應用程序
- 15. appLinks無法通過電子郵件打開iPhone應用程序
- 16. 如何通知android應用程序該電子郵件驗證鏈接點擊?
- 17. 電子郵件附件在應用程序中打開?
- 18. 通過點擊電子郵件中的鏈接獲取電子郵件中的電子郵件帳戶ID
- 19. 如何通過電子郵件鏈接打開PhoneGap應用程序
- 20. 用戶點擊郵件中的鏈接,它打開電子郵件客戶端,如何關閉窗口/標籤?
- 21. Android:單擊標籤打開電子郵件應用程序
- 22. UIActionSheet打開郵件應用程序iPhone
- 23. Android - 通過電子郵件中的鏈接打開Facebook應用程序
- 24. 從電子郵件中的鏈接打開Nativescript Android應用程序
- 25. 電子郵件與電子郵件鏈接參數打開outlook在瀏覽器啓動新的電子郵件
- 26. 郵件應用程序的電子郵件按鈕iPhone
- 27. 與鏈接的HTML電子郵件,HTML電子郵件的情況下打開
- 28. 應用程序未在Android電子郵件應用程序中打開附件
- 29. 如何在點擊電子郵件ID時啓用發送電子郵件?
- 30. 如何從電子郵件打開android應用程序活動?
謝謝Mutix。 – Arun