본문 바로가기

iPhone

ios sms, mail, 웹페이지 외부연동 그리고 app안에서 sms 메일 보내기 (MFMessageComposeViewController,MFMailComposeViewController 사용)

sms, e-mail, 웹페이지 외부 연결시 

//사파리로 구글 열기

[[UIApplication sharedApplication] openURL:@"http://www.google.com"];

//외부 메일 연동시키기  mailto://abcd@gmail.com

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://"]];

//외부 sms 연동시키기  sms://01012340002

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://"]];



app내부 sms, email 연동 

* 공통 세팅 : sms와 email을 사용하기 위해 둘다 필요한 세팅

MFMailComposeViewController를 사용하기 위해서는 MessageUI.framework를 추가해야 한다. 

또한  #import <MessageUI/MessageUI.h>를 사용 할 해더에 추가한다.

그리고 sms에 대한 델리게이트를 받기 위해 MFMessageComposeViewControllerDelegate 추가

email에 대한 델리게이트를 받기 위해 MFMailComposeViewControllerDelegate를 추가한다.


*코드들은 arc를 사용한 코드 이기 때문에 arc를 사용하지 않을 경우는 release를 사용해야 한다.


MFMailComposeViewController Class 사용 

MFMailComposeViewController

MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];


if([MFMailComposeViewController canSendMail])  //메일을 보낼 있는지를 체크


{

    

    NSString *messageTitle = @"Title";

    

    NSString *messageBody = @"Test Message";

    

    //보내는 사람을 세팅 , 여려명 보낼경우 array 담아 setToRecipients 세팅한다.

    

    [mailViewController setSubject:@"abcd@gmail.com"];

    

    [mailViewController setSubject:massageTitle]; //메일 타이틀 세팅

    

    [mailViewController setMessageBody:massageBody isHTML:NO];  //메일 내용 세팅

    

    mailViewController.mailComposeDelegate = self; //델리게이트 설정

    

    [self presentModalViewController:mailViewController animated:YES];  //모달로 화면을 띄운다

    

}


MFMailComposeViewController 델리게이트 부분

#pragma mark -


#pragma mark MFMailComposeViewControllerDelegate


- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error

{

    switch (result) {

            

        case MFMailComposeResultCancelled//취소

            break;

            

        case MFMailComposeResultSaved// 저장

            break;

            

        case MFMailComposeResultSent// 보냄

            break;

            

        case MFMailComposeResultFailed// 실패

            break;

            

        default:

            break;

    }

    [self dismissModalViewControllerAnimated:YES];  // 취소 버튼 모달을 dismiss하기 위하여 사용

}



MFMessageComposeViewController Class 사용 

Inherits from
Conforms to
Framework
/System/Library/Frameworks/MessageUI.framework
Availability
Available in iOS 4.0 and later.

MFMessageComposeViewController

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


if([MFMessageComposeViewController canSendText]) //sms 보낼 있는지를 체크

{

    NSString *number = [NSArray arrayWithObjects:@"01012345678", @"01087654321", nil];

    

    NSString *messageTitle = @"Title";

    

    NSString *messageBody = @"Test Message";

    

    [smsViewController setRecipients: number]; //번호를 세팅, 사용하지않을 경우 사용자가 직접 입력으로 나온다.

    

    [smsViewController setTitle:messageTitle]; // sms 타이틀을 세팅 ( 사용하지 않아도 상관없음 )

    

    [smsViewController setBody:messageBody];  // sms 보낼 내용을 세팅

    

    smsViewController.messageComposeDelegate = self; // 델리게이트 세팅

    

    [self presentModalViewController:smsViewController animated:YES]; //모달로 화면을 띄운다.

}


MFMessageComposeViewController 델리게이트 부분 

#pragma mark -


#pragma mark MFMessageComposeViewControllerDelegate


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

{

    switch (result) {

        case MessageComposeResultCancelled: //취소

            break;

            

        case MessageComposeResultFailed//실패

            break;

            

        case MessageComposeResultSent//보냄

            break;

            

        default:

            break;            

    }

    [self dismissModalViewControllerAnimated:YES]; // 취소 버튼 모달을 dismiss하기 위하여 사용

}


app내부 메일 사용 화면 ( 에플 라이브러리 제시 이미지 )


'iPhone' 카테고리의 다른 글

xcode4 svn 연결  (3) 2012.10.16
UITableView Header와 SectionHeader custom 변경  (0) 2012.09.27
상단 status bar 색상, 숨기기 변경  (0) 2012.09.18
UIGestureRecognizer 사용  (0) 2012.08.21
URL Schemes로 다른 어플 호출하기  (0) 2012.06.07