Code Monkey home page Code Monkey logo

imclientwithframework's Introduction

IMSDK

基于融云的即时通讯SDK

Dependency

repositories {
    maven {
        url "http://192.168.1.3:8081/nexus/content/repositories/VivaVideo/"
    }
}
dependencies{
     compile 'com.vivavideo.mobile:imapi:1.61.16101901@aar'
     compile 'com.vivavideo.mobile:imcore:1.39.16101902@aar'
}

Usage

  • Step 1---------实现BaseMessageTemplate
@TemplateTag(messageContent = XYTextMessage.class)  //必须配Tag,融云SDK有使用到。
public class TextMessageTemplate implements BaseMessageTemplate{

     @Override
     public View getView(View convertView, int position, ViewGroup parent, UIMessage data) {
      //do something...
     }

     @Override
     public void onItemClick(View view, int position, UIMessage data) {

     }

     @Override
     public void onItemLongClick(View view, int position, UIMessage data) {

     }

     @Override
     public void destroyItem(ViewGroup group, Object template) {

     }
}


  • Step 2---------注册Message类
IMservice imService = new IMServiceImpl();
if (imService != null) {
     Log.d(TAG, "init ImService");
     imService.init(this, APP_KEY);// 公网环境
     if (getApplicationInfo().packageName.equals(getCurProcessName(getApplicationContext()))) {
         imService.registerMessageTemplate(livePlayerService.getTextMessageTemplate());
         imService.registerMessageType(XYTextMessage.class);
         //注册消息接受回调,本例子通过EventBus实现消息路由
         imService.registerMessageEvent(new XYIMOnReceiveMessageListener() {
             @Override
             public boolean onReceived(XYMessage message, int left) {
                   Log.d("APP", "onReceived left = " + left);
                   LiveIMUtil.getEventBus().post(new BusEvent.MessageReceived(message, left));
                   return false;
             }
         });
     }
}
  • Step 3---------连接服务
imService.connect(TOKEN,XYIMConnectCallback);
imService.setCurrentUserInfo(new XYIMUserInfo(userId,userName,portraitUrl));
  • Step 4---------构造消息(XYMessage)并发送
XYTextMessage content = XYTextMessage.obtain(text);
XYMessage msg = XYMessage.obtain(targetId, XYConversationType, content);
msg.setMessageDirection(XYMessage.MessageDirection.SEND);
//设置该消息用户
XYIMUserInfo myInfo = imService.getCurrentUserInfo();
msg.getContent().setUserInfo(myInfo);
//发送消息,回调发送状态
imService.sendMessage(msg,new IMSendMessageCallback(),new XYIMResultCallback<XYMessage>());

  • Step 5--------接受消息
通过之前注册的XYIMOnReceiveMessageListener处理。

imclientwithframework's People

Contributors

xiyoumark avatar xiyoumc avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

quvideo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.