Abd*_*hab 6 android twilio twilio-api twilio-programmable-chat
嗨,我正在通过在 android 中使用 Twilio 编程聊天在聊天基础应用程序中工作,但面临一个奇怪的问题。我有底部导航,我显示聊天的总未读计数和聊天列表,用户可以在其中看到每个聊天的个人未读计数。当用户单击个人时未读聊天然后未读计数重置为零,这完美地工作,但是当我返回聊天列表并突然收到新消息时,聊天列表屏幕更新为新消息,但未读计数为零。底部导航的总通知计数是工作正常。几秒钟后,当新消息再次收到时,它的个人计数被接收并完美地工作
问题是当用户返回聊天列表并在两三秒内收到新消息时,未读计数在 10 秒或更长时间后返回 null 或零,个人聊天的未读计数工作完美。以下是个人阅读计数的代码示例
// indivisual read count get on channel
subscribedChannel.getUnconsumedMessagesCount(object : CallbackListener<Long>() {
override fun onSuccess(count: Long?) {}})
Run Code Online (Sandbox Code Playgroud)
底部导航总阅读次数的代码
chatClient!!.channels.getUserChannelsList(object : CallbackListener<Paginator<ChannelDescriptor>>() {
internal var countCustomer: Long = 0
internal var countProvider: Long = 0
override fun onSuccess(channelDescriptorPaginator: Paginator<ChannelDescriptor>) {
for (descriptor in channelDescriptorPaginator.items) {
// if (appPreferences.getBoolean(Common.IS_LOGIN))
val splitData=descriptor.uniqueName.split("_")
// Log.e(TAG,"unique name is "+descriptor.uniqueName)
if (splitData.size==1)
{
if (splitData[0] == session.userId)
{
Log.e(TAG,"unique name is size one"+descriptor.uniqueName)
countCustomer += descriptor.unconsumedMessagesCount
}
}
if (splitData.size==2)
{
if (splitData[0] == session.userId || splitData[1] == session.userId)
{
countCustomer += descriptor.unconsumedMessagesCount
if (descriptor.unconsumedMessagesCount>0)
{
Log.e(TAG,"unique name is size two "+descriptor.uniqueName)
}
}
}
//if (appPreferences.getBoolean(Common.IS_LOGIN_PROVIDER))
/* if (descriptor.uniqueName.split("_")[1].equals(session.userId))
countProvider += descriptor.unconsumedMessagesCount*/
}
if (channelDescriptorPaginator.hasNextPage())
channelDescriptorPaginator.requestNextPage(this)
else {
val twilioCountData = TwilioCountData(countCustomer, countProvider)
e.onSuccess(twilioCountData)
}
}
})
Run Code Online (Sandbox Code Playgroud)
我还在下面的链接https://gofile.io/d/yF8qNP 中附上了用例视频。任何帮助将不胜感激
归档时间: |
|
查看次数: |
184 次 |
最近记录: |