Skip to content

React Native 接入

React Native SDK 提供 Android 和 iOS 原生聊天页,以及在需要时自定义聊天界面的能力。大多数应用只需调用打开聊天页的方法即可完成接入。

接入准备

  • React Native 0.72 及以上、React 18.2 至 20 以下、Node.js 18 及以上。
  • Android 最低支持 API 23;iOS 最低支持 iOS 15.1。
  • Expo 项目需要使用预构建或开发客户端;Expo Go 不支持原生模块。

请将交付的 React Native SDK 源码包加入项目,并按交付说明完成 Android、iOS 原生依赖配置。SDK 当前不通过 npm 公共仓库发布。

配置访客身份

在业务用户登录完成后进行配置。用户 ID 由业务服务端在访客令牌中确认;客户端配置昵称、头像,以及 attributes(即 visitor.attr 扩展信息)。fetchVisitorToken() 请求您的业务服务端,由服务端返回当前用户的访客令牌;详见用户基础信息对接

ts
import { Visitor, VisitorAuth } from '@99agent/react-native';

await Visitor.configure({
  config: {
    baseUrl: 'https://live.99kf.com',
    language: 'zh-CN',
  },
  auth: VisitorAuth.tokenProvider(() => appApi.fetchVisitorToken()),
  visitor: {
    nickname: '张三',
    avatar: 'https://www.99kf.com/avatar/12.jpg',
    attributes: [
      { key: 'phone', label: '电话', value: '13800138000' },
      { key: 'name', label: '姓名', value: '张三' },
    ],
  },
});

其中 phonename 需与客服端的访客字段设置一致。

打开聊天页

ts
await Visitor.openChat({
  groupId: 0,
  title: '在线客服',
});

传递业务上下文

支持在打开聊天页时传入当前商品、订单或其他业务资料,客服可在会话中查看:

ts
await Visitor.openChat({
  groupId: 0,
  contexts: [
    {
      key: 'order:ORDER-1001',
      type: 'order',
      title: '最近订单',
      fields: [
        { key: 'status', label: '订单状态', value: '待发货' },
      ],
    },
  ],
});

字段格式和完整示例请参阅商品和订单对接

原生项目配置

Android 需要能获取 99 客服原生 SDK 依赖,并为实际启用的图片、视频、相机和语音能力声明权限。iOS 需要在 Info.plist 中添加相机、麦克风和相册用途说明。若使用 Expo,请在配置中加入 SDK 插件后执行 npx expo prebuild,再使用开发客户端或原生运行命令调试。

增值服务

React Native 接入属于增值服务。如需获取 React Native SDK 源码包或安排接入支持,请联系我们

智能客服源码手册-99客服