Как отправить изображение в формате GIF через расширение iMessage
Я хочу отправить изображение в формате GIF из моего расширения iMessage. Сообщение отправляется с изображением, но проблема в том, что изображение не анимируется.
Мой подход:
let msg = msgList[indexPath.row]
let message = MSMessage()
let msgLayout = MSMessageTemplateLayout()
if let title = msg.message { msgLayout.caption = title }
if let msgImg = msg.image { msgLayout.image = msgImg }
message.layout = msgLayout
if let conversation = self.activeConversation {
conversation.insert(message) { error in
print("Insert message error: \(String(describing: error))")
}
}
Также пробовал с
mediaFileUrl
:
if let url = Bundle.main.url(forResource: "IMG_0673", withExtension: "gif") {
msgLayout.mediaFileURL = url
}
Но когда я попробовал с
MSSticker
GIF является анимированным.
Код:
do {
let sticker = try MSSticker(contentsOfFileURL: Bundle.main.url(forResource:"AS001494_20", withExtension: "gif")!,localizedDescription: "a gif image")
if let conversation = self.activeConversation {
conversation.insert(sticker) { error in
print(error)
}
}
} catch {
print("Sticker error: \(error.localizedDescription)")
}
Можно ли отправить анимированный GIF с помощью
MSMessage
и
MSMessageTemplateLayout
?
1 ответ
Вам может понадобиться использовать
insertAttachment(_:withAlternateFilename:completionHandler:)
и отправьте GIF в качестве вложения. Я также не мог заставить GIF-файлы анимироваться с помощью
MSMessageTemplateLayout
. Итак, у вас будет что-то вроде
let mediaURL = Bundle.main.url(forResource: "IMG_0673", withExtension: "gif")!
if let conversation = self.activeConversation {
conversation.insertAttachment(mediaURL, withAlternateFilename: nil) { error in
print("Insert attachment message error: \(String(describing: error))")
}
}
Удачного кодирования