#调用短信 只初始化号码,不能初始化短信内容。
UIApplication.sharedApplication().openURL(NSURL(string: "sms://185****"))
#发送 初始化号码和内容 的短信
- 加入:
MessageUI.framework
import MessageUI
- 实现代理
MFMessageComposeViewControllerDelegate
- 发送短信
在项目中使用了FDFullscreenPopGesture手势,导致在编辑短信页面没有标题和取消按钮
解决办法:自定义标题和取消按钮
import MessageUI
// 实现代理
extension SmsTextVC: MFMessageComposeViewControllerDelegate{
// MARK: MFMessageComposeViewControllerDelegate
func messageComposeViewController(controller: MFMessageComposeViewController, didFinishWithResult result: MessageComposeResult) {
controller.dismissViewControllerAnimated(true, completion: nil)
switch result{
case MessageComposeResult.Sent:
print("短信已发送")
case MessageComposeResult.Cancelled:
print("短信已取消")
case MessageComposeResult.Failed:
print("短信发送失败")
default:
break
}
}
}
/// 发送短信 viewcontroller 页面
private var messageComposeController:MFMessageComposeViewController!
/// 在短信页面返回
func backForMFMessageCompose(){
if messageComposeController != nil {
messageComposeController.dismissViewControllerAnimated(true, completion: nil)
}
}
/// 发送短信
func sendSMS(){
if MFMessageComposeViewController.canSendText(){
messageComposeController = MFMessageComposeViewController()
messageComposeController.messageComposeDelegate = self
// 收信人
messageComposeController.recipients = receive.componentsSeparatedByString(",")
// 消息内容
messageComposeController.body = txt
//设置标题
let navigationItem = messageComposeController.viewControllers.last.navigationItem
navigationItem.title = "新短信"
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "取消", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(self.backForMFMessageCompose))
self.presentViewController(messageComposeController, animated: true, completion: nil)
}
}