【问题标题】:Sending message in JSQMessagesController在 JSQMessagesController 中发送消息
【发布时间】:2015-09-04 07:54:33
【问题描述】:

我想发送我的消息,我知道它是通过

override func didPressSendButton(button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: NSDate!) {
    let message = JSQMessage(senderId: "alizade@my.co", senderDisplayName: "The Flash", date: NSDate(), text: text)

// SENDING CODE HERE
}

这个功能,但我不知道如何在按下发送按钮时发送它。

我搜索并找到了这个例子:

OneMessage.sendMessage(text, to: recipient.jidStr, completionHandler: { (stream, message) -> Void in
    JSQSystemSoundPlayer.jsq_playMessageSentSound()
        self.finishSendingMessageAnimated(true)
    })

但我没有 .sendMessage 方法。有什么建议吗?

【问题讨论】:

    标签: ios swift xmpp xmppframework jsqmessagesviewcontroller


    【解决方案1】:

    sendMessage 只是一个在框架本身之外编写的函数,我猜它是在 JSQMessagesViewController 的子类中找到的。您仍然希望触发在 didPressSendButton 中运行的任何逻辑。

    【讨论】:

      【解决方案2】:

      如果您使用数组作为 JSQMessagesViewController 的数据源,只需将消息(JSQMessage 类型)添加到数组并调用self.finishSendingMessageAnimated(true) 以触发刷新和动画。

      如果您使用核心数据,则需要将消息存储在数据库中,并依赖 NSFetchedResultsController 在controllerDidChangeContent 或其他回调方法中触发更新。

      由于您使用的是 XMPPFramework,您可能还想编写消息 xml 元素并使用 XMPPStream 发送它。

      希望有帮助!

      【讨论】:

        猜你喜欢
        • 2019-07-23
        • 2020-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多