Android SDK
# Android 集成说明
智齿客服SDK提供了 APP 接入客服接待客服的能力,只需简单嵌入即可实时监听并处理客户咨询,无需下载智齿 APP 也能实现手机端的在线客户接待。
在线客服 SDK 具有以下特性:
- 在线咨询:客服和用户实时聊天,可收发图片、视频、表情等消息。
- 关注用户,智能回复,快捷回复,会话总结,邀请用户评价。
- 高度自定义 UI。
相关限制及注意事项:
1、Android SDK 支持安卓系统 4.2(API 17)以上版本,支持竖屏和横屏。
2、开发工具 Android Studio 建议升级到 3.0 以上版本。
3、Android SDK 需要申请存储、拍照危险权限,否则部分功能无法使用。
# 文档介绍
# ● 集成流程示意图
# ● 文件说明
SDK 文件包含 SDK 源码包 (onlinesdk) 、 Demo 源码 (Android_Online_SDK) 、 Demo 安装包(sobot_online_sdk_demo.apk) 、和 Doc 相关说明文档。
文件 | 描述 |
---|---|
SobotOnlineService | 该文件提供接入功能 |
# 集成方式
# ● 依赖集成
// 普通版
api 'com.sobot.chat:onlinesdk:1.0.2.1'
// AndroidX 版
api 'com.sobot.chat:onlinesdk_x:1.0.2.1'
2
3
4
5
在 build.gradle 中如下所示:
dependencies {
api 'com.sobot.chat:onlinesdk:1.0.2.1'
implementation 'com.squareup.okhttp3:okhttp:4.4.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
//目前支持常见的3种图片加载库,必须在下面的图片加载库中选择一个添加依赖
//implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
//implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.github.bumptech.glide:glide:4.9.0'
//在使用4.9.0以上版本的glide时,需额外添加依赖,之前的版本不需要
implementation 'com.sobot.chat:sobotsupport-glidev4:2.1'
}
2
3
4
5
6
7
8
9
10
11
12
【注意】由于 Glide v3 版本和 v4 版本的接口完全不同,因此我们为了方便您的使用,采用了特殊的集成方式使 SDK 可以支持任意版本的 Glide。正常情况下,您使用 Glide 时,直接添加 Glide 依赖和 sobotsdk 的依赖,SDK 即可正常使用。如果报错,那么把 Glide 升级到 4.4.0 版本以上即可。
如果使用的是 4.9.0 以上版本的 Glide 时,添加以下依赖:
implementation 'com.sobot.chat:sobotsupport-glidev4:2.1'
# ● 导入集成
下载链接:
普通版
Android_OnlineSDK_1.0.2 (opens new window)
AndroidX 版
Android_OnlineSDK_X_1.0.2 (opens new window)
导入 Module :
解压下载的智齿 Android_OnlineSDK_XXX.zip 文件,将 onlinesdk 文件直接复制到您的项目中,然后 Build --> Clean Project 一下,之后在 build.gradle 中添加项目依赖。
完成上述步骤之后 build.gradle 中如下所示:
dependencies {
//sdk 在线客服
implementation project(": onlinesdk")
implementation 'com.squareup.okhttp3:okhttp:4.4.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
//目前支持常见的3种图片加载库,必须在下面的图片加载库中选择一个添加依赖
//implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
//implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.github.bumptech.glide:glide:4.9.0'
//在使用4.9.0以上版本的glide时,需额外添加依赖,之前的版本不需要
implementation 'com.sobot.chat:sobotsupport-glidev4:2.1'
}
2
3
4
5
6
7
8
9
10
11
12
13
【注意】由于 Glide v3 版本和 v4 版本的接口完全不同,因此我们为了方便您的使用,采用了特殊的集成方式使 SDK 可以支持任意版本的 Glide。正常情况下,您使用 Glide 时,直接添加 Glide 依赖和 sobotsdk 的依赖,SDK 即可正常使用。如果报错,那么把 Glide 升级到 4.4.0 版本以上即可。
如果使用的是 4.9.0 以上版本的 Glide 时,添加以下依赖:
implementation 'com.sobot.chat:sobotsupport-glidev4:2.1'
# 功能说明
# ● 初始化和域名设置
域名说明:
默认 SaaS 平台域名为:https://api.sobot.com。
如果您是腾讯云服务,请设置为:https://ten.sobot.com。
如果您是本地化部署,请使用自己的部署的服务器域名。
/**
* 初始化方法,需要在启动方法之前调用
*
* @param host 可以为空,默认阿里云服务;如果需要,请设置自己的域名
*/
SobotOnlineService.initWithHost(Application application, String host);
2
3
4
5
6
# ● 资源配置
在客户 APP 中 colors.xml 中添加同名颜色可覆盖智齿 SDK 中的颜色样式;也可通过在主项目中同一位置放一个同名的图片资源去替换智齿 SDK 界面中的图片;也可通过在主项目中同一位置放一个同名的文字资源去替换智齿 SDK 界面中的文字。
以下是常用的颜色配置,更多颜色、图片资源可到手动集成模块中下载源码包中去查找。
<!--在线客服 主题色 默认绿色 -->
<color name="sobot_online_color">#0DAEAF</color>
<!--在线客服 通用头部 背景颜色-->
<color name="sobot_online_base_header_bg_color">#FFFFFF</color>
<!-- 状态栏颜色-->
<color name="sobot_app_status_bar_color">@color/sobot_online_base_header_bg_color</color>
<!--在线客服 聊天主页面 -->
<!-- 聊天页状态栏颜色 -->
<color name="sobot_chat_status_bar_color">#F6F8FC</color>
<!-- 文件消息气泡颜色 -->
<color name="sobot_chat_file_bgColor">@color/sobot_online_color</color>
<!-- 消息气泡左侧背景默认颜色 -->
<color name="sobot_chat_left_bgColor">@color/sobot_online_white_color</color>
<!-- 消息气泡右侧背景默认颜色 -->
<color name="sobot_chat_right_bgColor">@color/sobot_online_color</color>
<!--文本消息气泡 左侧文字 颜色 -->
<color name="sobot_left_msg_text_color">@color/sobot_online_common_gray1</color>
<!--文本消息气泡 右侧文字 颜色 -->
<color name="sobot_right_msg_text_color">@color/sobot_online_white_color</color>
<!-- 超链接颜色 左边 -->
<color name="sobot_color_link">@color/sobot_online_blue_color</color>
<!-- 超链接颜色 右边 -->
<color name="sobot_color_rlink">@color/sobot_online_yellow_color</color>
<!-- 聊天界面提醒背景颜色-->
<color name="sobot_chat_remind_bg">#59FFFFFF</color>
<!-- 聊天界面提醒的字体颜色-->
<color name="sobot_chat_remind_text_color">@color/sobot_online_common_gray3</color>
<!-- 聊天界面提醒的超链接文字颜色-->
<color name="sobot_chat_remind_link_color">@color/sobot_online_blue_color</color>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# ● 启动页面
【说明:appid、appkey 请联系智齿售后人员获取;如果使用 token 方式接入,请参考接口文档 获取token (opens new window) 】
方式一:以 appid 和 appkey 方式启动
/**
* 启动客服认证页面
*
* @param context
* @param appid 公司appid
* @param appkey 商户appkey
* @param account 客服账户(邮箱)
* @param loginStatus 登录状态0:忙碌,1:在线, -1使用默认值
*/
SobotOnlineService.startAuthWithAcount(Context context, String appid, String appkey, String account, int loginStatus);
2
3
4
5
6
7
8
9
10
方式二:直接以 token 方式启动
/**
* 通过设置token方式启动客服认证页面
*
* @param context
* @param account 客服账户(邮箱)
* @param loginToken 登录客服token
* @param loginStatus 1:在线,2:忙碌,-1等待客服设置,0:离线,直接返回
*/
public static void startAuthWithToken(Context context, String account, String loginToken, int loginStatus) {
2
3
4
5
6
7
8
9
# ● 接口说明
# 1. 登录
/**
* 仅登录客服,不执行页面逻辑
*
* @param account 客服账户(邮箱)
* @param loginStatus 登录状态 0:忙碌,1:在线,-1使用默认值
*/
SobotOnlineService.doLoginWithAccount( Context context, final String account, int loginStatus);
2
3
4
5
6
7
# 2. 退出登录
SobotOnlineService.outAdmin(Context context;
# 3. 获取未读消息数
int unReadNum=SobotOnlineService.getUnReadNumber(Context context);
# 4. 注册广播、获取新收到的信息
注册广播后,当消息通道连通时,可以获取到新接收到的消息。
注册广播:
/**
* action:SobotSocketConstant.BROADCAST_SOBOT_NEW_MSG
*/
IntentFilter filter = new IntentFilter();
filter.addAction(SobotSocketConstant.BROADCAST_SOBOT_NEW_MSG);
registerReceiver(receiver, filter);
2
3
4
5
6
接收新信息和未读消息数:
在 BroadcastReceiver 的 onReceive() 方法中接收信息。
//设置广播获取新收到的信息和未读消息数
class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (SobotSocketConstant.BROADCAST_SOBOT_NEW_MSG.equals(intent.getAction())) {
//新消息内容
String content = intent.getStringExtra("msgContent");
//完整内容json
String contentJson = intent.getStringExtra("msgContentJson");
SobotLogUtils.i( " 新消息内容:" + content + " 完整内容:" + contentJson);
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 5. 设置是否开启消息提醒
/**
* 设置是否开启消息提醒 默认不开启
*
* @param context
* @param flag true 开启 ; false 关闭
* @param smallIcon 小图标的 ID 设置通知栏中的小图片
*/
SobotOnlineService.setNotificationFlag(Context context, false, R.drawable.sobot_logo_small_icon);
2
3
4
5
6
7
8
# 源码和Demo
点击下载 Demo 源码 (opens new window);
点击查看 Demo 使用教程 (opens new window)。
# 更新说明
<<SDK 版本更新说明>> (opens new window)