本模块是小友的功能性接口模块。
这些接口最先是出现在移动端的模块中,也是智友和后端交互的核心模块。
在友空间 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 |