融云不支持維護好友關系,但是內置信息中有一個信息類ContactNTFMessage來處理好友關系。
因此好友關系的添加由APP服務器自己維護。
具體方法:
1、User1向APP服務期發送添加好友請求
2、APP服務器請求融云服務器向User2發送ContactNTF信息
3、User2收到信息,向APP服務器發送反饋信息(拒絕、接受)
4、APP服務器請求融云服務器向User1發送ContactNTF信息并進行數據庫操作
以下用法可做參考。
我使用了融云IMkit中的會話列表,因此每次有消息過來就會在會話列表中出現,但是點擊他就會啟動單聊的窗口,而單聊窗口中不可能進行添加好友的操作吧,因此就要攔截這個ContactNTF信息,具體做法:
1、建立一個類實現ConversationListListener接口
然后重寫單擊事件的方法:
@Override
public boolean onConversationClick(Context context, View view, UIConversation uiConversation) {
Log.i("conversationlist", "click");
if(uiConversation.getMessageContent() instanceof ContactNotificationMessage)
{
ContactNotificationMessage message = (ContactNotificationMessage) uiConversation.getMessageContent();
Log.i("conversationlist", "contactmessage");
if(message.getOperation().equals(ContactNotificationMessage.CONTACT_OPERATION_REQUEST))
{
//這里進行你自己的操作,我是啟動了另一個Activity來處理這個消息
context.startActivity(intent);
}
else if(message.getOperation().equals(ContactNotificationMessage.CONTACT_OPERATION_ACCEPT_RESPONSE))
{}
else if(message.getOperation().equals(ContactNotificationMessage.CONTACT_OPERATION_REJECT_RESPONSE))
{}
return true;
}
else
{
return false;
}
}
這里注意的是return true的話就會進行你寫的操作,return false 的話就會進行融云IMKit的操作,所以不會影響到會話列表中聊天信息啟動單聊窗口,因為我們只攔截了這個ContactNTFMessage。
最后注冊這個監聽器就可以了,在RongIM init后,connect前。
RongIM.setOnReceiveMessageListener(new MyOnReceiveMessageListener());
服務器的話版本太多了,具體實現要看情況了