首先要感谢Android 技术 @淘子磊

最近开发中要实现在线客服和客服热线功能,实现在线客服有很多种方式,我觉得阿里百川做的事很好好的,无论是集成Step方面还是UI适配方面,关键还是免费的……

附上链接:

https://login.taobao.com/member/login.jhtml?f=bcbsconsole&sub=true&redirectURL=http%3A%2F%2Fconsole.baichuan.taobao.com%2Fapplications.htm%3Fspm%3Da3c0d.8121624.0.0.9SD1l2

 

在app的build.gradle中添加

 

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
  
    //必选
    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'
  
}

 

 

repositories {
    maven { url 'http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/' }
    flatDir {
        dirs 'libs'
    }
}

 

初始化方法的调用必须放在Application onCreate方法中

如果您单纯是想体验云旺(OpenIM)的功能,建议拷贝使用以下代码。

如果您已经有了百川appkey,请将appkey请替换成您自己的百川appkey,如何查看appkey

finalString 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);

}

Step3 获取SDK对象实现

//此实现不一定要放在Application onCreate中

finalString userid = "testpro1";

//此对象获取到后,保存为全局对象,供APP使用

//此对象跟用户相关,如果切换了用户,需要重新获取

YWIMKit mIMKit = YWAPI.getIMKitInstance(userid, APP_KEY);

Step4 登录

登录需要用到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,newIWxCallback() {



    @Override

    publicvoidonSuccess(Object... arg0) {

    }



    @Override

    publicvoidonProgress(intarg0) {

        // TODO Auto-generated method stub

    }



    @Override

    publicvoidonError(interrCode, String description) {

        //如果登录失败,errCode为错误码,description是错误的具体描述信息

    }

});

Step5 打开会话列表

打开会话列表(Activity)

Intent intent = mIMKit.getConversationActivityIntent();

startActivity(intent);

Step6 打开单聊窗口

打开普通聊天窗口(Activity)

finalString target = "testpro2";//消息接收者ID

finalString appkey = "23015524";//消息接收者appKey

Intent intent = mIMKit.getChattingActivityIntent(target, appkey);

startActivity(intent);

打开客服聊天窗口(Activity)

//userid是客服帐号,第一个参数是客服帐号,第二个是组ID,如果没有,传0

EServiceContact contact = newEServiceContact("userid",0);

//如果需要发给指定的客服帐号,不需要Server进行分流(默认Server会分流),请调用EServiceContact对象

//的setNeedByPass方法,参数为false。

//contact.setNeedByPass(false);

Intent intent = mIMKit.getChattingActivityIntent(contact);

startActivity(intent);

其它更多的打开窗口方式

请注意:

Step 1:如果想集成成功,必须服务端集成且提供给客户端IM账号密码,

否则,就会出现点击发送按钮无效果的坑,

Step 2: userid不是千牛登录账号,而是千牛设置的账户号