短信功能,
短信功能,
有时候需要在app中添加一个分享的功能,这个功能可以让用户给自己的朋友发一个短信或者邮件。这里,我就只向大家介绍一下短信的功能。短信功能可以用两种方式来调用,一种是在程序外调用,一个是在程序内调用,在介绍之前需要提醒大家:短信功能在模拟器下是无法使用的,只能用真机来做调试。
1、程序外调用短信功能
NSURL *numberURL = [NSURL URLWithString:[NSString stirngWithFormat:@”sms:%@”,@”18300185512”]]; // 定义打开短信的url,关键字:sms。用openURL来打开程序中的短信功能,需要用到关键字:“sms”,后面加上要发送的电话号码就可以了。
if([[UIApplication sharedApplication] canOpenURL:numberURL]) {
[[UIApplication sharedApplication] openURL:numberURL];
} else {
NSLog(@”无法打开短信功能”);
} // 判断程序是否可以打开短信功能
在这里我们用到了UIApplication两个方法canOpenURL,openURL。openURL(开放链接)可以帮助我们实现很多功能,包括邮件或者是系统浏览器Safari。canOpenURL则是用来判断要执行的URL是否是可以执行的。用openURL来打开程序中的短信功能,需要用到关键字:“sms”,后面加上要发送的电话号码就可以了。但是这个方法虽然使用简单,却有两个不足之处:(1)这个方法会跳出我们正在运行的程序,打开系统的短信界面,但当用户关闭短信后,无法回到程序。(2)这个方法我们只能定义要发送的手机号,无法编辑发送的短信内容。为了解决这两个不足,我们下面为大家介绍第二中使用短信功能的方法。
2、程序内调用短信功能
第一步,我们先要在程序中添加短信所需的框架:MessageUI.framework
第二步,我们需要在类中引入框架的头文件:#import<MessageUI/MessageUI.h>
第三步, 我们需要实现如下代码:
BOOL canSendSMS = [MFMessageComposeViewController canSendText];
if(canSendSMS) {
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init]; // 创建短信视图控制器
picker.messageComposeDelegate = self; // 设置代理
picker.body = @”新年快乐,万事大吉”; // 设置短信内容
picker.recipients = [NSArray arrayWithObjects:@”18304235566”]; // 设置电话
[self presentModalViewController:picker animated:YES]; // 打开短信功能
[picker release];
}
通过这个方法会在程序内打开一个短信界面,短信的电话,内容都是我们设置好的内容,同时,大家应该可以发现代码中短信设置电话参数所需的是个数组,因此我们就可以做到同时设置多个电话,实现群发的动能。
为了监控发送短信的状态,我们需要用到MFMessageComposeViewController的代理方法。
第四步,使用MFMessageComposeViewController 的代理方法
设置代理:<MFMessageComposeViewControllerDelegate>
代理方法:
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
switch(result) {
case MessageComposeResultCancelled:
NSLog(@”Reseult:canceled”); // 取
消发送短信功能
break;
case MessageComposeResultSent:
NSLog(@”Result:Sent”); // 发
送短信
break;
case MessageComposeResultFailed:
NSLog(@”Result:Failed”); //
发送失败
break;
default:
break;
}
[self dismissModalViewControllerAnimated:YES];
}
评论暂时关闭