亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS-----MFMessageCompose和MFMailComposeViewController的使用方法

2019-11-14 17:52:53
字體:
來源:轉載
供稿:網友

MFMessageCompose 和 MFMailComposeViewController的使用方法

使用MFMessageComposeViewCOntroller發短信

應用想自己提供界面讓用戶輸入短信收件人地址、短信內容、主體、附件等短信內容,則可使用MFMessageComposeViewController來發送短信,它也是一個視圖控制器,繼承UINavigationController.

MFMessageComposeViewController提供了如下類方法判斷iOS設備是否支持發送短信.

+ canSendText:

該iOS設備是否支持發送文本短信.

+ canSendAttachments:

該iOS設備是否支持發送帶附件的短信

+ canSendSubject:

該iOS設備是否支持發送帶標題的短信

程序使用MFMessageComposeViewController的類方法進行判斷之后,接下來就可按如下步驟發送短信.

1

創建MFMessageComposeViewController對象

2

為MFMessageComposeViewController設置recipients(接受NSArray作為屬性值,用于設置多個收件人號碼)、subject(設置短信主題)、body(設置短信內容)、attachments(接受NSArray作為屬性值,用于設置多個附件)等屬性

3

為MFMessageComposeViewController設置messageComposeDelegate,該屬性值必須是一個實現MFMessageComposeViewControllerDelegate協議的對象.該協議中定義了一個必須實現的messageComposeViewComtroller:didFinishWithResult:方法,該方法負責處理短信的發送結果.

  1 @interface LCViewController()<MFMessageComposeViewControllerDelegate>  2   3 @end  4   5 @implementation LCViewController  6   7 - (void)viewDidLoad  8   9 { 10  11    [super viewDidLoad]; 12  13 } 14  15 - (IBAction)send:(id)sender 16  17 { 18  19    NSString* destStr = self.destField.text; 20  21    NSString* contentStr = self.contentField.text; 22  23    if(destStr != nil && destStr.length>0 && contentStr != nil && destStr.length > 0 ) 24  25    { 26  27        // 如果能發送文本信息 28  29       if([MFMessageComposeViewController canSendText]) 30  31       { 32  33 // 創建MFMessageComposeViewController對象 34  35 MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init]; 36  37 // 為MFMessageComposeViewController對象指定messageComposeDelegate 38  39 picker.messageComposeDelegate = self; 40  41 picker.navigationBar.tintColor = [UIColor blackColor]; 42  43 // 設置收件人,此處可通過NSArray集合指定多個收件人 44  45 picker.recipients = [NSArray arrayWithObject:destStr]; 46  47 // 設置短信內容 48  49 picker.body = contenStr; 50  51 /* 52  53   如果運營商支持,picker還支持指定subjecy(主題)和attachments(附件) 54  55   也可用addAttachmentURL:withAlternateFilename:或addAttachmentData:typeIdentifier:filename:方法添加附件 56  57 */ 58  59 // 顯示MFMessageComposeViewController控制器 60  61 [self persentViewController:picker animated:YES completion:nil]; 62  63 }   64  65 } 66  67 } 68  69 //  MFMessageComposeViewControllerDelegate協議中的方法,負責處理短信的發送結果 70  71 - (void)messageComposeViewController:(MFMessageComposeViewController*)controller didFinishWithResult:(MessageComposeResult)result 72  73 { 74  75 switch(result) 76  77 { 78  79   case MessageComposeResultCancelled: 80  81       [self showAlert:@”結果: 短信被取消發送”]; 82  83       break; 84  85   case MessageComposeResultSent: 86  87       [self showAlert:@”結果: 發送成功”]; 88  89       break; 90  91   case MessageComposeResultFailed: 92  93       [self showAlert:@”結果: 發送失敗”]; 94  95         break; 96  97    default: 98  99       [self showAlert:@”結果: 沒有發送短信”];100 101     break;102 103 }104 105 [self dismissViewControllerAnimated:YES completion:nil];106 107 }108 109 - (void)showAlert:(NSString *)msg110 111 {112 113 [[[UIAlertView alloc] initWithTitle:@”發送結果” message:msg delegate:nil cancelButtonTitle:@”確 定” otherButtonTitles:nil] show];114 115 }116 117 @end

 

創建了一個MFMessageComposeViewController對象,并為該對象設置了recipents(收件人)、body(短信內容),并將該視圖控制器本身設為它的messageComposeDelegate,因此該視圖控制器類實現了MFMessageComposeViewControllerDelegate協議,并實現該協議中的方法----該方法負責處理發送短信的結果。

 

   

使用MFMailComposeViewController發送郵件

MFMailComposeViewController與MFMessageComposeViewController的用法非常相似,只是功能不同而已------MFMailComposeViewController用于發送郵件。

     MFMailComposeViewController提供了如下類方法判斷iOS設備是否支持發送郵件。

        + canSendMail: 該iOS設備是否支持發送郵件.

程序使用MFMailComposeViewController的類方法進行判斷之后,接下來就可按如下步驟發送郵件.

  1. 創建MFMailComposeViewController對象
  2. 為MFMailComposeViewController設置toRecipients: (接受NSArray作為屬性值,用于設置多個收件人地址)、ccRecipients:(接受NSArray作為屬性值,用于設置多個抄送人地址)、bccRecipients:(接收NSArray作為屬性值,用于設置多個密送人地址)、subject(設置郵件主題),還可通過setMessageBody:isHTML:方法設置郵件正文,通過addAttachmentData:mimeType:filename:方法添加附件.
  3. 為MFMailComposeViewController設置mailComposeDelegate,該屬性值必須是一個實現MFMailComposeViewControllerDelegate協議的對象.該協議中定義了一個必須實現的mailComposeController:didFinishWithResult:error:方法,該方法負責處理郵件的發送結果.

  1 @interface LCViewController()<MFMailComposeViewControllerDelegate>  2   3 @end  4   5 @implementation LCViewController  6   7 -(void)viewDidLoad  8   9 { 10  11    [super viewDidLoad]; 12  13 } 14  15 -(IBAction)sendMail:(id)sender 16  17 { 18  19   // 獲取界面上用戶輸入的內容 20  21   NSString* toStr = self.toField.text;// 收件人地址 22  23   NSString* ccStr = self.ccField.text;// 抄送人地址 24  25   NSString* bccStr = self.bccField.text;// 密送人地址 26  27   NSString* subjectStr = self.subjectField.text;// 郵件主題 28  29 NSString* contentStr = self.contentField.text;// 郵件正文 30  31 if(toStr != nil && toStr.length > 0 32  33 && subjectStr != nil && subjectStr.length > 0 34  35 && contentStr != nil && contentStr.length > 0) 36  37 { 38  39   // 如果能發送郵件 40  41   if([MFMailComposeViewController canSendMail]) 42  43 { 44  45   // 創建MFMailComposeViewController對象 46  47  MFMailComposeViewController *picker = [[MFMailComposeViewController alloc]  init]; 48  49 // 為 MFMailComposeViewController對象指定mailComposeDelegate 50  51 picker.mailComposeDelegate = self; 52  53 picker.navigationBar.tintColor = [UIColor blackColor]; 54  55 // 設置收件人,此處可通過NSArray集合指定多個收件人 56  57 picker.toRecipients = [NSArray arrayWithObject:toStr]; 58  59 if(ccStr != nil && ccStr.length > 0) 60  61 { 62  63   // 設置抄送人,此處可通過NSArray集合指定多個抄送人 64  65  picker.ccRecipients = [NSArray arrayWithObject:ccStr]; 66  67 } 68  69 if(bccStr != nil && bccStr.length > 0) 70  71 { 72  73   // 設置密送人,此處可用過NSArray集合指定多個密送人 74  75   picker.bccRecipients = [NSArray arrayWithObject:bccStr]; 76  77 } 78  79 // 設置郵件主題 80  81 picker.subject = subjectStr; 82  83 // 設置郵件正文 84  85 [picker setMessageBody:contentStr isHTML:NO]; 86  87 // 顯示MFMailComposeViewController控制器 88  89 [self persentViewController:picker animated:YES completion:nil]; 90  91 } 92  93 } 94  95 } 96  97 -(IBAction)finishEdit:(id)sender 98  99 {100 101   [sender resignFirstResponder];102 103 }104 105 -(void)mailComposeController:(MFMailComposeViewController*)controller106 107   didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error108 109 {110 111   switch(result)112 113   {114 115 case  MFMailComposeResultCancelled:116 117      [self showAlert:@”結果: 郵件被取消發送”];118 119      break;120 121 case  MFMailComposeResultSent:122 123     [self showAlert:@”結果: 發送成功”];124 125     break;126 127 case  MFMailComposeResultFailed:128 129     [self showAlert:@”結果: 發送失敗”];130 131     break;132 133 case  MFMailComposeResultSaved:134 135     [self showAlert:@”結果: 郵件被保存了”];136 137     break;138 139 }140 141 [self dismissViewControllerAnimated:YES completion:nil];142 143 }144 145 -(void)showAlert:(NSString *)msg146 147 {148 149   [ [ [ UIAlertView alloc] initWithTitle:@”發送結果”  message:msg delegate:nil cancelButtonTitle:@”確定” otherButtonTitles:nil] show];150 151 }152 153 @end

 

// 上面程序中的粗體字代碼創建了一個MFMailComposeViewController對象,并為該對象設置了toRecipients(收件人地址)、ccRecipients(抄送人地址)、bccRecipients(密送人地址),還調用了setMessageBody:contentStr isHTML:方法設置郵件正文,并將該視圖控制器本身設為它的mailComposeDelegate,因此該視圖控制器類實現MFMailComposeViewControllerDelegate協議,并實現了該協議中的方法----該方法負責處理發送郵件的結果。

// 編譯、運行該程序(必須在真機中運行,模擬器不支持),在程序界面中輸入收件人地址、抄送地址、密送人地址、郵件主題、郵件正文,然后單擊“發送”按鈕,將可以看到如下圖所示的界面

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品久久影院| 精品一区精品二区| 色哟哟网站入口亚洲精品| 亚洲精品日韩激情在线电影| 91av网站在线播放| 一本大道亚洲视频| 九九视频这里只有精品| 精品高清一区二区三区| 性欧美在线看片a免费观看| 国产欧美精品在线播放| 亚洲美女性生活视频| 国产成人综合亚洲| 欧美色图在线视频| 国产精品私拍pans大尺度在线| 欧美日韩国产二区| 日韩不卡中文字幕| 91成人在线播放| 欧美视频一区二区三区…| 91精品在线国产| 国内精品久久久久久| 国产精品福利片| 欧美黑人巨大精品一区二区| 国产精品欧美一区二区| 欧美日韩免费区域视频在线观看| y97精品国产97久久久久久| 亚洲一区二区自拍| 日韩欧美在线视频| 久久久国产精品一区| 亚洲一品av免费观看| 亚洲综合精品一区二区| 欧美日韩亚洲激情| 欧美午夜片在线免费观看| 久久久久久综合网天天| 国产精品一香蕉国产线看观看| 亚洲一区二区免费| 欧美性猛交xxxx乱大交蜜桃| 欧美激情一区二区久久久| 97欧美精品一区二区三区| 亚洲天堂久久av| 日韩免费在线电影| 精品在线欧美视频| 精品五月天久久| 欧美激情久久久| 91精品在线一区| 亚洲aaaaaa| 亚洲午夜激情免费视频| 国产成人精品在线| 亚洲人在线视频| 精品女同一区二区三区在线播放| 国产精品日韩av| 亚洲一区二区三区在线视频| 欧美日韩视频在线| 亚洲开心激情网| 欧美日本在线视频中文字字幕| 国产成人午夜视频网址| 91老司机在线| 亚洲精品免费在线视频| 国产精品入口日韩视频大尺度| 国产激情久久久| 成人午夜在线影院| 免费97视频在线精品国自产拍| 日韩亚洲精品电影| 久久成人av网站| 亚洲日韩欧美视频| 亚洲www在线| 欧美日韩一区二区在线| www亚洲精品| 欧美激情中文字幕乱码免费| 国产精品久久久久影院日本| 91久久久久久久久| 亚洲国产精品人人爽夜夜爽| 精品久久久久久久久久久久久久| 美女av一区二区三区| 亚洲xxxx3d| 亚洲xxxx18| 久久久久久九九九| 性亚洲最疯狂xxxx高清| 人妖精品videosex性欧美| 97久久精品人搡人人玩| 日本精品久久中文字幕佐佐木| 日韩欧美亚洲国产一区| 亚洲国产精品一区二区久| 欧日韩不卡在线视频| 欧美精品制服第一页| 日本aⅴ大伊香蕉精品视频| 性金发美女69hd大尺寸| 不卡av在线网站| 久久五月情影视| 久热精品视频在线观看一区| 日韩av免费在线看| 亚洲视频电影图片偷拍一区| 红桃视频成人在线观看| 91久久精品美女高潮| 亚洲风情亚aⅴ在线发布| 国产亚洲一区二区精品| 在线一区二区日韩| 欧美一级视频一区二区| 亚洲女成人图区| 青草热久免费精品视频| 久久久日本电影| 欧美一性一乱一交一视频| 亚洲一区二区久久久久久久| 这里精品视频免费| 国精产品一区一区三区有限在线| 亚洲无亚洲人成网站77777| 91热福利电影| 国产成人97精品免费看片| 91在线观看免费网站| 久久在精品线影院精品国产| 国产婷婷成人久久av免费高清| 欧美怡红院视频一区二区三区| 亚洲九九九在线观看| 亚洲三级 欧美三级| 亚洲a成v人在线观看| 欧美精品videos另类日本| 亚洲美女黄色片| 91香蕉嫩草影院入口| 久久中文久久字幕| 国产成人精品久久亚洲高清不卡| 欧洲精品毛片网站| 综合网日日天干夜夜久久| 国产69精品99久久久久久宅男| 国产精品久在线观看| 成人久久久久爱| 国产成人精品视| 成人免费网站在线看| 日韩中文字幕在线播放| 亚洲成人激情视频| 国产精品久久久久久久久久东京| 亚洲色图日韩av| 7777精品视频| 国产一区二区三区视频免费| 亚洲欧美在线看| 亚洲欧洲在线免费| 日韩不卡在线观看| 久久99精品久久久久久青青91| 51视频国产精品一区二区| 久久久久久亚洲| 日韩av在线免费观看一区| 国产视频观看一区| 欧美巨乳在线观看| 国产精品尤物福利片在线观看| 中文字幕亚洲自拍| 亚洲欧美另类人妖| 久久99热精品这里久久精品| 亚洲午夜久久久影院| 欧美大学生性色视频| 美女精品视频一区| 国产精品18久久久久久麻辣| 欧美大片va欧美在线播放| 日韩视频―中文字幕| 在线精品国产成人综合| 欧洲中文字幕国产精品| 亚洲国产小视频| 亚洲小视频在线| 狠狠色狠色综合曰曰| 亚洲最大在线视频| 亚洲福利视频在线| 精品视频www| 日韩av毛片网| 亚洲美女喷白浆| 国产精品稀缺呦系列在线| 色婷婷av一区二区三区久久| 色综合久久久888|