본문 바로가기
프로그래밍/iOS

MFMessageComposeViewController를 이용한 sms(문자) 보내기

by 백룡화검 2012. 9. 13.

출처 : http://blog.naver.com/konori?Redirect=Log&logNo=10144133208


문자 관련 앱이 기획되어 

아이폰 SDK의 문자 보내기에 대해 알아보았습니다.


궁극적으로는 MMS를 보내보려 했지만

검색결과 MFMessageComposeViewController를 통해서는 MMS보내기가 불가능하더라구요.


암튼 String기반의 SMS보내는 방법을 포스팅해보겠습니다.


1. MessageUI.framework를 추가합니다.

2. 헤더파일에 아래와 같이 추가해줍니다.


#import <MessageUI/MessageUI.h>

#import <MessageUI/MFMessageComposeViewController.h>


MFMessageComposeViewControllerDelegate


3. 직접 문자보내기가 불가능하기 때문에 아래와 같이 모달뷰로 메시지뷰를 띄워줍니다.


MFMessageComposeViewController *smsModal = [[MFMessageComposeViewController alloc] init];

    

    if([MFMessageComposeViewController canSendText])

        //메시지가 전송이 가능한 상태인지 확인. 가능한 경우이면

    {

        smsModal.messageComposeDelegate = self

        

        smsMOdal.recipients = arr;

        

   smsModal.body = @"메시지 바디";

              

        

        [self presentModalViewController:smsModal animated:YES];

    }


4. 수신 여부체크를 위해 아래와 같이 함수를 추가해주시구요. 


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

SMS.hidden = NO;

switch (result)

{

case MessageComposeResultCancelled:

SMS.text = @"Result: canceled";

NSLog(@"Result: canceled");

break;

case MessageComposeResultSent:

SMS.text = @"Result: sent";

NSLog(@"Result: sent");

break;

case MessageComposeResultFailed:

SMS.text = @"Result: failed";

NSLog(@"Result: failed");

break;

default:

SMS.text = @"Result: not sent";

NSLog(@"Result: not sent");

break;

}

[self dismissModalViewControllerAnimated:YES];

}


이상입니다.!!