zoukankan      html  css  js  c++  java
  • iOS开发之--调用打电话,发邮件,发短信的系统功能的代码

    1、调用 自带mail

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@hzlzh.com"]];

    2、调用 电话phone

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8008808888"]];
    NSMutableString *str=[[NSMutableString alloc] initWithFormat:@"tel:%@",self.experienceDetailModel.phone];
    UIWebView *callWebview = [[UIWebView alloc] init];
    [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]];
    [self.view addSubview:callWebview];

    3、调用 SMS

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];

    4、调用自带 浏览器 safari

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.hzlzh.com"]];

    发送短信

    调用phone可以传递号码,调用SMS 只能设定号码,不能初始化SMS内容。

    若需要传递内容可以做如下操作:

    加入:MessageUI.framework

    #import <MessageUI/MFMessageComposeViewController.h>

    实现代理:MFMessageComposeViewControllerDelegate

    调用sendSMS函数

    //内容,收件人列表
    - (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients
    {
        
        MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
        
        if([MFMessageComposeViewController canSendText])
            
        {
            
            controller.body = bodyOfMessage;
            
            controller.recipients = recipients;
            
            controller.messageComposeDelegate = self;
            
            [self presentModalViewController:controller animated:YES];
            
        }
        
    }
    // 处理发送完的响应结果
    - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
    {
        [self dismissModalViewControllerAnimated:YES];
        
        if (result == MessageComposeResultCancelled)
        {
            NSLog(@"Message cancelled")
        }
        else if(result == MessageComposeResultSent)
        {
            NSLog(@"Message sent")
        }
        else
        {
            NSLog(@"Message failed")
        }
                    
    }

    发送邮件

    导入#import <MessageUI/MFMailComposeViewController.h>

    实现代理:MFMailComposeViewControllerDelegate

    //发送邮件
    -(void)sendMail:(NSString *)subject content:(NSString *)content{
        
        MFMailComposeViewController *controller = [[[MFMailComposeViewController alloc] init] autorelease];
        
        if([MFMailComposeViewController canSendMail])
            
        {
            
            [controller setSubject:subject];
            
            [controller setMessageBody:content isHTML:NO];
            
            controller.mailComposeDelegate = self;
            
            [self presentModalViewController:controller animated:YES];
            
        }
    }
    //邮件完成处理
    -(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{
        
        [self dismissModalViewControllerAnimated:YES];
        
        if (result == MessageComposeResultCancelled)
        {
            NSLog(@"Message cancelled");
        }
        else if(result == MessageComposeResultSent)
        {
            NSLog(@"Message sent");
        }
        else
        {
            NSLog(@"Message failed");
        }
    }

    默认发送短信的界面为英文的,解决办法为:

    在.xib 中的Localization添加一組chinese就ok了!

  • 相关阅读:
    删除mysql服务
    取消jQuery validate验证
    评估期已过.有关如何升级您的测试软件
    修复fiddler无法抓包抓取https问题
    Win10开启高性能模式
    cmd git批量检出当前目录下的所有模块指定远程分支
    解决代码没有编译错误运行却报错: “程序包xxx不存在“的问题,最终解决办法
    尾递归
    idea Project maven根目录不见了找回
    秒转时分秒
  • 原文地址:https://www.cnblogs.com/hero11223/p/6041666.html
Copyright © 2011-2022 走看看