发送短信这个事儿吧,在IOS下控制的要比Android下严格的多,不过也是可以的,下面我们来看一下发送短信都有哪些要求。
1. 首先要引入MessageUI.framework,这个我们之前的学习笔记里也讲过好多次了,很容易就可以添加。
2. 然后添加<MFMessageComposeViewControllerDelegate>协议
ETViewController.h文件中的代码如下
#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>
@interface ETViewController : UIViewController<MFMessageComposeViewControllerDelegate>
@end
3. 再然后我们来看下我们的实现代码
//
// ETViewController.m
// SmsTest
//
// Created by EricTang on 13-6-25.
// Copyright (c) 2013年 Eric Tang. All rights reserved.
//
#import "ETViewController.h"
@interface ETViewController ()
@end
@implementation ETViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
//发送短信的方法
- (IBAction)sendSmsText:(id)sender
{
//首先判断当前设备是否可以发送短信
if([MFMessageComposeViewController canSendText])
{
MFMessageComposeViewController *mc=[[MFMessageComposeViewController alloc] init];
//设置委托
mc.messageComposeDelegate=self;
//短信内容
mc.body=[[NSString alloc] initWithUTF8String:"nihao" ];
//设置短信收件方
mc.recipients=[NSArray arrayWithObject:@"10010"];
[self presentModalViewController:mc animated:YES];
[mc release];
}
else
{
UIAlertView *alertView=[[UIAlertView alloc] initWithTitle:@"Sms Error" message:@"device can not send sms text" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alertView show];
[alertView release];
}
}
//短信发送的处理结果
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
switch (result)
{
case MessageComposeResultSent:
NSLog(@"text message sent successfully");
break;
case MessageComposeResultCancelled:
NSLog(@"text message cancelled");
break;
case MessageComposeResultFailed:
NSLog(@"text message failed");
break;
default:
NSLog(@"error happens");
break;
}
}
@end
原文出处: 点击打开链接