需要在 iMessage Extension 中的 insertText 方法上调用 didStartSending

Posted

技术标签:

【中文标题】需要在 iMessage Extension 中的 insertText 方法上调用 didStartSending【英文标题】:Need to call didStartSending on insertText method in iMessage Extension 【发布时间】:2018-12-05 13:08:30 【问题描述】:

我创建了一个 iMessage 应用程序来发送带有链接的图像。而且我不希望接收者强制拥有相同的应用程序。

在 IMessage 扩展中有什么方法可以调用 MSMessagesAppViewController didStartSending 重写方法而不使用插入方法发送消息。

以下代码用于在 imessages 扩展上发送消息。

guard let conversation = activeConversation else  fatalError("Expected a  conversation") 
let strUrl = "https://www.google.com/"
let layout = MSMessageTemplateLayout()
        layout.image = image
        layout.imageTitle = imageName
        layout.caption = strUrl

        let msgToSend = MSMessage()
        msgToSend.url = URL.init(string: strUrl)
        msgToSend.layout = layout

      //  conversation.insert(msgToSend, completionHandler: (error) in
      //      print(error?.localizedDescription ?? "")
      //  )
        conversation.insertText(strUrl, completionHandler:  (error) in
            print(error?.localizedDescription ?? "")
        )

【问题讨论】:

【参考方案1】:

是否强制使用insertText

看来您可以使用sendText() 方法直接发送文本消息,而无需使用iMessage 文本字段。

希望这行得通。

    conversation.sendText(strUrl, completionHandler:  (error) in
        print(error?.localizedDescription ?? "")
    )

【讨论】:

以上是关于需要在 iMessage Extension 中的 insertText 方法上调用 didStartSending的主要内容,如果未能解决你的问题,请参考以下文章

iOS App Extension入门

App Store 中的 iMessage 应用程序无效

iMessage 中的贴纸数量

以编程方式在 ios 中的 iMessage 中发送图片+文本?

提交 iMessage 贴纸包需要 iPad 截图吗?

为 iMessage 动态加载贴纸