本模块是小友的功能性接口模块。
这些接口最先是出现在移动端的模块中,也是智友和后端交互的核心模块。
在友空间 APP 端是调用原生模块进行发起请求和处理响应。
在非移动端环境下,例如在开发模式下和 PC 端友空间模式下,通过 axios 模块进行模拟请求和响应,1:1 复刻出一个 xiaoyouLight 模块,在入参和回调方面,和原生模块保持一致。
初始化小友参数。注意Android端初始化之前需要检测录音和存储权限是否已申请,没有这些权限的话需要先申请。
domain:
类型:字符串类型
描述:(必填)统一域名。根据环境选取对应的统一域名 bodyDomainId:
类型:字符串类型
描述:(必填)body中的标识,小友机器人里面用于区分领域的domain
默认:'diwork'
tenantid:
token:
robotid:
userid:
yhtAccessToken:
domainid:
robotVersion:
locale:
deviceType:
sessionid:
msgtype:
testFlag:
bosTime:
eosTime:
ret:
内部字段:
{
  //布尔类型;是否成功
  status: true
}
var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.initXiaoYou({
  token: "",
  domain: "",
  yhtAccessToken: "",
  tenantid: "",
  bodyDomainId: "",
  userid: "",
  robotVersion: "",
  domainid: "",
  enterpriseid: "",
  uid: "",
  bosTime: 3000,
  eosTime: 3000
}, function (ret) {
  alert(JSON.stringify(ret, err));
});
| iOS | Android | Web | 
|---|---|---|
| OK | OK | OK | 
发送消息
text:
voiceInput:
ret:
内部字段:
{
  //布尔类型;是否成功
  status: true,
  message: {
    //json对象;返回内容
  }
}
err:
{
  //字符串类型;失败的原因
  msg: ''
}
var xiaoyouLight = api.require('xiaoyouLight')
xiaoyouLight.requestChat({
  text: '',
  voiceInput: true
}, function (ret, err) {
  alert(JSON.stringify(ret))
})
| iOS | Android | Web | 
|---|---|---|
| OK | OK | OK | 
欢迎语
ret:
内部字段:
{
  //布尔类型;是否成功
  status: true,
  //json对象;返回内容
  message: {
  }
}
err:
类型:JSON 对象
描述:错误信息
内部字段:
{
  //字符串类型;失败的原因
  msg: ''
}
var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.requestWelcome(function (ret, err) {
  alert(JSON.stringify(ret));
});
| iOS | Android | Web | 
|---|---|---|
| OK | OK | OK | 
取消流程
ret:
内部字段:
{
  //布尔类型;是否成功
  status: true,
  message: {
    //json对象;返回内容
  }
}
err:
{
  //字符串类型;失败的原因
  msg: ''
}
var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.requestCancel(function (ret, err) {
  alert(JSON.stringify(ret));
});
| iOS | Android | Web | 
|---|---|---|
| OK | OK | 
开始识别
bosTime:
eosTime:
ret:
内部字段:
{
  //字符串类型;事件返回,取值范围 :start 接口调用完成,仅返回一次 recognizerVolume 检测到音量大小事件 recognizerProgress 识别过程中 recognizerSuccess 识别成功 recognizerFailure 识别失败
  eventType: 'start',
  //布尔类型;是否成功,仅代表开启识别成功,不代表识别成功,eventType为start返回
  status: true,
  //字符串类型; 识别结果,eventType为recognizerSuccess返回
  resultText: '',
  // 数字类型;识别过程中检测到的实时音量大小,取值范围为 0-30  eventType为recognizerVolume返回
  volume: 0,
  //数字类型;错误码 ,eventType为recognizerFailure返回
  errorCode: 0,
  //数字类型;错误码类型 ,eventType为recognizerFailure返回
  errorType: 0,
  //字符串类型; 错误描述,eventType为recognizerFailure返回
  errorDesc: ''
}
var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.startRecording(function (ret, err) {
  alert(JSON.stringify(ret));
});
| iOS | Android | Web | 
|---|---|---|
| OK | OK | OK | 
停止录音
var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.stopRecording();
| iOS | Android | Web | 
|---|---|---|
| OK | OK | OK | 
开始语音播报
text:
ret:
内部字段:
{
  //布尔类型;是否成功
  status: true
}
err:
{
  //数字类型
  errorCode: 0,
  //数字类型
  errorType: 0,
  //字符串类型
  errorDesc: ''
}
var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.startSpeaking({
  text: ''
}, function (ret, err) {
  alert(JSON.stringify(ret, err));
});
| iOS | Android | Web | 
|---|---|---|
| OK | OK | 
停止语言播报
var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.stopSpeaking();
| iOS | Android | Web | 
|---|---|---|
| OK | OK | 
调用此接口可以实现与原生app之间进行数据交互,例如通知友空间打开聊天页面、进行打卡等
action:
data:
ret:
内部字段:
{
  data: {
    //json对象;回调数据
  }
}
var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.notifyToYouzone({
  action: '',
  data: {}
}, function (ret) {
  alert(JSON.stringify(ret));
});
| iOS | Android | Web | 
|---|---|---|
| OK | OK | 
可提供的1.0.1及更高版本
打开小友界面
var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.initXiaoYou({
  token: "",
  domain: "",
  yhtAccessToken: "",
  tenantid: "",
  bodyDomainId: "",
  userid: "",
  robotVersion: "",
  domainid: "",
  enterpriseid: "",
  uid: "",
  bosTime: 3000,
  eosTime: 3000
}, function (ret) {
});
xiaoyouLight.openXiaoYou();
| iOS | Android | Web | 
|---|---|---|
| OK | OK | 
获取原生传递的初始化参数,如头像,appcode、友互通token等
ret:
内部字段:
{
  "domain": "https://c1.diwork.com/iuap-aip-vpa/apiregister",
  "appcode": "diwork",
  "bodyDomainId": "diwork",
  "token": "1b8f0a4f-39f4-4c0f-8aec-74b2a4d655aa",
  "yhtAccessToken": "18fdea7a-b6f3-45ad-bbc8-uspacemobile__5f5865dd74135b4f289c7b8f5ee2744b_1679308797442dccore0yonbip-ec-based8da2a51YT",
  "userid": "c400d401-d7cd-4e6b-8454-1236ceb7e87b",
  "uid": "6944469",
  "tenantid": "qyic8c7o",
  "enterpriseid": "5417",
  "headUrl": ""
}
var xiaoyouLight = api.require('xiaoyouLight')
xiaoyouLight.getInitParams(function (ret) {
  alert(JSON.stringify(ret))
})
| iOS | Android | Web | 
|---|---|---|
| OK | OK | OK | 
检测h5包/model卡片资源包是否有更新
type:
modelId:
ret:
内部字段:
{
  //布尔类型;接口请求是否成功
  status: true,
  message: {
    //json对象;后台接口响应
  }
}
var xiaoyouLight = api.require('xiaoyouLight')
xiaoyouLight.checkUpdate({
  type: 1,
  modelId: 101
}, function (ret, err) {
  alert(JSON.stringify(ret))
})
| iOS | Android | Web | 
|---|---|---|
| OK | OK | OK | 
根据url路径下载最新的h5压缩包到本地
urlPath:
ret:
内部字段:
{
  //布尔类型;是否下载成功
  status: true,
  //h5资源包本地路径
  path: ''
}
var xiaoyouLight = api.require('xiaoyouLight');
xiaoyouLight.getH5Zip({
  urlPath: "",
}, function (ret, err) {
  alert(JSON.stringify(ret));
});
| iOS | Android | Web | 
|---|---|---|
| OK | OK | OK | 
zip包解压,解压后的路径会包含资源包id和版本号信息,便于本地保存和区分
zipPath:
modelId:
version:
type:
ret:
内部字段:
{
  //布尔类型;是否成功
  status: true,
  //h5压缩包解压后的本地路径
  path: ''
}
var xiaoyouLight = api.require('xiaoyouLight')
xiaoyouLight.unZip({
  zipPath: '',
  modelId: '',
  version: '',
  type: 0
}, function (ret, err) {
  alert(JSON.stringify(ret))
})
| iOS | Android | Web | 
|---|---|---|
| OK | OK | OK | 
执行运行 VPA 的 WebView 中的 JS 代码,可用于与 VPA 交互,支持 vpa 的所有 api。vpa api
jscode:
var xiaoyouLight = api.require('xiaoyouLight')
xiaoyouLight.executeH5Api({
  jscode: 'vpa.sendMessage({msg: "hello"})'
})
| iOS | Android | Web | 
|---|---|---|
| OK | OK | OK |