IOS常用小功能

作者: a18bbfaeae63 | 来源:发表于2015-01-28 21:23 被阅读1070次
    老规矩

    播打电话号码

    1. 最直接方式
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://020-10086"]];
      缺点:打完电话后,停留在通讯录界面,不会自动跳回APP界面。

    2. 访问私有API
      该方式拨号,会先提示是否进行拨打。
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://020-10086"]];
      缺点:私有API,可能会被苹果审核不通过,拒绝发布。

    3. 通过内嵌UIWebView,拨打完毕后,会自动切回APP界面
      UIWebView *myWebView = [[UIWebView alloc] initWithFrame:CGRectZero];
      [myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"tel://020-10086"]]];
      注意:不需要addSubview


    跳转到APP Store评分界面

       UIApplication *app = [UIApplication sharedApplication];
       NSString *urlStr = [NSString stringWithFormat:@"替换成下面提供的两种方式”, yourAPPId];
       NSURL *url = [NSURL URLWithString:urlStr];
       if ([app canOpenURL:url]) {
          [app openURL:url];
       }
    

    你的设备IOS版本>=IOS7

    itms-apps://itunes.apple.com/app/idYOUR_APP_ID 
    

    你的设备IOS版本<IOS7

    itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
    

    发短信

    1. 最直接方式
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://10086"]];
      式缺点:不能指定短信内容,并且操作完毕后,不会跳回APP界面

    2. 采用MFMessageComposeViewController

    1. . 先引入框架#import <MessageUI/MessageUI.h>
      if ([MFMailComposeViewController canSendMail]) {
      MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
      messageController.body = @"短信内容";
      messageController.recipients = @[@"收件人列表-1-10086",@"2-10000"];
      messageController.delegate = self;
      [self presentViewController:messageController animated:YES completion:nil];
      }
      2). 实现委托
      #pragma mark - MFMessageComposeViewControllerDelegate
      - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
      [controller dismissViewControllerAnimated:YES completion:nil];
      if (result == MessageComposeResultCancelled) {
      NSLog(@"取消发送");
      } else if (result == MessageComposeResultSent) {
      NSLog(@"发送成功");
      } else {
      NSLog(@"发送失败");
      }
      }

    优点:可以指定发送内容,发送完毕可以切回APP界面。


    发邮件

    1. 最直接方式
      NSString *url = @"mailto:foo@example.com? cc=bar@example.com&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!";
      [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
      缺点:字符串复杂,可读性差。
    2. 采用MFMailComposeViewController
      1). 先引入框架#import <MessageUI/MessageUI.h>
      if ([MFMailComposeViewController canSendMail]) {
      MFMailComposeViewController* mailController = [[MFMailComposeViewController alloc] init];
      mailController.mailComposeDelegate = self;
      [mailController setSubject:@"标题"];
      [mailController setMessageBody:@"邮件内容。" isHTML:NO];
      [mailController setToRecipients:@[@"收件人1", @"收件人2",]];
      [mailController setCcRecipients:@[@"抄送人1", @"抄送人2",]];
      [mailController setBccRecipients:@[@"密送人1", @"密送人2",]];
      if (mailController)
      [self presentViewController:mailController animated:YES completion:nil];
      }

    2). 实现委托
    #pragma mark - MFMailComposeViewControllerDelegate
    - (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError )error {
    /

    enum MFMailComposeResult {
    MFMailComposeResultCancelled, //取消发送
    MFMailComposeResultSaved, //保存草稿
    MFMailComposeResultSent, //发送成功
    MFMailComposeResultFailed, //发送失败
    };
    */
    [controller dismissViewControllerAnimated:YES completion:nil];
    }


    应用程序之间跳转

    1. 被跳转的APP设置
      注意:URL Schemes是一个数组,可以用逗号隔开
      设置引导图
    2. 打开其他APP的代码如下,identifier跟schemes就是上图设置的URL Types参数
      // @param Identifier:需要跳入的应用程序配置文件设置的APP URL type里面的identifier
      // @param UrlSchemes:需要跳入的应用程序配置文件设置的APP URL type里面的URL scheme
      NSURL *appUrl = [NSURL URLWithString:@"Identifier://UrlSchemes"];
      UIApplication *app = [UIApplication sharedApplication];
      // 1.先判断能否打开软件
      if ([app canOpenURL:appUrl]) {
      [app openURL:appUrl];
      } else { // 2.不能打开,去appStore下载
      NSURL *downloadUrl = [NSURL URLWithString:@"yourAppUrl"];
      if ([app canOpenURL:downloadUrl]) {
      [app openURL:downloadUrl];
      }
      }
      3.通过safari游览器打开APP
      在地址栏输入要打开的APP的URL schemes即可,如testApp://
      带参数形式:testApp://?token=123abct&registered=1
      4.通过访问网页打开APP

    待续...

    相关文章

      网友评论

      • JohnHow:排版内容都很赞,怎么在文章里输入代码呀
      • 20eb2cf28870:توته وينك ى محنه

      本文标题:IOS常用小功能

      本文链接:https://www.haomeiwen.com/subject/szclxttx.html