iOS 调用系统发短信服务

调用系统发短信服务

原文地址


程序外调用(直接调用 openURL 即可)
NSURL *url = [NSURL URLWithString:@"sms://15888888888"];
[[UIApplication sharedApplication]openURL:url];       

程序内调用

这种方法有一个好处就是用户发短信之后还可以回到 App.

1 首先要导入 MessageUI.framework,并引入头文件

#import <MessageUI/MessageUI.h>

2 遵循代理 MFMessageComposeViewControllerDelegate

#pragma mark - 代理方法
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
	[self dismissViewControllerAnimated:YES completion:nil];
	switch (result) {
    	case MessageComposeResultSent:
        	//信息传送成功
        
        	break;
    	case MessageComposeResultFailed:
        	//信息传送失败
        
        	break;
    	case MessageComposeResultCancelled:
        	//信息被用户取消传送
        
        	break;
    	default:
        	break;
	}
}

3 发送短信方法实现

#pragma mark - 发送短信方法
-(void)showMessageView:(NSArray *)phones title:(NSString *)title body:(NSString *)body
{
	if( [MFMessageComposeViewController canSendText] )
	{
    	MFMessageComposeViewController * controller = [[MFMessageComposeViewController alloc] init];
    	controller.recipients = phones;
    	controller.navigationBar.tintColor = [UIColor redColor];
    	controller.body = body;
    	controller.messageComposeDelegate = self;
    	[self presentViewController:controller animated:YES completion:nil];
    	[[[[controller viewControllers] lastObject] navigationItem] setTitle:title];//修改短信界面标题
	}
	else {
    	UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示信息"
                                                    message:@"该设备不支持短信功能"
                                                   delegate:nil
                                          cancelButtonTitle:@"确定"
                                          otherButtonTitles:nil, nil];
    	[alert show];
	}
}

4 调用发送短信的方法

[self showMessageView:[NSArray arrayWithObjects:@"15888888888",@"12399999999", nil] title:@"test" body:@"这是测试用短信,勿回复!"];
posted @ 2017-03-30 16:34  上水的花  阅读(236)  评论(0)    收藏  举报