易维帮助台 android SDK SDK 下载 Demo 下载

简介

易维 Android SDK 是一个 Android 端客服系统访客解决方案,既包含了客户选择帮助中心文档、客户查询与提交工单、工单评价、客户发起会话,开发者可方便的将客户功能集成到自己的 APP 中。

编译版本

compileSdkVersion 28
minSdkVersion 19
targetSdkVersion 28

快速集成

只需简单 3 步,即可将SDK功能加入你的 APP:

1、添加 SDK 到项目中,打开build.gradle文件,在dependencies项添加项目依赖

implementation files("libs/EweiHelpCenterSDK.aar")
api 'com.czt.mp3recorder:library:1.0.4'
api "androidx.appcompat:appcompat:1.0.2"
api "androidx.core:core:1.0.1"
api "androidx.fragment:fragment:1.0.0"
api "androidx.recyclerview:recyclerview:1.0.0"
api "com.google.guava:guava:24.0-android"
api "com.squareup.retrofit2:retrofit:latest.integration"
api "com.squareup.retrofit2:converter-gson:latest.integration"
api "com.github.bumptech.glide:glide:4.0.0"

2、添加易维APPKEY与APPSECTET添加到AndroidManifest.xml文件中。

<meta-data

android:name="EWEI_APPKEY"

android:value="{当前服务商AppKey}" />

<meta-data

android:name="EWEI_APPSECRET"

aandroid:value="{当前服务商AppSecret}" />

3、在Application进行初始化。

// 初始化

EweiSdkInitializer.initialize(this, "{当前服务商域名}");

// 是否调试日志

EweiSdkInitializer.enableDebug(true);

// 设置系统主题色

EweiSdkInitializer.setKeyColor("#0099FF");

身份调用

用户名匹配顺序: email -> mobilePhone -> externalId。

EweiConfig.initUserAccount("xxx@test.com");

混淆配置

如果你的 apk 最终会经过代码混淆,请在 proguard 配置文件中加入以下代码。

-dontwarn class com.ewei.sdk.** {*;}

-keep class com.ewei.sdk.** {*;}

消息监听

当sdk初始化成功之后,会启动EweiWebSocket接受消息,分发广播。你可以在需要监听的位置添加你的广播接收类,继承EweiReceiver。重写对应方法,进行消息拦截与处理。

添加监听(EweiWebSocket类下方法)

添加会话订阅,对应会话ID和自身拟定key(消息通知返回标识)

public void addChatSubscribe(@NonNull String chatId, @NonNull String msgKey, ChatInterface chatInterface)

移除会话渠道订阅

public void removeChatSubscribe(@NonNull String chatId)

添加工单渠道订阅,对应工单ID和自身拟定key(消息通知返回标识),ticketInterface为消息返回回调

public void addTicketSubscribe(@NonNull String ticketId, @NonNull String msgKey, TicketInterface ticketInterface)

删除工单渠道订阅

public void removeTicketSubscribe(@NonNull String ticketId)

消息接收(继承EweiReceiver)

Token身份信息(一般用户身份信息过期,重新获取身份信息)

public void onTokenMessage(String messageInfo)

长链接连接

public void onSocketOpenMessage()

长链接断开

public void onSocketCloseMessage()

工单消息回调(TicketInterface)

工单状态变更

public void onTicketChange(String messageKey, String pushType, Integer[] ticketIds)

接收工单回复通知

public void onTicketComment(String messageKey, String pushType, TicketCommentPush pushInfo)

接收工单日志消息

public void onTicketLog(String messageKey, String pushType, TicketLogPush pushInfo)

会话消息回调

会话转接消息通知

public void onChatTransfer(String messageKey, String pushType, ChatTransfer pushInfo)

会话结束消息通知

public void onChatClose(String messageKey, String pushType, ChatClose pushInfo)

会话转工单消息通知

public void onChatToTicket(String messageKey, String pushType, ChatToTicket pushInfo)

会话日志消息通知

public void onChatLog(String messageKey, String pushType, ChatLog pushInfo)

会话消息通知

public void onChatMessage(String messageKey, String pushType, ChatMessage pushInfo)

会话消息提醒

public void onChatNotice(String messageKey, String pushType, Integer chatId, User user)

会话消息撤回

public void onChatLogDelete(String messageKey, String pushType, String chatLogUid)

界面跳转

帮助中心

我们开放帮助中心板块、文章、论坛相应接口,可直接调用数据返回,可根据自身App风格设置界面,详情参考demo。

文章/论坛详情

在ArticleDetailWebBrowserActivity中直接调用。

public static void startActivity(@NonNull Context context, String title, @NonNull String topicType, @NonNull Integer articleId)

工单列表

现阶段我们开发获取工单列表接口,并返回相应参数,可根据自身App风格设置界面,详情参考demo。

提交工单

目前由于提交工单涉及逻辑较为复杂,我们暂不开放接口,提供UI界面,可直接调用。

SubmitTicketActivity.startActivity(MainActivity.this);

工单详情

