我希望用给定的内容预填充短信正文“smsto:555-555-5555:Hello World”
我已经完成了我的研究,每个人都说无法完成,但我的手机上现在有一个 QR 阅读器,它可以接收“sms:555-555-5555:Hello world”并使用扫描的正确电话号码预填充内容.
所以我的问题是。我该怎么做呢?很明显,提供的 URL 方案不处理正文。还有哪些其他方法可以预先填充身体?它可以通过 QuickMark Reader 清楚地完成。
我希望用给定的内容预填充短信正文“smsto:555-555-5555:Hello World”
我已经完成了我的研究,每个人都说无法完成,但我的手机上现在有一个 QR 阅读器,它可以接收“sms:555-555-5555:Hello world”并使用扫描的正确电话号码预填充内容.
所以我的问题是。我该怎么做呢?很明显,提供的 URL 方案不处理正文。还有哪些其他方法可以预先填充身体?它可以通过 QuickMark Reader 清楚地完成。
根据Apple 文档,您无法启动带有预定义消息的消息应用程序。
您可以做的是自己实现处理并解析 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];
}
}
瞧!
您可以使用 SMS 的 modalViewController 来填充文本的正文。
创建模态视图并呈现它:
-(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];
}
}