Edited at

iPhoneアプリからSMSを送信する

More than 5 years have passed since last update.


準備

MessageUI.framework を追加する。


ヘッダ

#import <MessageUI/MessageUI.h>

#import <MessageUI/MFMessageComposeViewController.h>

上記を import して、<MFMessageComposeViewControllerDelegate>を delegate する。


実装

- (void)displaySMSComposerSheet {

// シミュレータでは SMS が起動しないので return する。
if(![MFMessageComposeViewController canSendText]) {
return;
}
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
picker.messageComposeDelegate = self;
picker.body = [NSString stringWithUTF8String:MAIL_BODY];
picker.recipients = [NSArray arrayWithObjects:MAIL_TO, nil];
[self presentModalViewController:picker animated:YES];
}

MAIL_BODY に本文を、MAIL_TO に宛先を入れておくと ModalView で SMS が立ち上がる。

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {

[self dismissModalViewControllerAnimated:YES];
}

送信完了後に ModalViewを閉じる必要があるので、上記も実装する。

result には送信キャンセル、送信完了など、SMS 送信ステータスが格納されている。