目前由于工单逻辑较为复杂,我们暂不开放接口,提供UI界面,可直接调用。我们提供head自定义话,详情参考demo程序。

public static void startTicketActivity(Activity context, Ticket ticket, Class<? extends BaseTicketActivity> cls, int requestCode)

会话信息

目前由于会话逻辑较为复杂,我们暂不开放接口,提供UI界面,可直接调用,也可自定义消息内容样式。由工具类ChatUtils直接调用启动。

开启会话

public static void starChatActivity (BaseActivity context, Class<? extends BaseChatActivity> cls)

定制界面

我们提供工单头部消息,以及会话回复消息格式样式的定制,后期会增加更多的定制功能。

工单(参考demo程序)

工单信息赋值

@Override

protected void refreshHeadControl(Ticket mTicket)

附件信息点击

@Override

protected void onClickAttachment(Attachment attachment, String localUrl, String fileType)

文章信息点击

@Override

protected void onClickArticle(Article article)

会话信息点击

@Override

protected void onClickChat(int chatId)

地图信息点击

@Override

protected void onClickMap(double latitude, double longitude, String addressStr)

工单内工单跳转

protected void onClickTicket(int ticketId)

是否开始定位发送

protected Boolean isOpenLocation()

发送地图选择

protected void clickMapLocation()

地图信息发送

protected void addLocationReply(String path, double latitude, double longitude, String address)

参数说明:地图截图图片位置,经纬度,地址信息

重设工单显示标题

protected void setTicketTitle(String titleStr)

会话(参考demo程序)

文章信息点击

@Override

protected void onClickArticle(Article article)

附件信息点击

@Override

protected void onClickAttachment(Attachment attachment, String localUrl, String fileType)

添加文本类消息样式

protected View addTextView(ChatLogMessage chatLog, boolean isLeft)

添加附件类消息样式

@Override

protected View addFileView(ChatLogMessage chatLog, boolean isLeft)

添加语言消息样式

@Override

protected View addAudioView(ChatLogMessage chatLog, boolean isLeft)

添加视频消息样式

@Override

protected View addVideoView(ChatLogMessage chatLog, boolean isLeft)

添加图片消息样式

@Override

protected View addImageView(final ChatLogMessage chatLog, boolean isLeft)

添加知识库文章消息样式

@Override

protected View addKnowledgeView(ChatLogMessage chatLog, boolean isLeft)

添加未识别消息样式

@Override

protected View addUnknownView(ChatLogMessage chatLog, boolean isLeft)

是否开始定位发送

protected Boolean isOpenLocation()

发送地图选择

protected void clickMapLocation()

地图信息发送

protected void addLocationReply(String path, double latitude, double longitude, String address)

参数说明:地图截图图片位置,经纬度,地址信息

添加地图布局

@Override

protected View addLocationView(ChatLogMessage chatLog, boolean isLeft)

地图模块

添加对应key

在自身App对应AndroidManifest.xml文件中添加百度地图key

<!-- 在百度开发者中心查询应用的API Key -->

<meta-data

android:name="com.baidu.lbsapi.API_KEY"

android:value="${lbsapi_key}" />

添加对应lib包、so文件至资源目录

初始化百度地图模块

/**

* 初始化百度定位组件

*/

SDKInitializer.initialize(getApplicationContext());

开放接口

帮助中心知识库(ArticleHttp)

版块目录查询

方法名:listTopics

参数:

参数名参数信息参数类型是否必填备注
languageType语言类型枚举LanguageTypeZH_CN(中文)EN_US(英文),空值默认中文
isArticle是否为文章Booleantrue:文章版块false:帖子版块
requestListener请求回调RequestListener<TopicPageModel>请求回调

根据版块查询文章(帖子)列表

方法名:listArticleByTopic

参数:

