插入消息,iMessage应用程序swift 3

问题描述 投票:0回答:2

所以基本上我一直在尝试创建一个非常简单的 iMessage 应用程序,当按下按钮时,它会在对话中插入一条消息,有点像本教程中看到的那样:我遇到的唯一问题是,当按下按钮时按下后,它会运行该功能,但是,没有任何结果发生,我真的不确定为什么会出现这种情况。一段时间以来,我一直在努力寻找解决这个问题的方法,如果有人能好心地快速浏览一下我的代码,也许指出我哪里出错了,或者我是否遗漏了一些东西,我将非常感激。任何有关该主题的帮助将不胜感激,谢谢。

 @IBAction func funcSend(_ sender: Any) {

    let conversation = activeConversation
    let session = conversation?.selectedMessage?.session

    let layout = MSMessageTemplateLayout()
    layout.caption = "Hi there"

    var components = URLComponents()
    let queryItem = URLQueryItem(name: "key", value: "value")
    components.queryItems = [queryItem]

    let message = MSMessage(session: session!)
    message.layout = layout
    message.url = components.url
    message.summaryText = "Sent hi there message"

    conversation?.insert(message)

}
ios swift swift3 imessage imessage-extension
2个回答
1
投票

看起来不错,尝试在最后调用dismiss()

这是适合我的代码

@IBAction func onSend(_ sender: Any) {
    print("sending...")
    guard let conversation = activeConversation else { fatalError("Expected a conversation") }
    guard let message = composeMessage(session: conversation.selectedMessage?.session)
        else { return }

    // Add the message to the conversation.
    conversation.insert(message) { error in
        if let error = error {
            print(error)
        }
    }
    // This one
    dismiss()
}

以及我如何创建消息

// MARK: Messaging
func composeMessage(session: MSSession? = nil) -> MSMessage? {
    let layout = MSMessageTemplateLayout()
    var components = URLComponents()
    let caption = URLQueryItem(name: "caption", value: self.melody)
    let decodedMelody = URLQueryItem(name: "melody", value: self.melody)

    components.queryItems = [caption, decodedMelody]

    let message = MSMessage(session: session ?? MSSession())
    layout.image = self.screenImage.image

    layout.caption = "Melody built with haptic and vibro."
    layout.subcaption = "sent via iVibrio"
    message.summaryText = "something summary"

    if let conversation = activeConversation,
        let msg = conversation.selectedMessage{

        if msg.senderParticipantIdentifier == conversation.localParticipantIdentifier {
            layout.caption =  "$\(msg.senderParticipantIdentifier.uuidString) My msg"
        }
        else{
            layout.caption =  "$\(msg.senderParticipantIdentifier.uuidString) Edited msg"
        }
    }

    message.url = components.url!
    message.layout = layout

    return message
}

完整示例/代码的链接


-1
投票

所以基本上我一直在尝试创建一个非常简单的 iMessage 应用程序,当按下按钮时,它会在对话中插入一条消息,有点像本教程中看到的那样:我遇到的唯一问题是,当按下按钮时按下后,它会运行该功能,但是,没有任何结果发生,我真的不确定为什么会出现这种情况。一段时间以来,我一直在努力寻找解决这个问题的方法,如果有人能好心地快速浏览一下我的代码,也许指出我哪里出错了,或者我是否遗漏了一些东西,我将非常感激。任何有关该主题的帮助将不胜感激,谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.