ios - 如何让另一个 AppStore 应用程序打开一个预填充的原生消息应用程序?

标签 ios iphone objective-c sms

我要复制的内容:

“Cobook Contacts”应用程序允许您选择多个联系人。然后您可以向这些联系人发送消息。该应用程序通过打开 native 消息应用程序并使用多个数字填充它来执行此操作。


我尝试过的:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:123,456"]];

这只会打开填充了第一个数字的消息。


我需要什么:

一种复制 Cobook Contacts 功能的方法。使用 MFMessageComposeController 还不够好,我想打开 native 消息传递应用程序。工作示例代码值得赏金。


更新:

我没有进一步了解,但是 cobook 应用程序的目标文件实际上可以在 https://cobook.co/open-source 上获得。不过,我不知道是否有可能将其逆向工程到找出他们如何打开消息应用程序的程度。

最佳答案

我还研究了该应用程序的代码(也归功于评论中的 DJ_Lectr0)并发现它有效:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:/open?addresses=555.234.5678,555.234.5454;body=Hello,%20World"]];

这允许您指定多个地址(电话号码)以及添加正文(您显然可以省略)!

一些有趣的相关 Material 。 This是我能找到的关于从 Apple 打开 SMS 的唯一真实文档。它既不指定正文参数或多个收件人,但确实向您展示了您可以使用的不同字符串格式/字符。 This SO answer也让我想到了使用一个参数(在这种情况下它最终是 addresses 尽管我尝试了大约一百种不同的东西)并且是我找到 body 选项的地方。

这就是我使用上面的确切代码时得到的结果:

enter image description here

关于ios - 如何让另一个 AppStore 应用程序打开一个预填充的原生消息应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24152679/

相关文章:

ios - 保存并退出按钮验证

iphone - xcode 4 第二个目标?

ios - 如何让 UIAlert 按钮按下前进到下一个 Storyboard?

ios - Jenkins IOS 构建和 Git 分支

ios - Apple Watch 应用程序在 iOS 应用程序启动时获取数据

objective-c - 从另一个类调用 float 组

ios - 从 Foursquare URL 加载图像到 UIImageView

iphone - 启动时在 iOS 中启动位置感知后台服务

ios - 由于某种原因,方法 DidBeginEditing : (UITextField *)textfield is not working

objective-c - 带有 sortUsingComparator 的 EXC_BAD_ACCESS