iOS调用系统发送短信、邮件有两种方法:一种是直接跳到系统的发送功能界面,完成后不能返回到当前界面;第二种是弹出发送界面,完了之后还在停留在当前界面。
方法一:调用系统的接口,如打电话、发短信、邮件、浏览器等,以下这些通常在传递的参数前要加前缀,@"tel://",@"sms://",@"mailto://",@"http://"
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://123456"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://12306@sina.com"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.hao123.com"]]
方法二:是通过调用弹出系统的发送界面,一般通过模态对象实现。
发送短信示例:
-(void)showMessageView : (NSString *)phone title : (NSString *)title body : (NSString *)body
{
if( [MFMessageComposeViewController canSendText] )
{
MFMessageComposeViewController * controller = [[MFMessageComposeViewController alloc] init];
controller.recipients = [NSArray arrayWithObject:phone];
controller.body = body;
controller.messageComposeDelegate = self;
[self presentModalViewController:controller animated:YES];
[[[[controller viewControllers] lastObject] navigationItem] setTitle:title];//修改短信界面标题
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示信息"
message:@"该设备不支持短信功能"
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil, nil];
[alert show];
}
}
-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
[self dismissModalViewControllerAnimated:YES];
switch (result) {
case MessageComposeResultCancelled:
{
//click cancel button
}
break;
case MessageComposeResultFailed:// send failed
break;
case MessageComposeResultSent:
{
//do something
}
break;
default:
break;
}
发送邮件示则使用 MFMailComposeViewController,具体的google下