我们知道可以使用这样的代码在iPhone中发送短信:[[UIApplication sharedApplication]openURL:@"sms:12345678"];
但这样的方式无法指定短信内容。那么我们可以使用MessageUI框架。
1. 导入框架:MessageUI.framework
2. 遵循协议:MFMessageComposeViewCont rollerDelegate
3. #import <MessageUI/MessageUI.h>
代码:
//调用设备短信功能
- (void)showMessageView
{
<pre name="code" class="objc"> // 判断设备能不能发送短信
if([MFMessageComposeViewController canSendText]){
MFMessageComposeViewController*picker =[[MFMessageComposeViewControlleralloc] init]; // 设置代理 picker.messageComposeDelegate= self; // 默认信息内容 picker.body = @"你好!"; // 默认收件人(可设置多个) picker.recipients = [NSArrayarrayWithObject:@"12345678901"]; [self presentViewController:picker animated:YES completion:nil];
}else{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示信息"message:@"该设备不支持短信功能"delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
[alert show];
}}#pragma mark MFMessageComposeViewControllerDelegate 实现代理方法
-(void)messageComposeViewController:(MFMessageComposeViewController*)controller didFinishWithResult:(MessageComposeResult)result{ switch (result){
case MessageComposeResultCancelled:
NSLog(@"取消发送");
//点击取消时返回应用程序中
[self dismissViewControllerAnimated:YES completion:nil];
break;
case MessageComposeResultFailed:{
NSLog(@"发送失败");
break;
}
case MessageComposeResultSent:{
NSLog(@"发送成功");
default:
break;
}
} 注意
1)不要在case 下声明变量
2)case下执行多条语句时,可用{}将case中的代码括起来。