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
沒有留言:
張貼留言