Android app sdk 集成说明
相关限制及注意事项
1、Android SDK 新版支持 api17 以上版本,支持竖屏和横屏。
2、开发工具AS建议升级到3.0以上版本
3、Android SDK 目前仅仅支持超链接标签,其他html标签和属性均不识别
4、Android SDK 需要申请存储、麦克风、拍照危险权限,否则部分功能无法使用
智齿客服SDK具有以下特性
- 在线咨询:咨询人工客服(收发图片、发送视频)、发送表情;
- 高度自定义UI;
1 文档介绍
1.1 集成流程示意图
1.2.文件说明
SDK包含SobotOnline和sobot_app_sdk_demo、和Doc相关说明文档。
2 集成方式
2.0 依赖集成
api 'com.sobot.chat:sobot-online:1.0.1'
在build.gradle中如下所示:
dependencies {
api 'com.sobot.chat:sobot-online:1.0.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'
implementation 'com.sobot.chat:sobotsupport-glidev4:1.0.8'
//目前支持常见的3种图片加载库,必须在下面的图片加载库中选择一个添加依赖
implementation 'com.github.bumptech.glide:glide:4.8.0'
//implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
//implementation 'com.squareup.picasso:picasso:2.5.2'
}
【注意】由于glide v3版本和v4版本的接口完全不同,因此我们为了方便您的使用,采用了特殊的集成方式使sdk可以支持任 意版本的glide。正常情况下,您使用glide 时,直接添加glide依赖和sobot-online的依赖,sdk即 可正常使用。如果报错,那么把glide 升级到4.4.0版本以上即可。
在使用4.9.0以上版本的glide时,需额外升级依赖
"implementation 'com.sobot.chat:sobotsupport-glidev4:1.0.10"
2.1 手动集成
导入Module
解压下载的智齿Android_OnlineSDK_XXX.zip文件,将 SobotOnline 文件直接复制到您的项目中,
然后 Build-->clean projecty一下,之后在build.gradle添加项目依赖
完成上述步骤之后build.gradle中如下所示:
dependencies {
//sdk 在线客服
implementation project(":SobotOnline")
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'
implementation 'com.sobot.chat:sobotsupport-glidev4:1.0.8'
//目前支持常见的3种图片加载库,必须在下面的图片加载库中选择一个添加依赖
implementation 'com.github.bumptech.glide:glide:4.8.0'
//implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
//implementation 'com.squareup.picasso:picasso:2.5.2'
}
【注意】由于glide v3版本和v4版本的接口完全不同,因此我们为了方便您的使用,采用了特殊的集成方式使sdk可以支持任 意版本的glide。正常情况下,您使用glide 时,直接添加glide依赖和sobot-online的依赖,sdk即 可正常使用。如果报错,那么把glide 升级到4.4.0版本以上即可。
在使用4.9.0以上版本的glide时,需额外升级依赖
"implementation 'com.sobot.chat:sobotsupport-glidev4:1.0.10"
3.1 初始化和域名设置
域名说明:
*默认SaaS平台域名为:https://api.sobot.com
*如果您是腾讯云服务,请设置为:https://ten.sobot.com
*如果您是本地化部署,请使用自己的部署的服务域名
/**
* 初始化方法,需要在宿主应用application.onCreate函数中调用
*
* @param host 可以为空,默认阿里云服务;如果需要,请设置自己的域名
*/
SobotOnlineService.initWithHost(Application application, String host);
3.2 资源配置
在客户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>
3.3 启动页面
【说明:appid, app_key 请联系智齿售后人员获取;如果使用token方式接入,请参考接口文档获取token】
方式一:以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);
方式二:直接以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) {
3.4 接口说明
3.4.1登录
/**
* 仅登录客服,不执行页面逻辑
*
* @param account 客服账户(邮箱)
* @param loginStatus 登录状态 0:忙碌,1:在线,-1使用默认值
*/
SobotOnlineService.doLoginWithAccount( Context context, final String account, int loginStatus);
3.4.2退出登录
SobotOnlineService.outAdmin(Context context;
3.4.3获取未读消息数
int unReadNum=SobotOnlineService.getUnReadNumber(Context context);
3.4.4 注册广播、获取新收到的信息
注册广播后,当消息通道连通时,可以获取到新接收到的消息。
1 注册广播
/**
* action:SobotSocketConstant.BROADCAST_SOBOT_NEW_MSG
*/
IntentFilter filter = new IntentFilter();
filter.addAction(SobotSocketConstant.BROADCAST_SOBOT_NEW_MSG);
registerReceiver(receiver, filter);
2 接收新信息和未读消息数 在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);
}
}
}
3.4.5设置是否开启消息提醒
/**
* 设置是否开启消息提醒 默认不开启
*
* @param context
* @param flag true 开启 ; false 关闭
* @param smallIcon 小图标的id 设置通知栏中的小图片
*/
SobotOnlineService.setNotificationFlag(Context context, false, R.drawable.sobot_logo_small_icon);
4 智齿客服App权限列表
获取权限 | 获取权限的目的 |
---|---|
访问网络 | 访问网络连接,可能产生GPRS流量 |
获取网络状态 | 获取网络信息状态,如当前的网络连接是否有效 |
获取WiFi状态 | 获取当前WiFi接入的状态以及WLAN热点的信息 |
获取错略位置 | 通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米 |
获取精确位置 | 通过GPS芯片接收卫星的定位信息,定位精度达10米以内 |
改变WiFi状态 | 改变WiFi状态 |
写入外部存储 | 允许程序写入外部存储,如SD卡上写文件 |
录音 | 录制声音通过手机或耳机的麦克 |
修改声音设置 | 修改声音设置信息 |
拍照 | 允许访问摄像头进行拍照 |
获取任务信息 | 允许程序获取当前或最近运行的应用 |
使用振动 | 允许振动 |
唤醒锁定 | 允许程序在手机屏幕关闭后后台进程仍然运行 |
读取电话状态 | 访问电话状态 |
读取联系人 | 允许应用访问联系人通讯录信息 |
写入联系人 | 写入联系人,但不可读取 |
拨打电话 | 允许程序从非系统拨号器里输入电话号码 |
谷歌相册 | 允许选择谷歌相册图片 |