我正在制作一个 iMessage 扩展,涉及用户来回发送图片。他们都需要能够访问从彼此那里收到的图像,并在自己的终端上使用它。例如,如果 USER 1 向 USER 2 发送一张小狗的图片,则消息布局的图像属性将为小狗。然后用户 2 应该能够点击该消息,小狗将加载到屏幕上的 ImageView 中。到目前为止,我不知道该怎么做。
在这里我将布局图像设置为小狗的图像。
@IBAction func sendPicturePressed(_ sender: AnyObject) {
if chosenImage.image != nil {
let session = MSSession()
let message = MSMessage(session: session)
let conversation = self.activeConversation
let components = URLComponents()
let layout = MSMessageTemplateLayout()
let image = chosenImage.image
layout.image = image
message.layout = layout
message.url = components.url!
conversation?.insert(message, completionHandler: { (error) in
self.dismiss()
})
}
}
现在,当第二个用户点击小狗时,我想在他们的屏幕上为小狗设置 ImageView 。不确定如何,但我想做的是:
override func willBecomeActive(with conversation: MSConversation) {
imageView.image = conversation.selectedMessage.layout.image
//There is no image property to access this like I've provided, that's just what I'm trying to accomplish.
}
最佳答案
您无法访问其他用户发送的布局图像。 https://forums.developer.apple.com/thread/53174
The selected Message having a nil layout is expected. Received messages won't have a layout object filled in.
你可以做的是,在发件人方面,你不仅可以将带有图像布局的 MSMessage
插入到 MSConversation
中,还可以将图像副本上传到你的服务器并标记MSMessage.URL
中的网络图像 URL。
因此下次当用户选择一条消息时,您可以打开 MSMessage.URL
并找到图像 URL,然后从您的服务器下载它。
关于ios10 - 如何从接收用户端的 MSMessage 布局访问图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40209653/