【问题标题】:iPhone SMS Url Scheme with Body Content?带有正文内容的 iPhone 短信 URL 方案?
【发布时间】:2012-05-16 12:34:25
【问题描述】:

我希望在 SMS 正文中预先填写“smsto:555-555-5555:Hello World”的内容

我已经完成了我的研究,但每个人都说无法完成,但我的手机上现在有一个 QR 阅读器,它可以接收“sms:555-555-5555:Hello world”并用正确的内容预填充内容扫描的电话号码。

所以我的问题是。我该怎么做呢?很明显,提供的 URL 方案不处理正文。还有哪些其他方法可以预先填充身体?显然可以使用 QuickMark 阅读器完成。

【问题讨论】:

标签: iphone objective-c xcode sms


【解决方案1】:

根据Apple Documentation,您无法启动带有预定义消息的消息应用程序。

您可以做的是自己实现处理并解析 URL,如下所示:

NSURL *url = /* the url you get from the web (in webview delegate) or after QR Code scan */;

if ([url.scheme isEqualToString:@"sms"]) // is it a sms ?
{
    if([MFMessageComposeViewController canSendText]) // can I send text message ?
    {   
        NSArray *parts = [url.absoluteString componentsSeparatedByString:@":"];
        NSString *messageText = parts.count == 3 ? [parts objectAtIndex:2] : @"";
        NSString *telNumber = parts.count >= 2 ? [parts objectAtIndex:1] : @"";
        MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
        controller.body = messageText;
        controller.recipients = [NSArray arrayWithObject:telNumber];
        controller.messageComposeDelegate = self;

        [self presentViewController:controller animated:YES completion:nil];
        [controller release];
    }
}

瞧!

【讨论】:

    【解决方案2】:

    您可以使用 SMS 的 modalViewController 来填充文本的正文。

    1. 将 MessageUI 框架添加到您的项目中。
    2. 将 viewController 设置为 MFMessageComposeDelegate
    3. 创建模态视图并展示它:

      -(void) showMessageComposerWithText:(NSString*)messageText telNumber:(NSString*)telNumber composeDelegate:(id)delegate
      {
          MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
      
          if([MFMessageComposeViewController canSendText]){   
              controller.body = messageText;
              controller.recipients = [NSArray arrayWithObject:telNumber];
              controller.messageComposeDelegate = delegate;
      
              [delegate presentModalViewController:controller animated:YES];
          }
      }
      

    【讨论】:

      猜你喜欢
      • 2013-05-09
      • 2013-04-16
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多