zoukankan      html  css  js  c++  java
  • iOS中打电话、打开网址、发邮件、发短信等

    常用小功能

    小功能简介

    iOS中的很多小功能都是非常简单的,几行代码就搞定了,比如打电话、打开网址、发邮件、发短信等

    打电话-方法1

    最简单最直接的方式:直接跳到拨号界面

    NSURL *url = [NSURL URLWithString:@"tel://10010"];

    [[UIApplication sharedApplication] openURL:url];

    缺点

    电话打完后,不会自动回到原应用,直接停留在通话记录界面

    打电话-方法2

    拨号之前会弹框询问用户是否拨号,拨完后能自动回到原应用

    NSURL *url = [NSURL URLWithString:@"telprompt://10010"];

    [[UIApplication sharedApplication] openURL:url];

    缺点

    因为是私有API,所以可能不会被审核通过

    打电话-方法3

    创建一个UIWebView来加载URL,拨完后能自动回到原应用

    if (_webView == nil) {

        _webView = [[UIWebView alloc] initWithFrame:CGRectZero];

    }

    [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"tel://10010"]]];

    需要注意的是:这个webView千万不要添加到界面上来,不然会挡住其他界面

    发短信-方法1

    直接跳到发短信界面,但是不能指定短信内容,而且不能自动回到原应用

    NSURL *url = [NSURL URLWithString:@"sms://10010"];

    [[UIApplication sharedApplication] openURL:url];

    发短信-方法2

    如果想指定短信内容,那就得使用MessageUI框架

    包含主头文件

    #import <MessageUI/MessageUI.h>

    显示发短信的控制器

    MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc] init];

    // 设置短信内容

    vc.body = @"吃饭了没?";

    // 设置收件人列表

    vc.recipients = @[@"10010", @"02010010"];

    // 设置代理

    vc.messageComposeDelegate = self;

    // 显示控制器

    [self presentViewController:vc animated:YES completion:nil];

    发短信-方法2

    代理方法,当短信界面关闭的时候调用,发完后会自动回到原应用

    - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result

    {

        // 关闭短信界面

        [controller dismissViewControllerAnimated:YES completion:nil];

       

        if (result == MessageComposeResultCancelled) {

            NSLog(@"取消发送");

        } else if (result == MessageComposeResultSent) {

            NSLog(@"已经发出");

        } else {

            NSLog(@"发送失败");

        }

    }

    发邮件-方法1

    用自带的邮件客户端,发完邮件后不会自动回到原应用

    NSURL *url = [NSURL URLWithString:@"mailto://10010@qq.com"];

    [[UIApplication sharedApplication] openURL:url];

    发邮件-方法2

    跟发短信的第2种方法差不多,只不过控制器类名叫做:MFMailComposeViewController

    假设发送的邮件内容如右图所示,代码实现看备注

    发邮件-方法2

    邮件发送后的代理方法回调,发完后会自动回到原应用

    - (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error

    {

        // 关闭邮件界面

        [controller dismissViewControllerAnimated:YES completion:nil];

       

        if (result == MFMailComposeResultCancelled) {

            NSLog(@"取消发送");

        } else if (result == MFMailComposeResultSent) {

            NSLog(@"已经发出");

        } else {

            NSLog(@"发送失败");

        }

    }

    打开其他常见文件

    如果想打开一些常见文件,比如html、txt、PDF、PPT等,都可以使用UIWebView打开

    只需要告诉UIWebView文件的URL即可

    至于打开一个远程的共享资源,比如http协议的,也可以调用系统自带的Safari浏览器:

    NSURL *url = [NSURL URLWithString:@”http://www.baidu.com"];

    [[UIApplication sharedApplication] openURL:url];

    应用间跳转

    有时候,需要在本应用中打开其他应用,比如从A应用中跳转到B应用

    首先,B应用得有自己的URL地址(在Info.plist中配置)

    B应用的URL地址就是:mj://ios.itcast.cn

    接着在A应用中使用UIApplication完成跳转

    NSURL *url = [NSURL URLWithString:@"mj://ios.itcast.cn"];

    [[UIApplication sharedApplication] openURL:url];

    应用评分

    为了提高应用的用户体验,经常需要邀请用户对应用进行评分

    应用评分无非就是跳转到AppStore展示自己的应用,然后由用户自己撰写评论

    如何跳转到AppStore,并且展示自己的应用

    Ø方法1

    NSString *appid = @"444934666";

    NSString *str = [NSString stringWithFormat:

                     @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@", appid];

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

    Ø方法2

    NSString *str = [NSString stringWithFormat:

                     @"itms-apps://itunes.apple.com/cn/app/id%@?mt=8", appid];

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

    真机调试

    真机调试的主要步骤

    1.登录开发者主页
    2.生成cer证书:cer是一个跟电脑相关联的证书文件,让电脑具备真机调试的功能
    3.添加App ID:调试哪些app?
    4.注册真机设备:哪台设备需要做真机调试?
    5.生成MobileProvision文件:结合2、3、4生成一个手机规定文件
    6.导入cer、MobileProvision文件

    最终会得到2个文件

    ØCer文件:让电脑具备真机调试的功能
    ØMobileProvision文件:哪台设备、哪些app、哪台电脑需要做真机调试?

    真机调试的步骤01-登录开发者主页

    登录开发者主页

    https://developer.apple.com/membercenter/index.action

    管理证书(前提:得花99$或299$加入开发者计划)

    真机调试的步骤02-生成cer证书

    添加cer证书

    真机调试的步骤02-生成cer证书

    利用钥匙串生成cer签名请求文件

    真机调试的步骤02-生成cer证书

    选择cer签名请求文件,生成并且下载cer证书

    真机调试的步骤03-添加App ID

    添加App ID

    真机调试的步骤04-注册真机设备

    添加真机设备

    真机调试的步骤04-注册真机设备

    利用Xcode查看真机设备的唯一标识(插上USB数据线)

    真机调试的步骤04-注册真机设备

    填写设备名称和唯一标识

    真机调试的步骤05-生成MobileProvision文件

    添加MobileProvision文件

    真机调试的步骤05-生成MobileProvision文件

    选择App ID

    真机调试的步骤05-生成MobileProvision文件

    填写MobileProvision文件名

    真机调试的步骤06-导入cer、MobileProvision文件

    经过前面的几个步骤,已经得到2个文件

    真机调试的步骤06-导入cer、MobileProvision文件

    打开任意程序,选择真机设别,点击运行(第一次运行会出现右图)

    替换旧的调试证书

  • 相关阅读:
    Ubuntu下安装了java但启动eclipse报错说没装java
    Servlet之Filter详解
    使用mybatis-generator自动生成model、dao、mapping文件
    深入浅出MyBatis
    彻底理解字符编码
    Java多线程系列
    【Swagger2】解决swagger文档地址请求404的问题
    【Git】Git如何合并某一次commit的内容到指定分支
    【Iterm2】如何解决iterm2窗口自动隐藏的问题
    【Git】.DS_Store 是什么文件
  • 原文地址:https://www.cnblogs.com/niexiaobo/p/4888723.html
Copyright © 2011-2022 走看看