1. 程式人生 > >Swift3.0 中實現發簡訊功能

Swift3.0 中實現發簡訊功能

公司專案中要用到點選按鈕發簡訊的功能,由於之前沒做過,在網上找了一些 demo, 自己總結點,大神勿噴 ^-^

要實現發簡訊的功能其實不難,可以利用系統的MessageUI.framework框架 就可以實現,步驟如下:
  1.首先判斷裝置是否有傳送簡訊功能
  2.如果裝置允許傳送簡訊,建立一個MFMessageComposeViewController檢視控制器,並對其設定簡訊內容和收件人號碼列表。
  3.簡訊傳送後,會執行回撥代理方法,可以獲取傳送結果(成功,失敗或取消)
程式碼如下:

import UIKit
//匯入標頭檔案
import MessageUI

//遵守代理 - MFMessageComposeViewControllerDelegate
class ViewController: UIViewController , UINavigationControllerDelegate, MFMessageComposeViewControllerDelegate{ override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.view.backgroundColor = UIColor.lightGray } override func
touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { //設定聯絡人 let str = "10086" //建立一個彈出框提示使用者 let alertController = UIAlertController(title: "發簡訊", message: "是否給\(str)傳送簡訊?", preferredStyle: .alert) let cancleAction = UIAlertAction(title: "取消", style: .cancel, handler: nil
) let sendAction = UIAlertAction(title: "確定", style: .default) { (alertController) in //判斷裝置是否能發簡訊(真機還是模擬器) if MFMessageComposeViewController.canSendText() { let controller = MFMessageComposeViewController() //簡訊的內容,可以不設定 controller.body = "發簡訊" //聯絡人列表 controller.recipients = [str] //設定代理 controller.messageComposeDelegate = self self.present(controller, animated: true, completion: nil) } else { print("本裝置不能發簡訊") } } alertController.addAction(cancleAction) alertController.addAction(sendAction) self.present(alertController, animated: true, completion: nil) } //實現MFMessageComposeViewControllerDelegate的代理方法 func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) { controller.dismiss(animated: true, completion: nil) //判斷簡訊的狀態 switch result{ case .sent: print("簡訊已傳送") case .cancelled: print("簡訊取消傳送") case .failed: print("簡訊傳送失敗") default: print("簡訊已傳送") break } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }

這樣一個簡單的發簡訊的功能就實現了,基本上夠用了