首先要感谢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);
}
//此实现不一定要放在Application onCreate中
finalString 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,newIWxCallback() {
@Override
publicvoidonSuccess(Object... arg0) {
}
@Override
publicvoidonProgress(intarg0) {
// TODO Auto-generated method stub
}
@Override
publicvoidonError(interrCode, String description) {
//如果登录失败,errCode为错误码,description是错误的具体描述信息
}
});
Intent intent = mIMKit.getConversationActivityIntent();
startActivity(intent);
finalString target = "testpro2";//消息接收者ID
finalString appkey = "23015524";//消息接收者appKey
Intent intent = mIMKit.getChattingActivityIntent(target, appkey);
startActivity(intent);
//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不是千牛登录账号,而是千牛设置的账户号