ในครั้งนี้จะเป็นขั้นตอนง่ายๆ ในการเขียนโปรแกรมเพื่อส่ง SMS จาก iPhone OS4 กันนะครับ
1. เริ่มแรกก็ให้เปิด Xcode ขึ้นมาแล้วสร้าง Project ใหม่ ให้เลือก Template View-based Application จากนั้นให้ตั้งชื่อ SendSMS
2. ทำการเพิ่ม framework ชื่อ MessageUI.framework โดย คลิกเมาส์ขวาที่ Framework -> Add -> Existing Framework
จากนั้นเลือก MessageUI.framework
กด add จะได้ผลลัพธ์ดังภาพ
3. เปิดไฟล์ SendSMSViewController.h เพิ่ม
#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMessageComposeViewController.h>
4. ทำการสร้าง Label เพื่อแสดงสถานะการส่ง SMS และสร้าง Method เมื่อมีการกดปุ่มให้ส่ง SMS โดยไฟล์ SendSMSViewController.h ที่เสร็จแล้ว จะมีตัวอย่างดังนี้
#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMessageComposeViewController.h>
@interface SendSMSViewController : UIViewController <MFMessageComposeViewControllerDelegate> {
UILabel *SMSResult;
}
@property (nonatomic, retain) IBOutlet UILabel *SMSResult;
-(void) composeMessage:(id)sender;
@end
5. เปิดไฟล์ SendSMSViewController.m และทำการเพิ่ม Code ลงไปตามตัวอย่างครับ
-(void) composeMessage:(id)sender
{
MFMessageComposeViewController *picker = []MFMessageComposeViewController alloc[ init];
picker.messageComposeDelegate = self;
picker.recipients = [NSArray arrayWithObject:@"0891782222"]; //Mobile No.
picker.body = @"iPhone OS4"; //Message sent
[self presentModalViewController:picker animated:YES];
[picker release];
}
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
switch (result)
{
case MessageComposeResultCancelled:
SMSResult.text = @"Result: canceled";
break;
case MessageComposeResultSent:
SMSResult.text = @"Result: sent";
break;
case MessageComposeResultFailed:
SMSResult.text = @"Result: failed";
break;
default:
SMSResult.text = @"Result: not sent";
break;
}
[self dismissModalViewControllerAnimated:YES];
}
6. ทำการ Double Click ที่ไฟล์ SendSMSViewController.xib ระบบจะทำการเปิดโปรแกรม Interface Builder จากนั้นให้สร้าง Label และสร้างปุ่มขึ้นมา อย่างละ 1 อัน
7. ทำการ map Label เข้ากับ Property SMSResult และปุ่ม Send เข้ากับ method ComposeMessage (ดูตัวอย่างการ Map Property และ Method เข้ากับหน้าจอได้ที่
Basic XCode and Interface Builder)
8. ทำการ Save และปิด Interface Builder
9. ทำการ Build และ run ได้เลยครับ
หมายเหตุ: ต้อง run บนเครื่อง iPhone จริงๆ เท่านั้นนะครับ เพราะ Simulator ไม่สามารถส่ง SMS ได้
Download Source Code ตัวอย่างได้จากไฟล์แนบด้านล่างครับ