通过iOS上的默认信使向用户选择的收件人发送短信

时间:2015-11-27 22:12:19

标签: ios objective-c cocoa-touch sms

stackoverflow上有多个线程,如下所示:How to programmatically send SMS on the iPhone? 讨论如何将SMS消息发送到指定的收件人列表。但我真的需要以某种方式让用户选择收件人来分享我的应用程序中的一些信息(理想情况下我还希望显示除​​文本正文之外的图像),有没有办法做到这一点?我知道我可以用Facebook SDK做这样的事情,但在这里我想使用SMS /默认信使。我正在使用Objective C进行开发。

1 个答案:

答案 0 :(得分:1)

正如评论所说,MFMessageComposeViewController包含一个与用户通讯录相关联的内置联系人选择器。如果您已经知道要发送给的收件人的地址,则可以自己设置MFMessageComposeViewController。您可以(例如)使用AddressBook框架并自行提取数字,但这将涉及:

  1. 要求用户许可
  2. 显示用户选择号码的界面
  3. 将该信息提供给MFMessageComposeViewController
  4. 除非你有令人信服的理由,否则我会避免这样做。

    这是一个向两个收件人发送邮件以及邮件和附件的示例。

    - (void)presentMessageViewController {
    
    if ([MFMessageComposeViewController canSendText] &&
        [MFMessageComposeViewController canSendAttachments]) {
    
        MFMessageComposeViewController *messageViewController = [MFMessageComposeViewController new];
        messageViewController.messageComposeDelegate = self;
    
        messageViewController.recipients = @[@"867-5309",
                                             @"1-800-MIX-A-LOT"];
        messageViewController.body = @"Hey, Jenny and Sir Mix-A-Lot!";
        [messageViewController addAttachmentData:UIImagePNGRepresentation([UIImage imageNamed:@"Funny Cats"])
                                  typeIdentifier:@"public.data"
                                        filename:@"image.png"];
    
        [self presentViewController:messageViewController
                           animated:YES
                         completion:^{
                             nil;
                         }];
        }
    }
    

    同样,除非您已经知道收件人的地址,否则收件人属性是可选的。用户将在MFMessageComposeViewController自己输入该信息。