# 跳转控制器
# 协议类型
消息类型 | 名称 | 必须实现 |
---|---|---|
directive | start_activity | 否 |
back | 否 | |
select | 否 | |
event | start_activity_result | 否 |
back_result | 否 | |
select_result | 否 |
# context
请求示例
"unios_context": {
...
"launcher": {
"version": "1.1"
},
...
}
1
2
3
4
5
6
7
2
3
4
5
6
7
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
version | String | 模块版本,现在是1.0 | 是 |
# directive
页面跳转
说明
用户请求后,云端会理解语义,并返回该指令。需要根据用户的实际请求,打开合适的页面。
即使你的页面命名与云端返回不一致。
回复示例
{
"unios_directives": [
...,
{
"header": {
"name": "launcher.start_activity"
},
"payload": {
"page": "home"
}
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
page | String | 页面名称 | 是 |
page取值说明
page | 说明 |
---|---|
home | 主页面/首页/桌面 |
settings | 设置页,显示设备支持的设置项 |
contents | 内容中心页,显示推荐的内容列表 |
skills | 技能中心页,显示设备可以使用的技能 |
alarms | 闹钟列表,显示设备当前已经设置的闹钟 |
messages | 留言板页,显示设备与APP之前的留言历史 |
next | 下一页 |
previous | 上一页 |
页面返回
说明
当用户请求“返回”时,如果云端认为用户请求的是页面的返回,云端会返回该指令。需要根据用户的实际请求,返回到合适的页面。
回复示例
{
"unios_directives": [
...,
{
"header": {
"name": "launcher.back"
},
"payload": {}
}
]
}
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
页面选择
说明
当前界面处于launcher页面时,用户可能会语音请求说“选择第3个”之类的选择话术,云端会在语义理解后,向设备发送select的directive。
设备收到directive时,需要在当前页面进行合适的处理,例如打开用户选择的列表项,或向用户反馈“超出列表选项”。
回复示例
{
"unios_directives": [
...,
{
"header": {
"name": "launcher.select"
},
"payload": {
"number": 12
}
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
number | Integer | 用户请求选择的数字 | 是 |
# event
页面跳转结果
在执行完云端返回的directive后,需要将执行的结果告知云端。
请求示例
{
"unios_header": {...},
"unios_context": {...},
"unios_event": {
"header": {
"name": "launcher.start_activity_result",
"message_id": "xxxxxxxx"
},
"payload": {
"result": "SUCCEED",
"page": "xxxxx",
"failure_code": "xxxx",
"feedback_text": "xxxxx"
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
unios_header | Object | 构建的通用 unios_header | 是 |
unios_context | Object | 构建的通用 unios_context | 是 |
result | String | 页面跳转的结果,取值为SUCCEED或FAILED | 是 |
page | String | 跳转的页面名称,以directive中的取值为准 | 是 |
failure_code | String | 失败类型,当result取值为FAILED时此项必填。取值:NOT_FOUND_PAGE,INTERNAL_ERROR | 否 |
feedback_text | String | 执行后反馈给用户的语音提示。提示音播放逻辑: 1. 该项出现,则云端会返回feedback_text中的文本 2. 若该项出现但取值为空,云端不回复TTS 3. 该项不出现,云端返回默认文本 | 否 |
页面返回结果
在执行完云端返回的back后,需要将执行的结果告知云端。
请求示例
{
"unios_header": {...},
"unios_context": {...},
"unios_event": {
"header": {
"name": "launcher.back_result",
"message_id": "xxxxxxxx"
},
"payload": {
"result": "SUCCEED",
"feedback_text": "xxxxx"
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
unios_header | Object | 构建的通用 unios_header | 是 |
unios_context | Object | 构建的通用 unios_context | 是 |
result | String | 页面返回的结果,取值为SUCCEED或FAILED | 是 |
feedback_text | String | 执行后反馈给用户的语音提示。提示音播放逻辑: 1. 该项出现,则云端会返回feedback_text中的文本 2. 若该项出现但取值为空,云端不回复TTS 3. 该项不出现,云端返回默认文本 | 否 |
页面选择结果
在执行完云端返回的select后,需要将执行的结果告知云端。
请求示例
{
"unios_header": {...},
"unios_context": {...},
"unios_event": {
"header": {
"name": "launcher.select_result",
"message_id": "xxxxxxxx"
},
"payload": {
"result": "FAILED",
"failure_code": "INVALID_NUMBER",
"feedback_text": "xxxxx"
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
unios_header | Object | 构建的通用 unios_header | 是 |
unios_context | Object | 构建的通用 unios_context | 是 |
result | String | 页面选择的结果,取值为SUCCEED或FAILED | 是 |
failure_code | String | 执行失败的原因,当result取值为FAILED时必填。可取值:INVALID_NUMBER,INVALID_NUMBER,NONSELECTABLE_PAGE | 否 |
feedback_text | String | 执行后反馈给用户的语音提示。提示音播放逻辑: 1. 该项出现,则云端会返回feedback_text中的文本; 2. 若该项出现但取值为空,云端不回复TTS; 3. 该项不出现,云端返回默认文本。 | 否 |