【问题标题】:iMessage extension action when tapped点击时的 iMessage 扩展操作
【发布时间】:2016-11-12 17:02:50
【问题描述】:

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

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

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

任何有关如何实现这一点的帮助(如果可能)将不胜感激!


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

【问题讨论】:

  • 您可以在 mac 中执行此操作,其中链接将有助于导航以打开大图像,但我们不能限制用户打开应用商店,因为它在 iPhone/iPad 中不受我们控制。

标签: ios swift3 imessage-extension


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    (万一有人在寻找迟来的启蒙)。

    如果您将创建的图像作为附件发送,那么它会在接收者的流中显示为仅图像,而不与应用关联。只有当您发送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()
    }
    

    【讨论】:

      猜你喜欢
      • 2017-01-19
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 2017-01-26
      相关资源
      最近更新 更多