最近一個多月終於忙完了,一直在做app集成和完善實時聊天功能,特此記錄一下。。。
以前用過環信的實時聊天,不得不說環信確實做得好,一個easyUi就能讓你舒舒服服的專心寫其他的,不過因爲收費,所以這次聽我們產品的用免費的極光im ~。~
1。首先沒得說 去註冊極光im的賬號 appk之類的去吧 然後把需要的權限那些配置文件粘貼到自己的Manifest中 該修改的要記得修改稱自己的。
2。導入極光im的在線庫 我用的是這個二個
compile 'cn.jiguang.sdk:jmessage:2.9.0' ;compile 'cn.jiguang.sdk:jcore:2.0.0';
3。初始化極光
JMessageClient.setDebugMode(true); JMessageClient.init(this);
4。多說一句,因爲即時聊天是依靠長鏈接的,也就是俗稱的呼吸鏈接,所以,所有依靠極光功能的都必須在登錄的前提下!!!謹記(因長時間不使用的話極光im會掉線)。
5,。註冊極光賬號 可以前臺做,也可以後臺做,一般都是後臺做,因爲要進行用戶歸集~ 前臺註冊的話極光有提供註冊的api
6,登錄 同上
7,發消息,極光發消息都需要到message這個對象,然後通過修改這個對象實現發文本、圖片、自定義消息之類的功能。
8,收消息, 只要你寫了
//註冊接收消息事件 JMessageClient.registerEventReceiver(this);
這個函數 就可以在onevent回調中獲取到各種離線,在線的消息~
9,聊天曆史記錄 在下面這個對象中取!卸載APP的話,歷史記錄也會隨之消失~
mConv = JMessageClient.getSingleConversation(username); if (mConv != null) { Log.e("mConv", "mConv存在"); } else { mConv = Conversation.createSingleConversation(username); }
10,即時消息通知點擊需要用到這個receiver
public class NotificationClickEventReceiver { private Context mContext; public NotificationClickEventReceiver(Context context) { mContext = context; //註冊接收消息事件 JMessageClient.registerEventReceiver(this); } public void onEvent(MessageEvent event) { Intent intent = new Intent(); intent.setAction("refalsh"); mContext.sendBroadcast(intent); } public void onEvent(NotificationClickEvent notificationClickEvent) { if (null == notificationClickEvent) { return; } Message msg = notificationClickEvent.getMessage(); if (msg != null) { final UserInfo info = msg.getFromUser(); JMessageClient.getUserInfo(info.getUserName(), new GetUserInfoCallback() { @Override public void gotResult(int i, String s, final UserInfo userInfo) { //消息通知欄點擊doing } }); } } }
再小的細節就不說了 over