iOSios开发技巧喜欢的文章

IOS常用小功能

2015-01-28  本文已影响1070人  a18bbfaeae63
老规矩

播打电话号码

  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

待续...

上一篇下一篇

猜你喜欢

热点阅读