最近公司项目需求,接入客服类的SDK
1.最开始集成了---智齿的SDK(后面发现不合适就换了Udesk)
2.集成UDESK(SDK)官网地址 UDESK官网
写这个帖子,是估计后续会有很多这方面的深入开发,网上对于这个UDESK的介绍或者开发博客很少,想记录下,以后或许自己也再次 用得上
以上是一个背景吧
开发文档-Udesk
这个图是,Udesk-sdk官方的的代码结构图
吐槽一下:这个SDK,他们还没做成依赖,必须你下他们代码DEMO,然后自己项目里面加一个module,引入进去
SDK下载地址
https://github.com/udesk/UdeskSDK-Android
一.初始管理员后台创建应用是生成的对应app key 和 app id
KEY ID的配置去后台里面配置就行了
UdeskSDKManager.getInstance().initApiKey(context, "you domain","App Key","App Id");
注意:域名不要带有http://部分,加入注册生成的域名是"http://udesksdk.udesk.cn/" ,只要传入"udesksdk.udesk.cn"
二.设置UdeskConfig配置信息。
说明:配置的功能根据你们实际的需要进行选择,都有默认行为。 最基本设置用户的基本信息 setDefualtUserInfo
默认系统字段是Udesk已定义好的字段,开发者可以直接传入这些用户信息,供客服查看。
String sdktoken = “用户唯一的标识”;
Map<String, String> info = new HashMap<String, String>();
**//sdktoken 必填**
info.put(UdeskConst.UdeskUserInfo.USER_SDK_TOKEN, sdktoken);
//以下信息是可选
info.put(UdeskConst.UdeskUserInfo.NICK_NAME,"昵称");
info.put(UdeskConst.UdeskUserInfo.EMAIL,"0631@163.com");
info.put(UdeskConst.UdeskUserInfo.CELLPHONE,"15651818750");
info.put(UdeskConst.UdeskUserInfo.DESCRIPTION,"描述信息")
只设置用户基本信息的配置
UdeskConfig.Builder builder = new UdeskConfig.Builder();
builder.setDefualtUserInfo(info)
UdeskSDKManager.getInstance().entryChat(getApplicationContext(), builder.build(), sdkToken);
一些配置信息
UdeskConfig.Builder builder = new UdeskConfig.Builder();
builder.setUdeskTitlebarBgResId(R.color.udesk_titlebar_bg1) //设置标题栏TitleBar的背景色
.setUdeskTitlebarTextLeftRightResId(R.color.udesk_color_navi_text1) //设置标题栏TitleBar,左右两侧文字的颜色
.setUdeskIMLeftTextColorResId(R.color.udesk_color_im_text_left1) //设置IM界面,左侧文字的字体颜色
.setUdeskIMRightTextColorResId(R.color.udesk_color_im_text_right1) // 设置IM界面,右侧文字的字体颜色
.setUdeskIMAgentNickNameColorResId(R.color.udesk_color_im_left_nickname1) //设置IM界面,左侧客服昵称文字的字体颜色
.setUdeskIMTimeTextColorResId(R.color.udesk_color_im_time_text1) // 设置IM界面,时间文字的字体颜色
.setUdeskIMTipTextColorResId(R.color.udesk_color_im_tip_text1) //设置IM界面,提示语文字的字体颜色,比如客服转移
.setUdeskbackArrowIconResId(R.drawable.udesk_titlebar_back) // 设置返回箭头图标资源id
.setUdeskCommityBgResId(R.color.udesk_color_im_commondity_bg1) //咨询商品item的背景颜色
.setUdeskCommityTitleColorResId(R.color.udesk_color_im_commondity_title1) // 商品介绍Title的字样颜色
.setUdeskCommitysubtitleColorResId(R.color.udesk_color_im_commondity_subtitle1)// 商品咨询页面中,商品介绍子Title的字样颜色
.setUdeskCommityLinkColorResId(R.color.udesk_color_im_commondity_link1) //商品咨询页面中,发送链接的字样颜色
.setUserSDkPush(set_sdkpush.isChecked()) // 配置 是否使用推送服务 true 表示使用 false表示不使用
.setOnlyUseRobot(set_use_onlyrobot.isChecked())//配置是否只使用机器人功能 只使用机器人功能,只使用机器人功能; 其它功能不使用。
.setUdeskQuenuMode(force_quit.isChecked() ? UdeskConfig.UdeskQuenuFlag.FORCE_QUIT : UdeskConfig.UdeskQuenuFlag.Mark) // 配置放弃排队的策略
.setUseVoice(set_usevoice.isChecked()) // 是否使用录音功能 true表示使用 false表示不使用
.setUsephoto(set_usephoto.isChecked()) //是否使用发送图片的功能 true表示使用 false表示不使用
.setUsecamera(set_usecamera.isChecked()) //是否使用拍照的功能 true表示使用 false表示不使用
.setUsefile(set_usefile.isChecked()) //是否使用上传文件功能 true表示使用 false表示不使用
.setUseMap(set_usemap.isChecked()) //是否使用发送位置功能 true表示使用 false表示不使用
举个例子
public class UdeActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
StatusBarSpecial.applyStatusBarStyle(this);
UdeskSDKManager.getInstance().initApiKey(UdeActivity.this, "XXXXXXX", "XXXXXX", "XXXXXX");
Map<String, String> info = new HashMap<String, String>();
info.put(UdeskConst.UdeskUserInfo.USER_SDK_TOKEN, "12345678901234");
//以下信息是可选
info.put(UdeskConst.UdeskUserInfo.NICK_NAME,"杨彬");
info.put(UdeskConst.UdeskUserInfo.EMAIL,"yangbin@qq.com");
info.put(UdeskConst.UdeskUserInfo.CELLPHONE,"13723898358");
info.put(UdeskConst.UdeskUserInfo.DESCRIPTION,"描述信息");
UdeskConfig.Builder builder = new UdeskConfig.Builder();
builder.setDefualtUserInfo(info);
UdeskSDKManager.getInstance().entryChat(getApplicationContext(), builder.build(), "12345678901234");
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
3. 启动聊天
(1)启动聊天界面
UdeskSDKManager.getInstance().entryChat(getApplicationContext(), builder.build(), "12345678901234");
(2)启动帮助界面
UdeskSDKManager.getInstance().toLaunchHelperActivity(this);
(3)直接启动客服界面(不需要配置以上内容)
UdeskSDKManager.getInstance().toLaunchChatActivity(this);
以上这些还只是仅仅接入SDK,初步实现能聊,能用,后续需求的深入,再来继续整合文章,总结