【问题标题】:Twilio SWIFT API get consumed messages always returns 0Twilio SWIFT API 获取消费消息总是返回 0
【发布时间】:2018-08-19 16:50:47
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ios swift twilio twilio-programmable-chat


    【解决方案1】:

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

    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)
                        })
    

    【讨论】:

    • 我认为消息索引不能始终与总消息数相同。最好的解决方案是获取最后加载的消息的索引并通过此函数传递它
    • 谁能帮帮我?当我创建一个群组并发送消息时,我遇到了类似的问题,然后在其他成员的设备上,未读消息计数不会更新为我正在发送的消息数量,直到用户阅读消息。
    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    相关资源
    最近更新 更多