解除好友關(guān)系步驟

由于融云沒(méi)有維護(hù)好友關(guān)系,所以同一個(gè)appKey下,都能聊,所以當(dāng)解除好友關(guān)系的時(shí)候,必須要自己去處理相應(yīng)的邏輯,那么怎么去處理呢,現(xiàn)在我有兩個(gè)思路
  1. 當(dāng)還未是好友時(shí)候,不能給相應(yīng)的聊天入口,當(dāng)是好友的時(shí)候,就給予好友關(guān)系的入口。
  2. 上面的這些處理相應(yīng)的簡(jiǎn)單一些,難點(diǎn)在于怎樣在解除好友關(guān)系的時(shí)候怎么去處理相應(yīng)的邏輯
思路一:
當(dāng)我們解除好友關(guān)系的時(shí)候,將本地的對(duì)話列表刪除,刪掉相應(yīng)的歷史記錄。并且將被刪除人拉成黑名單,這樣就可以實(shí)現(xiàn)相應(yīng)的解除好友功能,如果重新加上好友,就將相應(yīng)的好友成員從黑名單中拉出來(lái)
   if (isChecked) {
                    /**
                     * 將某個(gè)用戶加到黑名單中。
                     *
                     * @param userId   用戶 Id。
                     * @param callback 加到黑名單回調(diào)。
                     */
                    RongIM.getInstance().addToBlacklist(member_id, null);
                } else {
                    /**
                     * 將個(gè)某用戶從黑名單中移出。
                     *
                     * @param userId   用戶 Id。
                     * @param callback 移除黑名單回調(diào)。
                     */
                    RongIM.getInstance().removeFromBlacklist(member_id, null);
思路二:
解除好友關(guān)系的時(shí)候,刪除本地列表和記錄,刪除歷史記錄,同時(shí)向相應(yīng)的被刪除發(fā)送通知,被刪除人進(jìn)入相應(yīng)的對(duì)話界面的時(shí)候拉取歷史記錄,如果最后一條出現(xiàn)相應(yīng)的通知字段相對(duì)應(yīng),將好友關(guān)系重置,此時(shí)發(fā)不出相應(yīng)的信息,同時(shí)應(yīng)該設(shè)置接收監(jiān)聽器,防止被刪除人,停留在對(duì)話頁(yè)面,一旦接收到相應(yīng)的通知,也重置好友關(guān)系。在這之前也應(yīng)該在通過(guò)好友關(guān)系的時(shí)候向該好友發(fā)送一條消息,這樣就防止了在刪除后再次通過(guò)好友請(qǐng)求,被刪除人最后一條仍然為被刪除的那條消息,導(dǎo)致發(fā)送不了消息。
   /**
     * 獲取歷史對(duì)話通過(guò)這種歷史對(duì)話,判斷相應(yīng)的標(biāo)記,實(shí)現(xiàn)閱后即焚
     * "RC:TxtMsg",
     */
    private void getHistoryMessage() {
        RongIMClient.getInstance().getHistoryMessages(mConversationType, mTargetId, -1, 100, new RongIMClient.ResultCallback<List<Message>>() {
            @Override
            public void onSuccess(List<Message> messages) {
                if (null != messages && messages.size() > 0) {
                 

                        if (messages.get(0).getContent() instanceof InformationNotificationMessage && messages.get(0).getObjectName().equals("RC:InfoNtf")) {
                            String message = ((InformationNotificationMessage) messages.get(0).getContent()).getMessage();
                            if (message.indexOf("已與你解除好友關(guān)系") != -1) {
                                isFriend = false; // 解除了好友關(guān)系
                            }
                        }
                    }

                }
            }

            @Override
            public void onError(RongIMClient.ErrorCode errorCode) {

            }
        });
    }
  /**
     * 監(jiān)聽接受到的數(shù)據(jù)
     */
    private void initReceiveConversationNew() {
        RongIM.setOnReceiveMessageListener(new RongIMClient.OnReceiveMessageListener() {
            @Override
            public boolean onReceived(Message message, int i) {
               if(null != message && message.getContent() instanceof InformationNotificationMessage && message.getObjectName().equals("RC:InfoNtf")) {
                    InformationNotificationMessage infoMsg = (InformationNotificationMessage) message.getContent();
                    String msg = infoMsg.getMessage();
                    if (msg.indexOf("已與你解除好友關(guān)系") != -1) {
                        isFriend = false; // 解除了好友關(guān)系
                    }
                }
                return false;
            }
        });
    }
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容