iOS

# 快速搭建Plugin

# 插件概述

该插件是为小程序设计的视频客服访客插件,支持点对点呼叫和业务号呼叫,支持发送在线消息。

Plugin 文件夹中包含样式文件和多个组件,style 文件夹、tools.wxs 文件、talk-view 组件、local-stream 组件、remote-stream 组件和 JRTCSDK-Wechat.js 库是必需的,视频客服访客插件还需要集成 guest 组件,将它们一起放入项目 components 文件夹下即可。

# 引入组件

在项目的 WXML 文件中和 JSON 文件中按以下方式引入即可,引入组件时,可以将部分登录参数通过以下方式传给组件,通过该方法传递过后,登录时则无需传递已传递的登录参数。还需要传递回调函数给组件。注:引入绑定时,需全部小写,不能使用驼峰命名。

<guest 
  id="guest"
  signal-server="http://192.168.4.171:19993"
  room-server="http://192.168.4.171:9000"
  app-key="05c97ce0d0a84d2592334093"
  app-name="视频客服访客"
  display-name=""
  token=""
  token-type="jrtc_access"
  token-extra-param=""
  bindonlogin="onLogin"
  bindonlogout="onLogout"
  ...>
</guest>
{
  "usingComponents": {
    "guest": "/components/guest/guest"
  }
}

​ 回调函数按需传递,没有使用的无需传递。

# 插件通用属性

属性 类型 参数/属性值 必填 说明
signal-server String signal环境
room-server String room环境
app-key String appKey
app-name String app名称
display-name String 昵称
token String token
token-type String token类型
token-extra-param String token校验拓展参数
subscribeWidth Number 1920 订阅视频清晰度-宽度
subscribeHeight Number 1080 订阅视频清晰度-高度
closeCameraBackgroundColor String #1C1C1E 关闭摄像头后背景颜色
videoHoldLastFrame Boolean false 保留最后一帧画面
closeCameraIconSrc String 关闭摄像头图标样式
newMessageToast String 您收到了一条消息,点击消息查看 收到新消息的提示语
toastColor String #FFFFFF 消息提示文字颜色
toastBackgroundColor String #252525cc 消息提示遮罩背景色
bindonlogin Function result, reason 登录的回调 (opens new window)
bindonlogout Function reason 登出的回调 (opens new window)
bindonclientstatechanged Function state, oldState 登录状态的回调 (opens new window)
bindononlinemessagereceived Function message, userId 收到在线消息的回调 (opens new window)
bindononlinemessagesendresult Function result, operatorId 发送在线消息的回调 (opens new window)
bindongetallgroups Function result, groups (opens new window) 查询所有业务组的回调 (opens new window)
bindoncallstatechange Function type (opens new window), inviter (opens new window), reason (opens new window) 通话状态改变的回调 (opens new window)
bindonmemberjoin Function participant (opens new window) 成员加入的回调 (opens new window)
bindonmemberleave Function participant (opens new window) 成员离开的回调 (opens new window)
bindonmemberupdate Function participant (opens new window)changeParam (opens new window) 成员属性更新的回调 (opens new window)
bindonurgentresult Function agree 加急申请的回调 (opens new window)
bindonholdstatechange Function hold 通话保持的回调 (opens new window)
bindoncalltypechange Function callType (opens new window) 通话类型改变的回调 (opens new window)
bindonerror Function event (opens new window) 错误事件的回调 (opens new window)

# 登录

在登录时需要设置几个参数,如下表。

参数名 参数含义 是否必填
signalServer signal环境
roomServer room环境
appKey appkey
userId 账号
displayName 昵称
token token
tokenType token类型
tokenExtraParam token校验拓展参数

设置好参数后,即可调用 login (opens new window) 方法进行登录。调用时需要把这些参数作为一个对象传给 login (opens new window) 方法,引入时已传递的参数则可以不用再传递。下面是一个简单的示例。

const guestComponent = this.selectComponent('#guest');
const clientEnv = {
  signalServer: 'http://192.168.4.171:19993',
  roomServer: 'http://192.168.4.171:9000',
  appKey: '05c97ce0d0a84d2592334093',
  userId: '',
  displayName: '',
  token: '',
  tokenType: 'jrtc_access',
  tokenExtraParam: '',
};
guestComponent.login(clientEnv);

# 登出

登出无需设置参数,只需调用 logout (opens new window) 方法即可,下面是一个简单的示例。

const guestComponent = this.selectComponent('#guest');
guestComponent.logout();

# 获取登录状态

可以使用登录状态的回调获取当前登录状态,它可以获取两个参数 state (opens new window)、oldState,state 表示当前的登录状态,oldState 表示之前的状态。下面是一个示例。

/**
 * 登录状态变化通知
 *
 * @param state    当前状态值
 * @param oldState 之前状态值
 * 	  state = 1 未登录
 *    state = 2 登录中
 *    state = 3 已登录
 *    state = 4 登出中
 */
onClientStateChanged(e){
  const { state, oldState } = e.detail;
  console.log('onClientStateChanged oldState: ', oldState, 'state: ', state);
},

# 查询业务组

登录成功之后即可调用 queryGroup (opens new window) 方法后,可在 onGetAllGroups (opens new window) 回调中获取所有业务号信息,获取之后即可通过业务号进行呼叫。

const guestComponent = this.selectComponent('#guest');
guestComponent.queryGroup();