Интересно, можно ли отправить изображение через сообщение в iMessageExtension. Я разрабатываю приложение, в котором отправителю и получателю необходимо увидеть одно и то же изображение.
В основном здесь DetailViewController с ImageView и ImageView.image должен отправляться с помощью сообщения.Отправка изображения в iMessageExtension
0
A
ответ
1
Есть несколько способов сделать это. Если вы просто пытаетесь отправить обычный неанимированный образ, вы можете избежать необходимости сохранять временные файлы на диск (который вы отправляете по телефону insertAttachment
на conversation
) и вместо этого используйте MSMessageTemplateLayout
. Вы можете сделать что-то вроде этого:
let message = MSMessage()
let layout = MSMessageTemplateLayout()
layout.image = myImage
message.layout = layout
conversation.insert(message, completionHandler: nil)
0
Код ниже фиксирует вид и по существу скриншотах, а затем акции его через IMessage. Протестировано это на iPhone 7 с iOS 10, работает.
let name = ""
let desc = ""
if MFMessageComposeViewController.canSendText() {
let messageVC = MFMessageComposeViewController()
messageVC.messageComposeDelegate = self
if MFMessageComposeViewController.canSendAttachments() {
let img = viewToCapture.getSnapshotImage()
let imageData = UIImagePNGRepresentation(img)
messageVC.addAttachmentData(imageData!, typeIdentifier: "image/png", filename: "image.png")
} else {
print("Message can't send attachments")
}
self.present(messageVC, animated: true, completion: nil)
}
let messageComposeViewController = configuredMessageViewController(name, detail: desc)
if MFMessageComposeViewController.canSendText() {
self.present(messageComposeViewController, animated: true, completion: nil)
} else {
shareStuff.msgError()
}
Обратите внимание, что вышеуказанное расширение UIView используется для захвата изображения с экрана. Если это ваше первое расширение, это глобальное так просто поставить код, где когда-либо вы хотите (но не в классе):
public func getSnapshotImage() -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.bounds.size, self.isOpaque, 0)
self.drawHierarchy(in: self.bounds, afterScreenUpdates: false)
let snapshotImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return snapshotImage
}
Я имею в виду, что, когда приемник прижимает сообщение будет открыть еще один ViewController и в этой точке зрения контроллера покажет изображение изображения, отправленного через сообщение – aatalyk
В основном здесь DetailViewController с ImageView и ImageView.image должен отправляться с помощью сообщения – aatalyk