通过少量的代码,能够实现具有IM功能的APP,同时包含标准的UI(最近会话列表,聊天窗口)
1、如果您单纯是想体验云旺(OpenIM)的功能,建议直接跳过这一步。直接查看快速集成。
2、在这个集成教程中,我们使用已创建的Demo应用,向您展示如何快速地集成OpenIMKit(Android)。
3、您需要入驻开发者并且创建应用后,才能集成云旺(OpenIM)并且发布您的App。
参考:集成SDK前的准备工作
4、您需要在完成快速集成后,将一些内容替换为您申请到的特定内容,才能发布您的App。对于这些需要替换的内容,会在教程中以注意点的形式标识出。
5、有其它问题,请在论坛中提问咨询
如果您单纯是想体验云旺(OpenIM)的功能,建议直接跳过这一步。直接下载Demo。
repositories { maven { url 'http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/' } }
dependencies { //必选 compile 'com.alibaba.mobileim:IMCore:2.0.2.1@aar' //可选,如果使用SDK的UI必须添加该依赖,如果不使用SDK的UI,完全自己开发UI则无需添加该依赖 compile 'com.alibaba.mobileim:IMKit:2.0.2.1@aar' //可选,如果使用小视频功能必须添加该依赖,如果不使用小视频功能则无需添加该依赖 compile 'com.alibaba.mobileim:RecorderSDK:1.0.0@aar' }
repositories { flatDir { dirs 'libs' } }
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile(name: 'IMCore-2.0.2', ext: 'aar') compile(name: 'IMKit-2.0.2', ext: 'aar') }
初始化方法的调用必须放在Application onCreate方法中
如果您单纯是想体验云旺(OpenIM)的功能,建议拷贝使用以下代码。如果您已经有了百川appkey,请将appkey请替换成您自己的百川appkey,如何查看appkey
final String APP_KEY = "23015524"; //必须首先执行这部分代码, 如果在":TCMSSevice"进程中,无需进行云旺(OpenIM)和app业务的初始化,以节省内存; SysUtil.setApplication(this); if(SysUtil.isTCMSServiceProcess(this)){ return; } //第一个参数是Application Context //这里的APP_KEY即应用创建时申请的APP_KEY,同时初始化必须是在主进程中 if(SysUtil.isMainProcess(application)){ YWAPI.init(Application, APP_KEY); }
//此实现不一定要放在Application onCreate中 final String userid = "testpro1"; //此对象获取到后,保存为全局对象,供APP使用 //此对象跟用户相关,如果切换了用户,需要重新获取 YWIMKit mIMKit = YWAPI.getIMKitInstance(userid, APP_KEY);
登录需要用到IM账号跟IM密码,如果您单纯是想体验云旺(OpenIM)的功能,建议拷贝使用以下代码。如果您已经有了百川appkey,您可能需要关注下如何开通IM账号
注意:建议在应用登录的时候,就执行IM的登录,避免因为使用问题造成消息到达率偏低。
//开始登录 String userid = "testpro1"; String password = "taobao1234"; IYWLoginService loginService = mIMKit.getLoginService(); YWLoginParam loginParam = YWLoginParam.createLoginParam(userid, password); loginService.login(loginParam, new IWxCallback() { @Override public void onSuccess(Object... arg0) { } @Override public void onProgress(int arg0) { // TODO Auto-generated method stub } @Override public void onError(int errCode, String description) { //如果登录失败,errCode为错误码,description是错误的具体描述信息 } });
Intent intent = mIMKit.getConversationActivityIntent(); startActivity(intent);
final String target = "testpro2"; //消息接收者ID final String appkey = "23015524"; //消息接收者appKey Intent intent = mIMKit.getChattingActivityIntent(target, appkey); startActivity(intent);
//userid是客服帐号,第一个参数是客服帐号,第二个是组ID,如果没有,传0 EServiceContact contact = new EServiceContact("userid", 0); //如果需要发给指定的客服帐号,不需要Server进行分流(默认Server会分流),请调用EServiceContact对象 //的setNeedByPass方法,参数为false。 //contact.setNeedByPass(false); Intent intent = mIMKit.getChattingActivityIntent(contact); startActivity(intent);
有些情况下要想使用Fragment方式来打开界面(单聊,客服,群),请参考这里
截止当前,恭喜您已经完成了核心功能的集成。如果在此过程中碰到了问题,请查看这里
需要更多高级功能,请往下看。
上述的快速集成文档能够让您以最快的速度完成OpenIM SDK的集成。您可能会对如下主题感兴趣: