IOS第三十三天——发送短信

发送短信这个事儿吧,在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
这样儿我们就完成了,不过现在还没有去写发送短信以及发送完成或者取消发送短信的方法,所以即使我取消发送,还是会停留在发送短信界面,我们来看一下程序运行的一些截图(此应用需要在真机上测试才可以,需要有开发者帐号)

启动程序的时候的截图

IOS第三十三天——发送短信_第1张图片

点击发送短信的按钮的截图

IOS第三十三天——发送短信_第2张图片

如果这里我们选择点击取消,不会退出当前的这个界面,但是会被程序捕捉到:

IOS第三十三天——发送短信_第3张图片

同样儿,我们点击发送短信,成功了之后,这个界面也不会退出,但事实上已经发送成功了。

IOS第三十三天——发送短信_第4张图片

这样儿,我们进入系统的短信应用看下我们的短信是否发送成功了,结果如下:

IOS第三十三天——发送短信_第5张图片

OK,这样儿一个发送短信的demo就写完了,以后我们会抽时间再来完善它。

2013年06月26日,Eric.Tang 记



你可能感兴趣的:(ios,短信)