openCustomerServiceInMiniapp
微信小程序端企业微信客服会话适配器,被 showWxCustomerService 内部调用。
前置依赖
通过 deps 注入,便于单测与跨运行时复用:
typescript
interface CustomerServiceInMiniappDeps {
openCustomerServiceChat?: UniApp['openCustomerServiceChat']
hasWx?: () => boolean
getWx?: () => { openCustomerServiceChat?: (options: ...) => void }
error: Console['error']
}| 依赖 | 说明 |
|---|---|
openCustomerServiceChat | 优先使用的 UniApp 客服 API |
hasWx / getWx | 降级至原生 wx.openCustomerServiceChat 时使用 |
error | 错误日志 |
openCustomerServiceInMiniapp
函数签名
typescript
function openCustomerServiceInMiniapp(
options?: CustomerServiceOptions,
deps: CustomerServiceInMiniappDeps
): Promise<CustomerServiceResult>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options.corpId | string | 是 | 企业微信客服 corpId(公众平台需已绑定) |
options.extInfo | Record<string, unknown> | 否 | 扩展信息,默认 {} |
options.showMessageCard | boolean | 否 | 是否发送小程序气泡消息 |
options.sendMessageTitle | string | 否 | 气泡消息标题 |
options.sendMessagePath | string | 否 | 气泡消息小程序路径 |
options.sendMessageImg | string | 否 | 气泡消息封面图 |
deps | CustomerServiceInMiniappDeps | 是 | 环境依赖 |
返回值
| 类型 | 说明 |
|---|---|
Promise<CustomerServiceResult> | 成功含 errMsg 与 raw;缺少 corpId 或不支持时 reject |
工作原理
- 校验
options.corpId,缺失则 reject 并提示需在公众平台绑定企业微信客服。 - 若
deps.openCustomerServiceChat存在,优先调用 UniApp 封装 API。 - 否则检测
wx.openCustomerServiceChat并降级调用。 - 两者均不可用时 reject,提示使用
<button open-type="contact">触发客服会话。