IM撤回訊息-iOS客戶端實現

weixin_34116110發表於2018-12-16

撤回端&&被撤回端

新增一種訊息型別:CallLogTypeRecall
新增兩種訊息狀態:CallLogStatusRecalling, CallLogStatusRecalled
在介面顯示時過濾掉CallLogStatusRecalling狀態的訊息,以及訊息型別為CallLogTypeRecall的訊息
CallLogStatusRecalled狀態的訊息顯示成撤回一條訊息的提示


撤回端

傳送一條撤回訊息型別的訊息,CallLogTypeRecall
訊息中包含需要被撤回訊息的唯一識別符號,讓被撤回端能找到這條訊息
撤回訊息傳送成功之後把需要被撤回的訊息的status標記為CallLogStatusRecalled
如果撤回訊息傳送失敗,彈框提示


被撤回端

收到CallLogTypeRecall訊息時,根據訊息中的唯一識別符號去尋找對應的訊息
1:如果訊息被找到了,把訊息的status置為CallLogStatusRecalled
2:如果訊息沒有被找到,根據唯一識別符號新建一條本地訊息,並且把status置為CallLogStatusRecalling(這時候介面上不會有任何變化),當收到那條需要被撤回當訊息時,就會查重到剛才新建的本地訊息,把status置為CallLogStatusRecalled(這時候在介面上會顯示對方撤回一條訊息),如果始終沒有收到,可以對CallLogStatusRecalling的狀態置之不理


剛開始接觸IM,第一次去實現撤回訊息
求指點

相關文章