ios - 如何以编程方式在 iPhone 上发送短信?

有人知道是否有可能以及如何使用官方 SDK/Cocoa Touch 以编程方式从 iPhone 发送 SMS

最佳答案

限制

如果您可以在 iPhone 上的程序中发送 SMS,您将能够编写在后台向人们发送垃圾邮件的游戏。我敢肯定你真的很想收到 friend 的垃圾邮件,“试试这个新游戏!它让我的 boxxers 感到兴奋,你的也会如此!roxxersboxxers.com!!!!如果你现在注册,你将获得 3,200 RB积分!!”

Apple 对自动化(甚至部分自动化)短信和拨号操作有限制。 (想象一下,如果游戏在一天中的特定时间调用 911)

您最好的选择是在互联网上设置一个使用在线 SMS 发送服务的中间服务器,如果您需要完全自动化,则通过该路由发送 SMS。 (即你在 iPhone 上的程序向你的服务器发送一个 UDP 数据包,由它发送真正的 SMS)

iOS 4 更新

然而,iOS 4 现在提供了一个 viewController,您可以将其导入到您的应用程序中。您预填充 SMS 字段,然后用户可以在 Controller 内启动 SMS 发送。与使用“SMS:...” url 格式不同,这允许您的应用程序保持打开状态,并允许您填充 tobody 字段。您甚至可以指定多个收件人。

这可以防止应用程序在用户未明确意识到的情况下发送自动 SMS。您仍然无法从 iPhone 本身发送全自动短信,它需要一些用户交互。但这至少允许您填充所有内容,并避免关闭应用程序。

MFMessageComposeViewController类有据可查,tutorials展示它是多么容易实现。

iOS 5 更新

iOS 5 包括用于 iPod touch 和 iPad 设备的消息传递,因此虽然我自己还没有对此进行测试,但可能所有 iOS 设备都能够通过 MFMessageComposeViewController 发送 SMS。如果是这种情况,那么 Apple 正在运行一个 SMS 服务器,它代表没有蜂窝调制解调器的设备发送消息。

iOS 6 更新

这个类没有变化。

iOS 7 更新

您现在可以检查您使用的消息媒体是否接受主题或附件,以及它接受的附件类型。您可以在媒体允许的情况下编辑主题并向邮件添加附件。

iOS 8 更新

这个类没有变化。

iOS 9 更新

这个类没有变化。

iOS 10 更新

这个类没有变化。

iOS 11 更新

No significant changes to this class

对此类的限制

请记住,这不适用于没有 iOS 4 的手机,也不能在 iPod touch 或 iPad 上运行,可能在 iOS 5 下除外。您必须事先检测设备和 iOS 限制使用此 Controller ,或冒险将您的应用程序限制为最近升级的 3G、3GS 和 4 部 iPhone。

但是,发送 SMS 的中间服务器将允许任何和所有这些 iOS 设备发送 SMS,只要它们可以访问 Internet,因此对于许多应用程序来说,它可能仍然是一个更好的解决方案。或者,两者都使用,并且仅在设备不支持时才回退到在线 SMS 服务。

https://stackoverflow.com/questions/10848/

相关文章:

objective-c - 如何将百分号添加到 NSString

objective-c - 在 Objective-C 中创建一个抽象类

ios - 如何将 UIButton 的标题设置为左对齐?

objective-c - 如何打印出方法名称和行号并有条件地禁用 NSLog?

ios - 设置 UITextField 的最大字符长度

objective-c - 类方法和实例方法有什么区别?

objective-c - 如何迭代 NSArray?

ios - 如何浏览文本字段(下一步/完成按钮)

objective-c - 如何检查 NSDictionary 或 NSMutableDiction

objective-c - 如何在 Xcode 4 中设置 NSZombieEnabled?