Skip to content

接口速查 ​

Android 与 iOS 对照列出。使用说明见各功能页。

依赖 ​

端怎么装
Androidimplementation("com.aihecong:hecong-chat-sdk:0.6.4"),Maven Central
iOSSwift Package Manager,仓库地址 https://github.com/sandywk/hecong-ios-sdk

最低版本:iOS 13、Android 5.0(API 21)。

配置项 ​

创建配置对象时只有渠道 ID 必填,其余都有默认值。

配置项默认值说明
channelId无,必填工作台 App 渠道详情页复制
colorSchemehost深浅色,四档取值见深色模式
routing空指定接待的技能组,见指定技能组接待
deviceId空你自己的设备标识,别当推送对照依据(为什么)
anonymousIdScope空同一个 APP 接多个渠道时,用它把各渠道的访客标识分开
errorReportingEnabledtrueSDK 自身运行错误的上报开关,见下方错误上报
unreadPollIntervalSeconds
unreadPollInterval
60未读查询间隔(秒),最低 30。上为 Android、下为 iOS
permissionRationaleText内置话术仅 Android。权限说明文案,分 microphone / camera
extraQuery["lang"]空客服页面语言,不传用系统语言(详见)
title「在线客服」标题栏文字,跟随语言设置,见聊天页的四种形态
titleFollowsAgentfalse客服接待后把标题换成客服昵称
headerBackgroundColor跟随深浅色标题栏背景色
titleColor跟随深浅色标题文字颜色
backIconRes(Android)
backImage(iOS)
系统返回箭头换成你自己的返回图标
sheetHeightRatio0.82弹层档卡片占屏幕高度的比例,取值 0.3 ~ 1.0
modernInsets(仅 Android)true键盘与系统栏的新式适配,关掉退回传统方式

方法 ​

不打开客服页面也能调,SDK 会记住,页面打开时自动生效。

Android

做什么方法
登记配置HecongChat.configure(context, config)
打开客服(标准档)HecongChatActivity.start(context, config)
打开客服(弹层档)HecongChatActivity.startSheet(context, config, useChannelHeader)
打开客服(沉浸档)HecongChatActivity.startImmersive(context, config)
嵌进自己的页面HecongChatFragment.newInstance(config)
绑定会员HecongChat.identify(userId, profile, data)
退出登录HecongChat.resetUser()
开启未读跟踪HecongChat.startUnreadTracking(listener)
停止未读跟踪HecongChat.stopUnreadTracking()
指定技能组HecongChat.setRouting(skillGroup, fallback, fallbackGroup)
加输入区按钮HecongChat.registerAction(id, label, slot, icon)
撤掉按钮HecongChat.unregisterAction(id)
带入咨询内容HecongChat.setPresend(text, card) / HecongChat.clearPresend()
供给选择器数据HecongChat.setPickerData(picker, items)
打开选择器HecongChat.openPicker(picker)

iOS(都在 HecongChat.shared 上)

做什么方法
登记配置configure(config)
打开客服(标准档)push(config:)
打开客服(弹层档)presentSheet(config:useChannelHeader:)
打开客服(沉浸档)presentImmersive(config:)
嵌进自己的页面HecongChatViewController(config:)
绑定会员identify(userId:profile:data:)
退出登录resetUser()
开启未读跟踪startUnreadTracking(listener:)
停止未读跟踪stopUnreadTracking()
指定技能组setRouting(_:)
加输入区按钮registerAction(id:label:icon:slot:)
撤掉按钮unregisterAction(_:)
带入咨询内容setPresend(text:card:) / clearPresend()
供给选择器数据setPickerData(_:items:)
打开选择器openPicker(_:)

registerAction 两端的参数顺序不同:Android 是 slot 在前、icon 可省,iOS 是 icon 在前、两个都要传。

profile 可传 name、avatar、phone、email 四个字段,data 传你自己的业务字段,约束见传客户资料。

回调 ​

Android 实现 HecongChatListener,iOS 实现 HecongChatDelegate,全部可选。

什么时候来AndroidiOS
客服页面就绪onReady()hecongChatReady()
未读数变化onUnreadChanged(count)hecongChatUnreadDidChange(_:)
会员绑定成功onIdentified(userId)hecongChatDidIdentify(_:)
自定义字段被忽略onCustomFieldsIgnored(keys)hecongChatDidIgnoreCustomFields(_:)
退出登录完成onUserReset()hecongChatDidResetUser()
访客标识变化onAnonymousIdChanged(id)hecongChatDidChangeAnonymousId(_:)
输入区按钮被点onActionClick(id)hecongChat(didClickAction:)
消息里的外链被点onOpenUrl(url)hecongChat(handleOpenUrl:)
附件要下载onDownload(url, filename)hecongChat(handleDownload:filename:)
客户点了关闭onClose()hecongChatDidRequestClose()
页面加载失败onLoadFailed(reason)hecongChatDidFailToLoad(_:)
标题栏身份变化onHeaderIdentityChangedhecongChatHeaderIdentityDidChange(_:)
要弹权限说明onShowPermissionRationale无,iOS 走系统弹窗

返回布尔值的四个回调(外链、下载、关闭、权限说明),返回 true 表示你自己处理了,SDK 不再做默认动作。外链回调同时承接电话、邮箱、短信,接管前要按协议判断,见聊天页里的外链与拨号。

标题栏身份 ​

自己画标题栏时用得上。这份数据只有客服页面内部有,而且会变:会话开始前显示渠道身份,客服接起后变成客服的昵称头像,转接后再变一次。

字段说明
nickname昵称
avatar头像地址
signature签名
pending为真时数据还没确定,你也应该显示占位,否则会先空一下再跳出名字

会话事件 ​

通用回调 onEvent(name, payload) / hecongChat(didReceiveEvent:payload:) 收全部事件。事件名与网页接入一致。

事件名具名回调(Android)具名回调(iOS)
message:incomingonIncomingMessagehecongChat(didReceiveIncomingMessage:)
messageonMessagehecongChat(didReceiveMessage:)
conversation:startonConversationStarthecongChatConversationDidStart(_:)
conversation:endonConversationEndhecongChatConversationDidEnd(_:)
network:online / offlineonNetworkChangedhecongChatNetworkDidChange(_:)

通用回调和具名回调二选一,两边都接会处理两次。取舍见监听会话事件。

自己嵌容器时要转发的 ​

用 HecongChatView 把对话嵌进自己布局时,Android 侧需要转发 onActivityResult、onRequestPermissionsResult、onHostStart、onHostStop,并在销毁时调 destroy()。用了自己的返回按钮还要转发 handleBackPressed()。详见把聊天嵌进自己的页面。

错误上报 ​

SDK 默认会上报自身的运行错误,用于发现加载失败、权限异常这类问题。上报内容不包含聊天内容,也不包含客户资料。

SDK 不安装任何全局崩溃捕获,不会影响你自己的崩溃监控工具。

要关闭,把 errorReportingEnabled 设为 false。

下一步 ​