首页 > 其他分享 >iOS开发之--调用打电话,发邮件,发短信的系统功能的代码

iOS开发之--调用打电话,发邮件,发短信的系统功能的代码

时间:2023-08-25 14:03:42浏览次数:109  
标签:发邮件 调用 -- NSLog self iOS controller result Message

1、调用 自带mail

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://[email protected]"]];

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了!

 

作者:稻草人11223



标签:发邮件,调用,--,NSLog,self,iOS,controller,result,Message
From: https://blog.51cto.com/u_13188203/7230141

相关文章

  • iOS开发之--TableViewCell重用机制避免重复显示问题
    常规配置如下当超过tableView显示的范围的时候后面显示的内容将会和前面重复//这样配置的话超过页面显示的内容会重复出现-(UITableViewCell*)tableView:(UITableView*)tableViewcellForRowAtIndexPath:(NSIndexPath*)indexPath{//定义唯一标识staticNSStrin......
  • iOS开发之--苹果个人开发者账号如何升级成公司账号
    1.拨打苹果针对中国区开发者的咨询服务热线:40067018552.简单向对方(中文不太标准,但听懂没问题)说明意图后,会要求提供:(1)之前申请IDP时purchaseform上的personID,EnrollmentID(2)开发者账号,3.对方会直接帮忙升级账户届时会需要提供一些公司相关的资料传真过去,包括:《企业法......
  • iOS开发之--iOS APP打包的时候出现的四个选项
    此为打ipa或发包时的选项,有四:一、个人账号发包所选;   显然,签名并打包程序来发布到iOSAppStore,是个人账户发包所选。二、打云测ipa包;   发布蒲公英内测、云测等所需的ipa,就选这个来打包,注意,要用发布证书;   官网解释:Todistributeyourapptouserswithdesig......
  • iOS开发之--沙盒的操作
    iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么.documents,tmp,app,Library。(NSHomeDirectory())手动保存的文件在documents文件里Nsuserdefaults保存的文件在tmp文件夹里1、Documents目录:您应该将所有的应用程序数据文......
  • iOS开发之--从URL加载图片
    +(UIImage*)imageFromURLString:(NSString*)urlstring{//Thiscallissynchronousandblockingreturn[UIImageimageWithData:[NSDatadataWithContentsOfURL:[NSURLURLWithString:urlstring]]];}直接转化一下就可以直接拿到图片!作者:稻草......
  • ios开发之 -- xib关联自定义view
    在xib下使用自定义的view,因为很多时候,可能幸亏自顶一个view,然后在view里面填充控件,但是需要重写很多无用的代码,而且很容易出错不说,还很好工作量,使用xib的话,分钟搞定一个view,话不多说,步骤如下:1,先创建一个view2,创建一个xib3,"File'sOwner"的class继承为:MyView(即自定义创建的视图......
  • ios开发之 -- UIView总结
    如果想调用某个类的某个方法可以写成这样,这个方法来自NSObject类performSelector:performSelector:withObject:performSelector:withObject:withObject: 实际调用[selfperformSelector:@selector(displayViews)withObject:nilafterDelay:1.0f];有三个方法分别是//父视图......
  • ios 开发之 -- UILabel的text竖行显示
    让UILabel的内容竖行显示,我经常用一下两种方式:第一种:使用换行符\nlabel.text=@"请\n竖\n直\n方\n向\n排\n列";label.numberOfLines=[label.textlength];第二种:使用lineBreakMode属性label.text=@"请竖行显示";label.lineBreakMode=NSLineBreakByWordWrapping;//换行模......
  • iOS开发之--搭建本地的SVN服务器
    近期入职的新公司,后台没有分配svn账号,需要在本地搭建一个服务器,方便和代码,看了看网上的教程,一直有这样那样的问题,其中最主要的问题还是路径拼接的问题,最后终于解决了,特在此分享下,如果大家有更快捷的方法可以交流下:步骤如下:1,首先在任意地方建立一个文件夹,如在桌面上建立一个名字为sv......
  • ios开发之 -- 单例类
    单例模式是一种软件设计模式,再它的核心结构中指包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个势力而且该势力易于外界访问,从而方便对势力个数的控制并节约系统资源。如果希望在系统中某各类的对象只能存在一个,单例模式是最好的解决方案。单例模式目前用......