在开发 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”方法。

您的最终代码应如下所示!

完成了!让我们运行它。

要查看其运行情况,您需要在真实设备上运行,因为短信行为在模拟器中不可用。

更新于:2019年7月30日

90 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告