zoukankan      html  css  js  c++  java
  • 系统硬件1-短信,打电话

    使用方式:导入 MessageUI.framework框架:

    #import "ViewController.h"

      #import <MessageUI/MessageUI.h>

    @interface ViewController ()<MFMessageComposeViewControllerDelegate>
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }
    #pragma mark - 调用系统发送信息方法
    - (IBAction)message:(UIButton *)sender {
        // 缺点是无法从系统短信程序回到自己的应用程序
        // 如果设备能发送短信就跳到系统发送信息界面,否则的就不可以发送短信
       if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"sms://10086"]])
       {
           // 通过openURL可以实现调用系统的电话,短信,邮件,浏览器,地图和手机内第三方程序等功能,sms://后面跟的是要发送短信的人的号码。
       [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://10086"]];
       }
    }
    #pragma mark - 在程序中直接发送短信
    - (IBAction)codeMessage:(UIButton *)sender {
        // 直接在程序中发送短信
        // IOS4.0 提供了MFMessageComposeViewController和MFMessageComposeviewControllerDelegate来完成不需要跳出程序
        // canSendText 方法检验是否支持消息发送功能
        // 要发送的短信内容和收件人在展现MFMessageComposeViewController之前需初始化好,展现了之后短信内容不能通过程序来进行修改,不过用户仍然可以手工修改短信内容和选择收件人
        // 如果用户点了发送或者取消,或者发送失败时,MFMessageComposeViewController的-messageComposeViewController:didFinishWithResult:方法都能得到通知,在这里进行相应的处理
        // 创建MFMessageComposeViewController对象
          if([MFMessageComposeViewController canSendText])
        {
            [self showSMSComposerSheet];
        }
    }
    
    -(void)showSMSComposerSheet{
        MFMessageComposeViewController *messagePicker=[[MFMessageComposeViewController alloc]init];
        messagePicker.messageComposeDelegate=self;  //设置代理
        messagePicker.navigationBar.tintColor = [UIColor blackColor];
        NSMutableString *MessageUrl = [[NSMutableString alloc] initWithString:@"http://www.cocoa.com"];
        NSMutableArray *array=[NSMutableArray arrayWithObjects:MessageUrl,@"10086", nil];
        // 同时可以设多个收件人
        messagePicker.recipients=array;
        // 设置默认信息
        messagePicker.body=@"hello";
        // 弹出视图
        [messagePicker presentViewController:messagePicker animated:YES completion:^{
        
        }
       ];
    }
    
    #pragma  mark - 发送事件处理
    -(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
    {
        switch (result) {
            case MessageComposeResultCancelled:
            {
                NSLog(@"取消短信发送");
                break;
            }
            case MessageComposeResultSent:
            {
                NSLog(@"短信发送成功");
                break;
            }
            case MessageComposeResultFailed:
            {
                NSLog(@"信息发送失败");
                break;
            }
            default:
            {
                NSLog(@"信息未发送");
                break;
            }
        }
        [self dismissViewControllerAnimated:YES completion:^{
            
        }];
    }
    
    // 实现打电话的方式
    - (IBAction)phone:(UIButton *)sender {
        // 系统方法
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]];
    }






    拓展:
      //调用safar打开网页
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.cnblogs.com/foxmin"]];
    ////调用app store (省略号后面加的是产品的id等一些参数)
       [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.apple.com/app/……"]];
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/app/ "]];
    ////调用电话
       [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://XXXXX"]];
    ////调用SMS
       [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://XXXXX"]];
    //调用Remote
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"remote://XXX"]];
    
    
    




    查看更多iPhone应用程序的调用和第三方应用程序的调用,可以在iPhone的URL方案查看。下面列举部分:

    
    

    Apple iPhone Applications
    Safari
    Any URL starting with http:// which does not point to maps.google.com or www.youtube.com is sent to Safari:

    
    

    NSString *stringURL = @"http://wiki.akosma.com/";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
    Apparently feed:// opens http://reader.mac.com in Safari.

    
    


    Maps
    URLs starting with http://maps.google.com open up the "Maps" application automatically:

    
    

    NSString *title = @"title";
    float latitude = 35.4634;
    float longitude = 9.43425;
    int zoom = 13;
    NSString *stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@@%1.6f,%1.6f&z=%d", title, latitude, longitude, zoom];
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
    It seems that maps:// also opens up the Maps application.

    
    


    Phone
    The phone links start with "tel:" but must not contain spaces or brackets (it can contain dashes and "+" signs, though):

    
    

    NSMutableString *phone = [[@"+ 12 34 567 89 01" mutableCopy] autorelease];
    [phone replaceOccurrencesOfString:@" "
                           withString:@""
                              options:NSLiteralSearch
                                range:NSMakeRange(0, [phone length])];
    [phone replaceOccurrencesOfString:@"("
                           withString:@""
                              options:NSLiteralSearch
                                range:NSMakeRange(0, [phone length])];
    [phone replaceOccurrencesOfString:@")"
                           withString:@""
                              options:NSLiteralSearch
                                range:NSMakeRange(0, [phone length])];
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"tel:%@", phone]];
    [[UIApplication sharedApplication] openURL:url];

    
    

    SMS
    To open the SMS application, just use the sms: protocol in your URL:

    
    

    NSString *stringURL = @"sms:";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
    You can specify a phone number, but apparently not a default text for your message:

    
    

    NSString *stringURL = @"sms:+12345678901";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
    The same restrictions apply as for phone URLs, regarding spaces, brackets and dashes.

    
    


    Mail
    These URLs launch Mail and open the compose message controller:

    
    

    NSString *stringURL = @"mailto:test@example.com";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
    You can also provide more information, for a customized subject and body texts:

    
    

    NSString *subject = @"Message subject";
    NSString *body = @"Message body";
    NSString *address = @"test1@akosma.com";
    NSString *cc = @"test2@akosma.com";
    NSString *path = [NSString stringWithFormat:@"mailto:%@?cc=%@&subject=%@&body=%@", address, cc, subject, body];
    NSURL *url = [NSURL URLWithString:[path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    [[UIApplication sharedApplication] openURL:url];
    You might also omit some information:

    
    

    NSString *subject = @"Message subject";
    NSString *path = [NSString stringWithFormat:@"mailto:?subject=%@", subject];
    NSURL *url = [NSURL URLWithString:[path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    [[UIApplication sharedApplication] openURL:url];
    For more complex body texts, you might want to use the CFURLCreateStringByAddingPercentEscapes() function, as explained above in this page.

    
    


    YouTube
    URLs starting with http://www.youtube.com open up the "YouTube" application automatically:

    
    

    NSString *stringURL = @"http://www.youtube.com/watch?v=WZH30T99MaM";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
    It also works with this URL (which normally brings the Flash video player used by YouTube):

    
    

    NSString *stringURL = @"http://www.youtube.com/v/WZH30T99MaM";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];

    
    

    iTunes
    To open up iTunes, use this URL:

    
    

    NSString *stringURL = @"http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?i=156093464&id=156093462&s=143441";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];

    
    

    App Store
    Very similar to the iTunes URLs:

    
    

    NSString *stringURL = @"http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=294409923&mt=8";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];

    
    

    iBooks
    (source: http://akos.ma/aqdr)

    
    

    NSString *stringURL = @"itms-books:";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
    NSString *stringURL = @"itms-bookss:";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];

    
    

    Third Party Applications
    Most URL schemes in this list come from App Lookup.

    
    


    AirSharing
    Launch the application:

    
    

    NSString *stringURL = @"airsharing://";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];

    
    

    Alocola
    Launch the application:

    
    

    NSString *stringURL = @"alocola://";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];

    
    

    Appigo Notebook
    Launch the application:

    
    

    NSString *stringURL = @"appigonotebook://";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];

    
    

    Appigo Todo
    Launch the application:

    
    

    NSString *stringURL = @"appigotodo://";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
    Create a new task:

    
    

    NSString *template = @"appigotodo://com.example.xyzapp/import?name=%@&note=%@&due-date=%@&priority=%@&repeat=%@";
    NSString *name = @"Buy%20some%20milk";
    NSString *note = @"Stop%20on%20the%20way%20home%20from%20work.";
    NSString *dueDate = @"2009-07-16";
    NSString *priority = @"1";
    NSString *repeat = @"101";
    NSString *stringURL = [NSString stringWithFormat:template, name, note, dueDate, priority, repeat];
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];

    
    

    Duo
    Launch the application and pre-populate the update field with your desired Tweet/Facebook update. Optional: Provide Duo with the custom URL and return path to your app to provide the user with a button to return to your app.

    
    

    NSString *appID = @"Your Apps Name";
    NSString *updateInfo = @"The Tweet/Status Update";
    NSString *returnScheme = @"Your Apps Return URL Scheme";
    NSString *returnPath = @"Your/Apps/Return/Path";
    NSString *baseURL = @"duoxx://updateFaceTwit?";
     
    NSString *encodedUpdateInfo = [updateInfo stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
    NSString *urlString = [NSString stringWithFormat:@"%@BLappID=%@;BLupdateInfo=%@;BLreturnScheme=%@;BLreturnPath=%@",
             baseURL, appID, encodedUpdateInfo, returnScheme, returnPath];

    
    

    NSURL *url = [NSURL URLWithString:urlString];
    [[UIApplication sharedApplication] openURL:url];
     

    
    


    The Cartographer
    Launch app and add a placemark at given coordinate:

    
    

    NSString *title = @"Placemark title (optional)";
    NSString *summary = @"Placemark description (optional)";
    CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(123.0, 12.0);

    
    

    title = [(id)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)title, NULL, (CFStringRef)@";/?:@&=+$,", kCFStringEncodingUTF8) autorelease];
    summary = [(id)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)summary, NULL, (CFStringRef)@";/?:@&=+$,", kCFStringEncodingUTF8) autorelease];

    
    

    NSString *cartographerURL = [NSString stringWithFormat:@"cartographer://placemark?coordinate=%lf,%lf&title=%@&summary=%@",
             coordinate.latitude, coordinate.longitude, title, summary];

    
    

    NSURL *url = [NSURL URLWithString:cartographerURL];
    [[UIApplication sharedApplication] openURL:url];
    Launch app and load either a KML source or a Google My Map:

    
    

    NSString *sourceURL = @"http://....";
    // e.g. http://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=208320711678395936256.00046bbcfdcd1f3ebf64b&z=5

    
    

    // Optional:
    MKCoordinateRegion region = ...;
    sourceURL = [sourceURL stringByAppendingFormat:@"&ll=%lf,%lf&spn=%lf,%lf",
                   region.center.latitude, region.center.longitude, region.span.latitudeDelta, region.span.longitudeDelta];

    
    

    NSURL *url = [NSURL URLWithString:[sourceURL stringByReplacingOccurrencesOfString:@"http://" withString:@"cartographer://"]];
    [[UIApplication sharedApplication] openURL:url];
     

    
    

    ChatCo

    
    

    NSString *stringURL = @"irc://irc.example.domain/roomName";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
    NSString *stringURL = @"irc://irc.example.domain/Nickname@roomName";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
    NSString *stringURL = @"irc://irc.example.domain/Nickname!Realname@roomName";
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];

     
  • 相关阅读:
    nginx article
    学习历程
    GRPC
    学习记录
    JAVA知识点记录
    flag
    读的文章
    This usually happens because your environment has changed since running `npm install`.
    expandedRowKeys、expandedRowsChange、expand
    服务端高并发分布式架构演进之路
  • 原文地址:https://www.cnblogs.com/lovelifeloveme/p/4057194.html
Copyright © 2011-2022 走看看