# 启动器
| 消息类型 | 名称 | 必须实现 | 
|---|---|---|
| response | start_activity | 否 | 
| back | 否 | |
| select | 否 | |
| request | start_activity_result | 否 | 
| back_result | 否 | |
| select_result | 否 | 
# context
"iflyos_context": {
  ...
  "launcher": {
    "version": "1.1"
  },
  ...
}
| 参数 | 类型 | 说明 | 必填 | 
|---|---|---|---|
| version | String | 模块版本,现在是1.1 | 
版本说明
| 版本 | 说明 | 更新日期 | 
|---|---|---|
| 1.0 | 基础实现 | 2019-08-28 | 
| 1.1 | 增加选择相关 | 2019-12-12 | 
# response
# 页面跳转
说明
用户请求后,云端会理解语义,并返回该指令。你需要根据用户的实际请求,打开合适的页面。即使你的页面命名与云端返回不一致。
{
  "iflyos_responses": [
    ...,
    {
      "header": {
        "name": "launcher.start_activity"
      },
      "payload": {
        "page": "home",//取值见下表
      }
    }
 ]
}
| 参数 | 类型 | 说明 | 必填 | 
|---|---|---|---|
| page | String | 页面名称 | 是 | 
目前支持的页面
| page取值 | 页面说明 | 
|---|---|
| home | 主页面/首页/桌面 | 
| settings | 设置页,显示设备支持的设置项 | 
| contents | 内容中心页,显示推荐的内容列表 | 
| skills | 技能中心页,显示设备可以使用的技能 | 
| alarms | 闹钟列表,显示设备当前已经设置的闹钟 | 
| messages | 留言板页,显示设备与APP之前的留言历史 | 
| next | 下一页 | 
| previous | 上一页 | 
# 页面返回
说明
当用户请求“返回”时,如果云端认为用户请求的是页面的返回,云端会返回该指令。你需要根据用户的实际请求,返回到合适的页面。
{
  "iflyos_responses": [
    ...,
    {
      "header": {
        "name": "launcher.back"
      },
      "payload": {}
    }
 ]
}
# 页面选择
当前界面处于launcher页面时,用户可能会语音请求说“选择第3个”之类的选择话术,云端会在语义理解后,向设备发送select的response。
在你收到这样的response时,你需要在当前页面进行合适的处理。如打开用户选择的列表项,或向用户反馈“超出列表选项”。
{
  "iflyos_responses": [
    ...,
    {
      "header": {
        "name": "launcher.select"
      },
      "payload": {
        "number": 12//选择的序号
      }
    }
 ]
}
| 参数 | 类型 | 说明 | 必填 | 
|---|---|---|---|
| number | Int | 用户请求选择的数字 | 是 | 
# request
# 页面跳转结果
在执行完云端返回的response后,你需要将执行的结果告知云端。
{   
  "iflyos_header": {...},   
  "iflyos_context": {...},   
  "iflyos_request": {     
    "header": {       
      "name": "launcher.start_activity_result",       
      "request_id": "xxxxxxxx"     
    },     
    "payload": {       
      "result": "SUCCEED",
      "page": "xxxxx", 
      "failure_code": "xxxx",    
      "feedback_text": "xxxxx"     
    }   
  } 
}
| 参数 | 类型 | 说明 | 必填 | 
|---|---|---|---|
| iflyos_header | Object | 构建的通用 iflyos_header | 是 | 
| iflyos_context | Object | 构建的通用 iflyos_context | 是 | 
| result | String | 页面跳转结果。取值:SUCCEED,FAILED | 是 | 
| page | String | 跳转的页面名称,以 response中的取值为准 | 是 | 
| failure_code | String | 失败类型,当result取值为FAILED时此项必填。取值:NOT_FOUND_PAGE,INTERNAL_ERROR | 否 | 
| feedback_text | String | 执行后反馈给用户的语音提示。提示音播放逻辑: 1. 该项出现,则云端会返回feedback_text中的文本; 2.若该项出现但取值为空,云端不回复TTS; 3.该项不出现,云端返回默认文本。 | 否 | 
# 页面返回结果
在执行完云端返回的back后,你需要将执行的结果告知云端。
{  
  "iflyos_header": {...},  
  "iflyos_context": {...},  
  "iflyos_request": {    
    "header": {      
      "name": "launcher.back_result",      
      "request_id": "xxxxxxxx"    
    },    
    "payload": {      
      "result": "SUCCEED", 
      "feedback_text": "xxxxx"    
    }  
  }
}
| 参数 | 类型 | 说明 | 必填 | 
|---|---|---|---|
| iflyos_header | Object | 构建的通用 iflyos_header | 是 | 
| iflyos_context | Object | 构建的通用 iflyos_context | 是 | 
| result | String | 执行返回操作的结果。取值:SUCCEED,FAILED | 是 | 
| feedback_text | String | 执行后反馈给用户的语音提示。提示音播放逻辑: 1. 该项出现,则云端会返回feedback_text中的文本; 2.若该项出现但取值为空,云端不回复TTS; 3.该项不出现,云端返回默认文本。 | 否 | 
# 页面选择结果
{ 
  "iflyos_header": {...}, 
  "iflyos_context": {...}, 
  "iflyos_request": {   
    "header": {     
      "name": "launcher.select_result",     
      "request_id": "xxxxxxxx"   
    },   
    "payload": {     
      "result": "FAILED",
      "failure_code": "INVALID_NUMBER",//可取值:INVALID_NUMBER,NONSELECTABLE_PAGE
      "feedback_text": "xxxxx"   
    } 
  }
}
| 参数 | 类型 | 说明 | 必填 | 
|---|---|---|---|
| iflyos_header | Object | 构建的通用 iflyos_header | 是 | 
| iflyos_context | Object | 构建的通用 iflyos_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.该项不出现,云端返回默认文本。 | 否 |