Android 環信擴充套件訊息(自定義訊息)
阿新 • • 發佈:2019-01-09
之前整合即時通訊(環信)的時候,需要用到自定義訊息的功能。而在開發過程中遇到了許多的問題,之前工作比較忙,現在有時間了記錄一下。
第一步:
首先,在聊天介面新增一個傳送擴充套件訊息的MenuItem:
在ChatFragment類中定義一個常量,用來ItemId。
private static final int RECORDS = 20;
在registerExtendMenuIte()方法中註冊MenuItem:
inputMenu.registerExtendMenuItem("名片", R.drawable.ease_blue_add, RECORDS, extendMenuItemClickListener );
在onExtendMenuItemClick()方法中設定點選事件,傳送訊息:
注意:一定要設定聊天的型別,預設是單聊,如果不設定,那麼在群組或者是聊天室等多人聊天時,對方是無法接收到正確訊息的。
//設定訊息型別,預設是單聊,如果不設定,在群聊中就收不到訊息
if (chatType == EaseConstant.CHATTYPE_GROUP) {
message.setChatType(EMMessage.ChatType.GroupChat);
} else if (chatType == EaseConstant.CHATTYPE_CHATROOM) {
message.setChatType(EMMessage.ChatType.ChatRoom );
}
第二步:
在easeui庫中找的EaseMessageAdapter類(這個是訊息介面卡)。
定義兩個常量,用於表示訊息型別(注意:擴充套件一種訊息型別,需要定義兩個常量:接收+傳送):
private static final int MESSAGE_TYPE_SENT_RECORDS = 14;
private static final int MESSAGE_TYPE_RECV_RECORDS = 15;
getViewTypeCount()修改返回的訊息型別:+2(每擴充套件一種訊息型別,返回的數值+2)
在createChatRow()方法中設定訊息的類:
其中EaseChatRowRecords類,是自己定義的訊息型別,繼承EaseChatRow類:
到此已經完成了擴充套件訊息的開發。