在开发 iOS 应用程序的过程中,你可能会遇到需要发送短信的场景,这时你可能会感到困惑:为什么?如何?以及什么?
在本教程中,我们将重点介绍如何在 Swift 中从您的 iOS 应用程序发送短信,我们将从用户的电话号码发送短信。虽然我们无法直接在没有用户内容的情况下做到这一点,但我们可以显示一个预先撰写的消息供用户发送,用户之后可以根据需要修改。
让我们开始吧!
我们将使用“MFMessageComposeViewController” 类对象在您的应用程序中显示标准的消息撰写界面。
在呈现撰写界面之前,我们将使用我们希望发送的基本初始消息填充字段,以及用户稍后可以修改的收件人列表。
撰写界面不能保证消息的送达,它只允许您构建初始消息并将其呈现给用户批准。用户可以选择取消撰写界面,在这种情况下,消息及其内容将被丢弃。如果用户选择发送消息,“信息”应用程序将负责发送消息。
步骤 1:打开 Xcode → 新建项目 → 单视图应用程序 → 我们将其命名为“MailComposer”
步骤 2:打开 Main.storyboard 并添加一个按钮,将其命名为“发送邮件”,不要忘记添加约束“水平和垂直居中于容器”,并添加“宽度 = 100 点,高度 = 50 点”,如下所示。
步骤 3:导航到 ViewController.swift 并添加按钮实例 IBAction,将其命名为“sendMessage”
@IBAction func sendMessage(_ sender: Any) { }
步骤 4:将“MFMessageComposeViewControllerDelegate” 协议添加到您的 ViewController 类,并添加存根方法以确保它符合该协议。在 ViewController.swift 中导入“MessageUI”。
步骤 5:在 viewDidLoad 方法下方创建新的方法“displayMsgInterface”,并粘贴以下代码,该代码将负责呈现 MFMessageComposeViewController 和预填充收件人和消息的配置。
func displayMsgInterface() { let messageCompose = MFMessageComposeViewController() messageCompose.messageComposeDelegate = self // Configure recipients messageCompose.recipients = ["9401234567"] // Configure message body messageCompose.body = "Hey! I just learned how to send message using iOS App." // Present the ViewController modally if MFMessageComposeViewController.canSendText() { self.present(messageCompose, animated: true, completion: nil) } else { print("You cannot send messages.") } }
步骤 6:将以下代码添加到委托方法“didFinishWithResult”
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) { self.dismiss(animated: true, completion: nil) }
步骤 7:从“viewDidLoad”调用“displayMsgInterface”方法。
您的最终代码应如下所示!
完成了!让我们运行它。
要查看其运行情况,您需要在真实设备上运行,因为短信行为在模拟器中不可用。