最近一个多月终于忙完了,一直在做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