類:MFMailComposeViewController
這個類提供了一個標準的界面來管理編輯和發(fā)送郵件的!,可以使用這個控制器在你的App里展示一個標準郵件信息界面,在展示界面之前,應(yīng)該給subject(標題),recipients(接收郵件的人),和attachment(郵件的附件)復(fù)制,在展示郵件界面后,用戶可以在發(fā)送郵件前繼續(xù)編輯你提供的值.

在展示郵件界面前,一定要先調(diào)用canSendMail方法,以此來確定當前設(shè)備是否支持發(fā)送郵件,如果返回值為NO,可以將不支持的信息提示用戶,也可以不提供給用戶發(fā)郵件的功能!千萬不能在這個方法返回NO的情況下調(diào)用郵件界面!
if (![MFMailComposeViewController canSendMail]) {
NSLog(@"Mail services are not available.");
return;
}
//一定要加上判斷!
MFMailComposeViewController* composeVC = [[MFMailComposeViewController alloc] init];
composeVC.mailComposeDelegate = self;//切記要設(shè)置代理!
// Configure the fields of the interface.
[composeVC setToRecipients:@[@"address@example.com"]]; //設(shè)置接受者
[composeVC setSubject:@"Hello!"];//設(shè)置標題
[composeVC setMessageBody:@"Hello from California!" isHTML:NO];//設(shè)置郵件內(nèi)容,isHTML為yes的話可以將消息以Html語言傳送!,為NO則只傳明文
//界面需要手動調(diào)用
[self PResentViewController:composeVC animated:YES completion:nil];
下面是它的代理方法:
- (void)mailComposeController:(MFMailComposeViewController *)controller
didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error //在這個方法里dimiss郵件界面,并根據(jù)result可以做相關(guān)處理,最好提示用戶結(jié)果!
值得注意的是,郵件發(fā)送是通過系統(tǒng)的郵箱發(fā)送的,用戶可以在郵件真正發(fā)送之前刪除它,所以App里提示的MFMailComposeResult結(jié)果是成功的,但事實上并不意味著郵件就真的發(fā)送出去了,只是說明郵件已經(jīng)被成功添加到了發(fā)送隊列!實際上,在這個類里蘋果并沒有針對郵件真正的發(fā)送結(jié)果提供方法!
這個類還有幾個方法
- setCcRecipients:
- setBccRecipients:
這兩個方法都是設(shè)置抄送人的,不同的是上一個方法的抄送人大家都能相互看見,后面一個方法則是隱秘的抄送,也就是看不見其他的抄送人
en如果你需要傳送文件或者圖片之類的附件,則上面的setMessageBody則力不能及了,需要使用- addAttachmentData:mimeType:fileName:方法,其中mimeType可以自行百度
類:MFMessageComposeViewController
這個類提供了一個編輯和發(fā)送SMS(文字信息)或者MMS(多媒體信息)的標準界面,說白了就是短信和彩信!
這個類和上面的發(fā)送郵件的類差不多,不同的是判定方法不同!
+ canSendText //判斷是否支持發(fā)送文字信息
+ canSendAttachments //判斷是否支持發(fā)送附件
+ canSendSubject //判斷是否支持發(fā)送主題信息
+ isSupportedAttachmentUTI: //判斷是否支持附件UTI,UIT(Uniform Type Identifiers,相同類型標識符)每個UTI為特殊文件類型,數(shù)據(jù)類型,路徑或者包類型等等提供了一個唯一的標識符,目的是為了識別文件類型是否被支持,比如Text文件有些是以Text結(jié)尾,有些是以txt結(jié)尾,有些能打開,有些打不開,所以蘋果為了用戶考慮,為每個文檔數(shù)據(jù)提供了一個UTI標志符!說白了,就是針對一些特殊的文件格式,判斷它的UTI,看能否用蘋果支持的格式打開!
實際測試:郵件發(fā)送正常,信息發(fā)送會在彈出控制器后立刻取消,原因未明!如果真的需要可以通過openURL的方式在應(yīng)用外打開發(fā)送信息的功能!
新聞熱點
疑難解答
圖片精選