首页 > 解决方案 > Twilio SWIFT API 获取消费消息总是返回 0

问题描述

我想在聊天频道旁边显示频道未使用或未读的消息数量(我认为这就是未使用的意思?)

目前我将消息发送到两个用户订阅的频道,一个私人聊天。然后在打开聊天窗口之前,我会检查频道是否有未使用的消息,但即使我调用 setNoMessagesConsumedWithCompletion,它也总是显示 0 条消息。

我正在使用 Swift API...我需要做什么才能找出我的频道中有多少消息尚未阅读?他们在什么时候被阅读?(当用户打开聊天频道并请求 getLastWithCount 时?)

我在文档中读到,您必须设置一些称为消费范围的东西才能获得未使用的消息,但我不知道您是如何在 SWIFT API https://www.twilio.com/docs/chat/consumption-horizo ​​n中做到这一点的这是针对 Javascript API 的,所以使用 Swift Api 可能更容易?

标签: iosswifttwiliotwilio-programmable-chat

解决方案


我想出了解决方案。根据文档,您需要更新上次使用的消息索引。因此,例如,如果用户打开了一个聊天窗口,您需要为该用户(或聊天客户端的实例)记录他们在关闭聊天之前看到的最后一条消息是什么。我将所有消息存储在消息数组中,并使用消息数组的长度更新最后使用的消息索引:

generalChannel?.messages?.setLastConsumedMessageIndex(NSNumber.init(value: self.messages.count), completion: { (result, count) in
        if !result.isSuccessful() {
            print(result.error.debugDescription)
        }
    })

然后,如果您在用户不在该频道时向该频道发送消息,这些消息将被记录为未消费,您可以通过调用获取该号码:

channel.getUnconsumedMessagesCount(completion: { (results, numberUnconsumed) in
                        print(numberUnconsumed)
                    })

推荐阅读