如何在MFMessageComposeViewController中启用摄像头?

时间:2017-08-22 17:21:24

标签: ios swift

我正在开发一个带有按钮的iOS应用程序,以使用SMS / iMessage报告问题。我正在使用MFMessageComposeViewController使用以下代码(Swift 3)呈现消息编写接口:

if(MFMessageComposeViewController.canSendText()){

        let controller = MFMessageComposeViewController()
        controller.messageComposeDelegate = self
        controller.body = "Example Message"
        controller.recipients = ["2345678901"]
        self.present(controller, animated: true, completion: nil)
    }

我还实现了MFMessageComposeViewControllerDelegate函数以正确解除。标准文本消息/ iMessage成功发送,但用户没有附加图像的选项。相机,iMessage应用程序等按钮都在那里,但它们被禁用且无法按下。如何启用这些按钮(特别是相机)以允许我的用户将图像附加到使用该应用程序编写的消息?

问题中的按钮: The Buttons in Question

编辑: 感谢Abdelahad提出的建议。我已经修改了他的响应以允许多个收件人并包含一个邮件正文。我还更新了它以删除已弃用的addingPercentEscapes(using: )方法。

以下是使用网址打开“消息”应用的解决方案。注意:这会将用户从应用中删除。

let recipients = "2345678901,3456789012" //Phone Numbers
let messageBody = "This is a test"
let sms: String = "sms://open?addresses=\(recipients)&body=\(messageBody)"
let smsEncoded = sms.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed)
let url = URL(string: smsEncoded!)
UIApplication.shared.openURL(url!)

但我仍然想要一个不会让用户退出应用程序的解决方案。这可能吗?为什么MFMessageComposeViewController会显示按钮而不启用它们?

1 个答案:

答案 0 :(得分:1)

不要使用MFMessageComposeViewController使用UIApplication.shared.openURL(url!),但这会将用户从应用中删除

var phoneToCall: String = "sms: +201016588557"
var phoneToCallEncoded = phoneToCall.addingPercentEscapes(using: String.Encoding.ascii)
var url = URL(string: phoneToCallEncoded)
UIApplication.shared.openURL(url!)