2010年9月20日 星期一

iOS 4 Message UI Framework

4.0 新的Framework讓我們不用透過外部連結來引發系統的SMS和Mail App而是可以將MFMessageComposeViewController 和 MFMailComposeViewController 和自己的App整合在一起相當的方便。
我們來看一下SMS的例子
  if ([MFMessageComposeViewController canSendText]) {
        MFMessageComposeViewController * mySMSController = [[MFMessageComposeViewController alloc]init];
        mySMSController.body = inputText.text;
        mySMSController.messageComposeDelegate = self; // 當傳送message有發生什麼情況要採取的動作
        [self presentModalViewController:mySMSController animated:YES];
        [mySMSController release];
    }else{
        NSLog(@"sorry not support sms text");
    }

利用body這個property可以把預設的文字傳到SMS ViewController上,接受者是用一個NSArray傳給recipients這個property,NSArray裡面給NSString就可以了也就是電話號碼。
接下來再來看messageComposeDelegate 這個property,負責處理的任務就是當傳送有什麼情況的回報,有這幾個情況:
enum MessageComposeResult {
   MessageComposeResultCancelled,
   MessageComposeResultSent,
   MessageComposeResultFailed
};
typedef enum MessageComposeResult MessageComposeResult;

分別是,按下右上Cancel鈕,成功傳送,傳送失敗。
可以如此判斷
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
    if (result == MessageComposeResultCancelled) {    // pressed the "Cancel" button
        [self dismissModalViewControllerAnimated:YES];
    }
   
}
因為MFMessageComposeViewController是要被加到modal view上的,所以當Cancel鈕被按下,就要dismiss其modal view

沒有留言:

張貼留言