在ios的开发中,如果自己想调用一个发送短信的方式,其实可以很简答的调用的
短信的发送(SMS)的发送,是使用了一个MessageUI库,然后使用里面的MFMessageComposeViewControllerDelegate协议
我将自己的演示代码贴到下面:
SMSViewController.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
#import <UIKit/UIKit.h> #import <MessageUI/MessageUI.h>
@interface SMSViewController : UIViewController<MFMessageComposeViewControllerDelegate,UINavigationBarDelegate> - (IBAction)showSMSPicker:(id)sender;
@end
|
SMSViewController.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#import "SMSViewController.h"
@interface SMSViewController ()
@end
@implementation SMSViewController
- (void)viewDidLoad { [super viewDidLoad]; }
- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; }
- (IBAction)showSMSPicker:(id)sender { if([MFMessageComposeViewController canSendText]){ [self displaySMSComposeSheet]; }else{ NSLog(@"Device not configured to send SMS."); } }
-(void) displaySMSComposeSheet{ MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init]; picker.messageComposeDelegate = self; picker.body = @"你好,今天很想与你共进午餐"; [self presentViewController:picker animated:YES completion:NULL]; }
-(void) messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{ switch (result) { case MessageComposeResultCancelled: NSLog(@"Result: SMS sending canceled"); break; case MessageComposeResultSent: NSLog(@"Result: SMS sent"); break; case MessageComposeResultFailed: NSLog(@"Result: SMS sending failed"); break; default: NSLog(@"Result: SMS not sent"); break; } [self dismissViewControllerAnimated:YES completion:NULL]; }
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{ return (toInterfaceOrientation == UIInterfaceOrientationMaskPortrait); } @end
|
ok,直接运行一下就可以了。模拟器似乎是不能使用的,要在真机上才可以测试的