点击时的iMessage扩展操作

时间:2016-11-12 17:02:51

标签: ios swift3 imessage-extension

我已成功创建了一个iMessage扩展程序,其中发件人可以选择图像,在图像顶部键入文本,然后将新图像和文本发送到另一个收件人。

目前,当收件人点击收到的邮件时,会将他们带到iMessage App Store下载应用程序。

我希望收件人不会被重定向到应用程序商店,而只是向他们展示他们收到的图片的更大视图。

如何实现这一目标(如果可能的话)的任何帮助都将不胜感激!

编辑: 经过更多的研究,我想知道是否可以将新创建​​的图像(包含图像和文本组合)作为MSSticker发送,因此当用户点击它时,它只是放大了?

2 个答案:

答案 0 :(得分:0)

将图像作为消息发送遵循MSMessage格式(单击消息将指导用户访问应用程序或应用程序商店)。您可以将图像作为贴纸发送,也可以将图像插入对话中!

答案 1 :(得分:0)

(如果有人在寻找迟来的启示)。

如果您发送的图像是作为附件发送的,则它会在接收者的信息流中仅显示为图像,而不与应用程序关联。仅当您发送MSMessage时,签名匹配才会生效,并要求接收者拥有该应用。

查看我的im-plausibilities sample演示,specifically

func sendAttachment() {
    guard let conversation = activeConversation else { fatalError("Expected a conversation") }
    guard
        let imageData = imageView?.image?.jpegData(compressionQuality: 0.8),
        let docUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
        else {
            dismiss()
            return
    }

    // WARNING this is not great practice - not robust if muliple messages sent without completing upload
    attachmentPath = URL(fileURLWithPath: "imPhoto.jpg", relativeTo: docUrl)
    if (try? imageData.write(to: attachmentPath!)) != nil {
        conversation.insertAttachment(attachmentPath!, withAlternateFilename: "imPhoto.jpg") { (error) in
            if let error = error {
                os_log("Error with insertAttachment(message)")
                print(error)
            }
        }
    }
    dismiss()
}