参数名参数信息参数类型是否必填备注
page分页信息Page类
topicId版块IdInteger
pageSort排序枚举PageSortUPDATEDAT(更新时间)、 CREATEDAT(创建时间)、COMMENTCOUNT(回复数量) 、VOTECOUNT(点赞数量)、RECOMMENDINDEX(推荐指数)、DEFAULT(默认排序
requestListener请求回调RequestListener< ArticlePageModel >请求回调

文章高级查询

方法名:listArticleSearch

参数:

参数名参数信息参数类型是否必填备注
page分页信息Page类
searchKey关键字String
topicType版块类型枚举TopicTypeARTICLE(文章)QUESTIONS(帖子)
languageType语言类型枚举LanguageTypeZH_CN(中文)EN_US(英文),空值默认中文
pageSort排序枚举PageSortUPDATEDAT(更新时间)、 CREATEDAT(创建时间)、 COMMENTCOUNT(回复数量) 、VOTECOUNT(点赞数量)、RECOMMENDINDEX(推荐指数)、DEFAULT(默认排序
requestListener请求回调RequestListener< ArticlePageModel >请求回调

推荐文章列表

方法名:listRecommendArticle

参数:

参数名参数信息参数类型是否必填备注
page分页信息Page类
languageType语言类型枚举LanguageTypeZH_CN(中文)EN_US(英文),空值默认中文
requestListener请求回调RequestListener< ArticlePageModel >请求回调

推荐帖子列表

方法名:listRecommendQuestion

参数:

参数名参数信息参数类型是否必填备注
page分页信息Page类
languageType语言类型枚举LanguageTypeZH_CN(中文)EN_US(英文),空值默认中文
requestListener请求回调RequestListener< ArticlePageModel >请求回调

热门帖子列表

方法名:listHotQuestion

参数:

参数名参数信息参数类型是否必填备注
page分页信息Page类
languageType语言类型枚举LanguageTypeZH_CN(中文)EN_US(英文),空值默认中文
requestListener请求回调RequestListener< ArticlePageModel >请求回调

获取文章/帖子详情

方法名:getArticleDetail

参数:

参数名参数信息参数类型是否必填备注
id文章/帖子IdString
includeFields限制返回String可以自定义返回哪些字段,用英文逗号分隔。为空时,系统默认返回所有字段,如果选择返回的字段为一个对象时,请指定该对象的基本属性。
requestListener请求回调RequestListener< Article >请求回调

获取访问Url链接

方法名:getArticleUrlAddress

参数:

参数名参数信息参数类型是否必填备注
id文章/帖子IdString
topicType版块String对应Article类中,Topic的type属性

工单接口(TicketHttp)

获取当前客户工单列表

方法名:requestClientTicketList

参数:

参数名参数信息参数类型是否必填备注
mPage当前页int当前页数
mCount每页数量int每页数量
includeFields限制返回String可以自定义返回哪些字段,用英文逗号分隔。为空时,系统默认返回所有字段,如果选择返回的字段为一个对象时,请指定该对象的基本属性。
requestListener请求回调RequestListener< TicketListResult >请求回调

获取工单类型信息

方法名:getTypeList

参数:

参数名参数信息参数类型是否必填备注
requestListener请求回调RequestListener< TicketListResult >请求回调

获取服务目录顶级目录

方法名:getTopServiceCatalog

参数:

参数名参数信息参数类型是否必填备注
requestListener请求回调RequestListener< ServiceCatalogResult >请求回调

获取服务目录子目录

方法名:getChildServiceCatalog

参数:

参数名参数信息参数类型是否必填备注
requestListener请求回调RequestListener< ServiceCatalogResult >请求回调

用户接口(UserHttp)

获取当前客户工单列表

方法名:getUserInfo

参数:

参数名参数信息参数类型是否必填备注
requestListener请求回调RequestListener< User >请求回调

提交工单开源接口(TicketLogic)

获取工单优先级

方法名:getTicketPriorityField

参数:

参数名参数信息参数类型是否必填备注
requestListener请求回调RequestListener< List<NameValue>>请求回调

无表单提交工单

方法名:createTicketWithOutForm

参数:

参数名参数信息参数类型是否必填备注
ticket工单信息Ticket
requestListener请求回调RequestListener< List<NameValue>>请求回调

Ticket字段支持参数

参数名参数信息参数类型是否必填备注
subject工单主题String最长128位
description工单描述String
priority工单优先级StringgetTicketPriorityField接口所对应数据key
serviceCatalog工单服务目录ServiceCatalog请参考demo服务目录控件返回
ticketType工单类型TicketType接口TicketHttp.getTypeList对应返回
tags标签Array<String>
customFields自定义字段List<TicketCustomField>

更新日志

3.3.1 更新日志

1. 在线客服支持排队安抚语、接通欢迎语;

2. 机器人应答,相似问题支持转人工引导;

3. 自动应答支持配置超链接;

 

3.3.0 更新日志(SDK_3.2.7,Demo

1. 全面升级 会话 / 工单 界面交互,提升用户体验;

2. 支持表情键盘;

3. 适配智能机器人;

4. 会话适配客服端消息撤回;

5. 支持主题色设置;

 

3.2.7 更新日志(SDK_3.2.7,Demo

1、工单 / 会话支持上传文件

2、工单 / 会话中的附件 ICON 根据文件类型适配

3、开源提交工单接口与智能分派联用

4、修改提交工单界面

5、修改监听消息回调,排除当前用户发出的消息

6、优化混淆信息

 

3.2.0 更新日志(SDK_3.2.0,Demo

1、音频支持适配 MP3,需要能兼容老的 AMR 数据

2、图片压缩统一为 800,与 App 处理类似

3、图片 / 视频 cell size 适应规则

4、服务目录改用自写控件

5、兼容Android6.0权限问题

6、常规bug修复

 

3.1.0 更新日志(SDK_3.1.0,Demo

1. 添加地图模块,sdk支持发送地理位置

2. 工单、会话支持语音发送

3. 工单、会话视频选择方式变更。

4. 修改会话缓存缓慢

5. 开放工单标题自定义

6. 添加6.0权限申请检测

7. 优化长连接,常规bug修复。

 

3.0.0 更新日志(SDK_3.0.0,Demo

1. 全新的 SDK 业务架构;

2. 开放工单、文章等 API;

3. 在线客服、提交工单、工单详情采用原生编码,大大提高兼容性;