美文网首页
极光IM常用方法(日常记录)

极光IM常用方法(日常记录)

作者: cc_And | 来源:发表于2020-03-29 18:42 被阅读0次

前提条件 集成极光IM

一、发送消息

发送消息必须先登录

注册账号

    /**
     * 极光注册账号
     *
     * @param phone
     * @param pwd
     */
    private void iMRegister(String phone, String pwd) {
        JMessageClient.register(phone, pwd, new BasicCallback() {
            @Override
            public void gotResult(int i, String s) {
                if (0 == i) {//成功
                    Toast.makeText(ChatActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
                } else {//失败
                    Toast.makeText(ChatActivity.this, "注册失败", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

登录

 JMessageClient.login(phone, pwd, new BasicCallback() {
            @Override
            public void gotResult(int i, String s) {
                if (0 == i) {//成功
                    Toast.makeText(ChatActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
                } else {//失败
                    Toast.makeText(ChatActivity.this, "登录失败", Toast.LENGTH_SHORT).show();
                }
            }
        });
发送消息
  private void sendMessage(String phone, String content) {
        Message message = JMessageClient.createSingleTextMessage(phone, "app_key", content);
        if (message == null) {
            return;
        } else {
            //设置发送完成回调
            message.setOnSendCompleteCallback(new BasicCallback() {
                @Override
                public void gotResult(int i, String s) {
                    if (i == 0) {
                        //发送成功回调
                    } else {
                        //发送失败
                    }
                }
            });
            JMessageClient.sendMessage(message);
        }
    }
二、接受消息

在当前接受消息的activity或fragment注册绑定

        JMessageClient.registerEventReceiver(this);

解绑防止内存泄漏

   @Override
    protected void onDestroy() {
        super.onDestroy();
        //解绑极光接受消息
        JMessageClient.unRegisterEventReceiver(this);
    }

接收消息

    /**
     * 主线程接收在线消息
     **/
    public void onEventMainThread(MessageEvent event) {
        //获取事件发生的会话对象
        Message newMessage = event.getMessage();//获取此次离线期间会话收到的新消息列表
        String s = newMessage.getContent().toJson();
        try {
            JSONObject object = new JSONObject(s);
            String text = object.getString("text");
            //text是发送的内容
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
/**
 * 接收离线消息。
 * 类似MessageEvent事件的接收,上层在需要的地方增加OfflineMessageEvent事件的接收
 * 即可实现离线消息的接收。
 **/
public void onEventMainThread(OfflineMessageEvent event) {
    //获取事件发生的会话对象
    Conversation conversation = event.getConversation();
    List<Message> newMessageList = event.getOfflineMessageList();//获取此次离线期间会话收到的新消息列表
    //获取事件发生的会话对象
    for (int i = 0; i < newMessageList.size(); i++) {
        String s = newMessageList.get(i).getContent().toJson();
        try {
            JSONObject object = new JSONObject(s);
            String text = object.getString("text");
            //text是发送的内容
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

}

相关文章

网友评论

      本文标题:极光IM常用方法(日常记录)

      本文链接:https://www.haomeiwen.com/subject/guvuuhtx.html