MouMFMessageComposeViewController属性及代理方法解释和使用
环境配置
注意:MessageUI.framework使用之前加入此库**
* 属性方法解释说明
- 1.canSendText()-> bool 是否支持短信功能(类方法)
- 2.canSendSubject() 是否支持设置主题
- 3.canSendAttachments() 是否支持附件
- 4.recipients: [String] ? 收件人数组 (例:["186xxxx5666","176xxxx5656"] )
- 5.body (String) 短信内容
- 6.attachments:[[NSObject : AnyObject]]{get} 获得附件
- 7.func addAttachmentURL(attachmentURL:NSURL, withAlternateFilename alternateFilename:String?) ->Bool 添加附件地址
- 8.func addAttachmentData(attachmentData:NSData, typeIdentifier uti:String, filename:String) ->Bool 添加data类型附件
- 9.messageComposeDelegate 设置代理 (MFMessageComposeViewControllerDelegate)
- 10.isSupportedAttachmentUTI(uti:String) 是否接受具有指定的 UTI,作为附件的文件。
- 11.disableUserAttachments() 禁用邮件视图中的成分相机/附件按钮。
* MFMessageComposeViewControllerDelegate 代理方法
- (void)messageComposeViewController: (MFMessageComposeViewController *)controller
didFinishWithResult:(MessageComposeResult)result {
switch (result)
{
case MessageComposeResultCancelled:
LOG_EXPR(@”Result: SMS sending取消”);
break;
case MessageComposeResultSent:
LOG_EXPR(@”Result: SMS 发送成功”);
break;
case MessageComposeResultFailed:
[UIAlertView quickAlertWithTitle:@"短信发送失败" messageTitle:nil dismissTitle:@"关闭"];
break;
default:
LOG_EXPR(@”Result: SMS not sent”);
break;
}
使用步骤
在MessageUI.framework中主要有两个控制器类分别用于发送短信(MFMessageComposeViewController)和邮件(MFMailComposeViewController),它们均继承于UINavigationController。由于两个类使用方法十分类似,这里主要介绍一下MFMessageComposeViewController使用步骤:
- 1、创建
MFMessageComposeViewController
对象。 - 2、设置收件人
recipients
、信息正文body
,如果运行商支持主题和附件 - 3、的话可以设置主题
subject
、附件attachments
(可以通过canSendSubject
、canSendAttachments
方法判断是否支持) - 4、设置代理
messageComposeDelegate
(注意这里不是delegate属性,因为delegate
属性已经留给UINavigationController
,MFMessageComposeViewController
没有覆盖此属性而是重新定义了一个代理),实现代理方法获得发送状态。
代码实现:
//Mark:- 发送短信
func canSendText() -> Bool{
return MFMessageComposeViewController.canSendText()
}
//用来指示一条消息能否从用户处发送
func configuredMessageComposeViewController(phoneArray:Array<String>) -> MFMessageComposeViewController{
let messageComposeVC = MFMessageComposeViewController()
messageComposeVC.messageComposeDelegate = self
messageComposeVC.body = HTTPREQUEST_NULLKEY
messageComposeVC.recipients = phoneArray
return messageComposeVC
}
func messageComposeViewController(controller: MFMessageComposeViewController, didFinishWithResult result: MessageComposeResult) {
controller.dismissViewControllerAnimated(true, completion: nil)
}
if self.canSendText(){
let messageVC = self.configuredMessageComposeViewController(["18611024550"])
presentViewController(messageVC, animated: true, completion: nil)
} else {
MBProgressHUD.MBProgressHUDText("手机没有短信功能", showHUDView: self.view, delegate: self)
}
本站以现代、古代情诗为主,情诗网创办于2013年,以原创爱情诗歌、经典情诗、现代情诗、古代情诗、英文情诗、情诗绝句为主并收集古诗、古诗词、诗歌大全、诗词名句的文学门户。方便您下次继续阅读;可以放在浏览器的收藏夹中(快捷键Ctrl+D);或者看到喜欢或者有趣的诗词可以通过分享按钮给你的好友分享;情诗网是目前最全情诗大全网站之一。并欢迎广大诗歌爱好者阅览投稿!喜欢本站的话请大家把本站告诉给你朋友哦!地址是 www.qingshiwang.com !