Jam*_*Don 2 mfmessagecomposeviewcontroller ios10
我的应用程序中有消息发送功能,并使用 MFMessageComposeViewController 实现了相同的功能。我可以在 iOS9 中将照片附加到消息中,但在 iOS 10 中不行吗?有人有同样的问题吗?
小智 7
Swift 5.0 版本:
调用以下名为 的方法displayMessageInterface
:
- 重要注意事项:
composeViewController.addAttachmentData(dataImage!, typeIdentifier: "image/png", filename: "ImageData.png")
abc.png
在上面的行中,在我的情况下,文件名必须是类型,或者abc.jpeg
如果您使用的是 jpeg 图像数据,则类型标识符必须分别跟随image/png
和image/jpeg
。我费了很大劲才发现这一点。即使其他答案已经足够了,我还是写这个答案的原因。
有关 typeIdentifiers 的更多信息,请使用以下链接:https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html#//apple_ref/doc/uid/TP40009259-开关1
fileprivate func displayMessageInterface() {
if MFMessageComposeViewController.canSendText() {
let composeViewController = MFMessageComposeViewController()
composeViewController.messageComposeDelegate = self
composeViewController.body = "Enter your text body here."
if MFMessageComposeViewController.canSendAttachments() {
let image = UIImage(named: "image-name")!
let dataImage = image.pngData()
guard dataImage != nil else {
return
}
composeViewController.addAttachmentData(dataImage!, typeIdentifier: "image/png", filename: "ImageData.png")
}
self.present(composeViewController, animated: true)
} else {
print("Can't send messages.")
}
}
Run Code Online (Sandbox Code Playgroud)
由于我在上面的方法中提到了委托,因此您可以在以下情况下使用它UIViewController
:
extension UIViewController: MFMessageComposeViewControllerDelegate {
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) {
if result == .failed {
print("could not send message")
}
self.dismiss(animated: true)
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3179 次 |
最近记录: |