# 模板渲染_v1.0

# 版本说明

版本 说明 日期
v1.0 RenderTemplate指令:BodyTemplate1, BodyTemplate2 , ListTemplate1 , WeatherTemplate
RenderPlayerInfo指令:PlayerInfo
2018.5.17
v1.1 RenderTemplate指令:增加backgroundImage、backButton字段;增加BodyTemplate3 , OptionTemplate2 , OptionTemplate3
增加ElementSelected事件
2019.5.21

# RenderTemplate 指令

# BodyTemplate1

用于展示纯文本数据。

BodyTemplate1

# 消息样式

{
  "directive": {
    "header": {
      "namespace": "TemplateRuntime",
      "name": "RenderTemplate",
      "messageId": "e52e7a4c...",
      "dialogRequestId": "49687be..."
    },
    "payload": {
      "token": "S0wiXQZ1rVBkov...",
      "type": "BodyTemplate1",
      "backgroundImage": {{IMAGE_STRUCTURE}},
      "backButton": "VISIBLE"//HIDDEN,默认为VISIBLE,
      "title": {
        "mainTitle": "String",
        "subTitle": "String"
      },
      "skillIcon": {{IMAGE STRUCTURE}},
      "textField": "String"
    }
  }
}

Header参数

参数名 说明 类型
messageId 代表一条message的唯一ID String
dialogRequestId 客户端必须为recognize请求创建的唯一ID,此参数用于关联响应特定Recognize事件发送的指令 String

Payload参数

参数名 说明 类型 必须出现
token iFLYOS提供的token String
type 模板消息的类型,这里是BodyTemplate1 String
backgroundImage 背景图片 image structure
backButton 是否显示返回键,取值:VISIBLE,HIDDEN。默认为HIDDEN
title 消息的键值对,包含主标题和副标题 Object
title.mainTitle 主标题 String
title.subTitle 副标题 String
skillIcon 技能图标,可选 image structure
textField 文本内容 String

# BodyTemplate2

用于展示带一张图的文本消息。

BodyTemplate2

# 消息样式

{
  "directive": {
    "header": {
      "namespace": "TemplateRuntime",
      "name": "RenderTemplate",
      "messageId": "e52e7a4c...",
      "dialogRequestId": "49687be..."
    },
    "payload": {
      "token": "S0wiXQZ1rVBkov...",
      "type": "BodyTemplate2",
      "backgroundImage": {{IMAGE_STRUCTURE}},
      "backButton": "VISIBLE"//HIDDEN,默认为VISIBLE,
      "title": {
        "mainTitle": "String",
        "subTitle": "String"
      },
      "skillIcon": {{IMAGE_STRUCTURE}},
      "textField": "String",
      "image": {{IMAGE_STRUCTURE}},
    }
  }
}

Header参数

参数名 说明 类型
messageId 代表一条message的唯一ID String
dialogRequestId 客户端必须为recognize请求创建的唯一ID,此参数用于关联响应特定Recognize事件发送的指令 String

Payload参数

参数名 说明 类型 必须出现
token iFLYOS提供的token String
type 模板消息的类型,这里是BodyTemplate2 String
backgroundImage 背景图片 image structure
backButton 是否显示返回键,取值:VISIBLE,HIDDEN。默认为HIDDEN
title 消息的键值对,包含主标题和副标题 Object
title.mainTitle 主标题 String
title.subTitle 副标题 String
skillIcon 技能图标,可选 image structure
textField 文本内容 String
image 模板中的图片 image structure

# BodyTemplate3

用于展示短文本,如闹钟时间

BodyTemplate3

{
  "directive": {
    "header": {
      "namespace": "TemplateRuntime",
      "name": "RenderTemplate",
      "messageId": "e52e7a4c...",
      "dialogRequestId": "49687be..."
    },
    "payload": {
      "token": "S0wiXQZ1rVBkov...",
      "type": "BodyTemplate3",
      "backgroundImage": {{IMAGE_STRUCTURE}},
      "backButton": "VISIBLE"//HIDDEN,默认为VISIBLE,
      "title": {
        "mainTitle": "String",
        "subTitle": "String"
      },
      "skillIcon": {{IMAGE_STRUCTURE}},
      "textField": "String",
      "subtextField": "String"
    }
  }
}

Header参数

参数名 说明 类型
messageId 代表一条message的唯一ID String
dialogRequestId 客户端必须为recognize请求创建的唯一ID,此参数用于关联响应特定Recognize事件发送的指令 String

Payload参数

参数名 说明 类型 必须出现
token iFLYOS提供的token String
type 模板消息的类型,这里是BodyTemplate3 String
backgroundImage 背景图片 image structure
backButton 是否显示返回键,取值:VISIBLE,HIDDEN。默认为HIDDEN
title 消息的键值对,包含主标题和副标题 Object
title.mainTitle 主标题 String
title.subTitle 副标题 String
skillIcon 技能图标,可选 image structure
textField 文本内容 String
subtextField 次级文本内容 String

# ListTemplate1

用于展示一个列表,包含左右的文本。

ListTemplate1

# 消息样式

{
  "directive": {
    "header": {
      "namespace": "TemplateRuntime",
      "name": "RenderTemplate",
      "messageId": "e52e7a4c...",
      "dialogRequestId": "49687be..."
    },
    "payload": {
      "token": "S0wiXQZ1rVBkov...",
      "type": "ListTemplate1",
      "backgroundImage":{{IMAGE_STRUCTURE}},
      "backButton": "VISIBLE"//HIDDEN,默认为VISIBLE,
      "title": {
        "mainTitle": "String",
        "subTitle": "String"
      },
      "skillIcon": {{IMAGE_STRUCTURE}},
      "listItems": [
        {
          "leftTextField": "String",
          "rightTextField": "String"
        },
        {
          "leftTextField": "String",
          "rightTextField": "String"
        },
        {
          ...
        }
      ]
    }
  }
}

Header参数

参数名 说明 类型
messageId 代表一条message的唯一ID String
dialogRequestId 客户端必须为recognize请求创建的唯一ID,此参数用于关联响应特定Recognize事件发送的指令 String

Payload参数

参数名 说明 类型 必须出现
token iFLYOS提供的token String
type 模板消息的类型,这里是ListTemplate1 String
backgroundImage 背景图片 image structure
backButton 是否显示返回键,取值:VISIBLE,HIDDEN。默认为HIDDEN
title 消息的键值对,包含主标题和副标题 Object
title.mainTitle 主标题 String
title.subTitle 副标题 String
skillIcon 技能图标,可选 image structure
listItems 列表内容 List
listItems.
leftTextField
左边的文本内容 String
listItems.
rightTextField
右边的文本内容 String

# OptionTemplate2

用于展示一个选项列表,仅支持点击选择和语音序号选择,选项图标为竖向显示,选项被选择后会上报事件。

{
  "directive": {
    "header": {
      "namespace": "TemplateRuntime",
      "name": "RenderTemplate",
      "messageId": "e52e7a4c...",
      "dialogRequestId": "49687be..."
    },
    "payload": {
      "token": "S0wiXQZ1rVBkov...",
      "type": "OptionTemplate2",
      "backgroundImage": {{IMAGE_STRUCTURE}},
      "backButton": "VISIBLE"//HIDDEN,默认为VISIBLE,
      "title": {
        "mainTitle": "String",
        "subTitle": "String"
      },
      "skillIcon": {{IMAGE_STRUCTURE}},
      "optionItems": [
        {
          "token": "string",
          "primaryTextField": "String",
          "secondaryTextField": "String",
          "tertiaryTextField": "String",
          "image":{{IMAGE_STRUCTURE}}//新增
        },
        {
          ...
        }
      ]
    }
  }
}

Header参数

参数名 说明 类型
messageId 代表一条message的唯一ID String
dialogRequestId 客户端必须为recognize请求创建的唯一ID,此参数用于关联响应特定Recognize事件发送的指令 String

Payload参数

参数名 说明 类型 必须出现
token iFLYOS提供的token String
type 模板消息的类型,这里是OptionTemplate2 String
backgroundImage 背景图片 image structure
backButton 是否显示返回键,取值:VISIBLE,HIDDEN。默认为HIDDEN
title 消息的键值对,包含主标题和副标题 Object
title.mainTitle 主标题 String
title.subTitle 副标题 String
skillIcon 技能图标,可选 image structure
OptionItems 选项内容 List
OptionItems
token
选项唯一标识,item被选择时设备应该上报被选择的item的token String
OptionItems
image
选项图片 image structure
OptionItems
primaryTextField
一级文本 String
OptionItems
secondaryTextField
二级文本 String
OptionItems
tertiaryTextField
三级文本 String

# OptionTemplate3

用于展示一个选项列表,仅支持点击选择和语音序号选择,选项图标为横向显示,选项被选择后会上报事件。

{
  "directive": {
    "header": {
      "namespace": "TemplateRuntime",
      "name": "RenderTemplate",
      "messageId": "e52e7a4c...",
      "dialogRequestId": "49687be..."
    },
    "payload": {
      "token": "S0wiXQZ1rVBkov...",
      "type": "OptionTemplate3",
      "backgroundImage": {{IMAGE_STRUCTURE}},
      "backButton": "VISIBLE"//HIDDEN,默认为VISIBLE,
      "title": {
        "mainTitle": "String",
        "subTitle": "String"
      },
      "skillIcon": {{IMAGE_STRUCTURE}},
      "optionItems": [
        {
          "token": "string",
          "primaryTextField": "String",
          "secondaryTextField": "String",
          "tertiaryTextField": "String",
          "image":{{IMAGE_STRUCTURE}}//新增
        },
        {
          ...
        }
      ]
    }
  }
}

Header参数

参数名 说明 类型
messageId 代表一条message的唯一ID String
dialogRequestId 客户端必须为recognize请求创建的唯一ID,此参数用于关联响应特定Recognize事件发送的指令 String

Payload参数

参数名 说明 类型 必须出现
token iFLYOS提供的token String
type 模板消息的类型,这里是OptionTemplate3 String
backgroundImage 背景图片 image structure
backButton 是否显示返回键,取值:VISIBLE,HIDDEN。默认为HIDDEN
title 消息的键值对,包含主标题和副标题 Object
title.mainTitle 主标题 String
title.subTitle 副标题 String
skillIcon 技能图标,可选 image structure
OptionItems 选项内容 List
OptionItems.*.
token
选项唯一标识,item被选择时设备应该上报被选择的item的token String
OptionItems.*.
image
选项图片 image structure
OptionItems.*.
primaryTextField
一级文本 String
OptionItems.*.
secondaryTextField
二级文本 String
OptionItems.*.
tertiaryTextField
三级文本 String

# WeatherTemplate

用来展示天气预报

WeatherTemplate

# 消息样式

{
  "directive": {
    "header": {
      "namespace": "TemplateRuntime",
      "name": "RenderTemplate",
      "messageId": "e52e7a4c...",
      "dialogRequestId": "49687be..."
    },
    "payload": {
      "token": "S0wiXQZ1rVBkov...",
      "type": "WeatherTemplate",
      "backgroundImage": {{IMAGE_STRUCTURE}},
      "title": {
        "mainTitle": "String",
        "subTitle": "String"
      },
      "skillIcon": {{IMAGE_STRUCTURE}},
      "currentWeather": "String",
      "description": "String",
      "currentWeatherIcon": {{IMAGE_STRUCTURE}},
      "highTemperature": {
        "value": "String",
        "arrow": {{IMAGE_STRUCTURE}}
      },
      "lowTemperature": {
        "value": "String",
        "arrow": {{IMAGE_STRUCTURE}}
      },
      "weatherForecast": [
        {
          "image": {{IMAGE_STRUCTURE}},
          "day": "String",
          "date": "String",
          "highTemperature": "String",
          "lowTemperature": "String"
        },
        {
          "image": {{IMAGE_STRUCTURE}},
          "day": "String",
          "date": "String",
          "highTemperature": "String",
          "lowTemperature": "String"
        },
        {
          ...
        }
      ]
    }
  }
}

Header参数

参数名 说明 类型
messageId 代表一条message的唯一ID String
dialogRequestId 客户端必须为recognize请求创建的唯一ID,此参数用于关联响应特定Recognize事件发送的指令 String

Payload参数

参数名 说明 类型 必须出现
token iFLYOS提供的token String
type 模板消息的类型,这里是WeatherTemplate1 String
backgroundImage 背景图片 image structure
title 消息的键值对,包含主标题和副标题 Object
title.mainTitle 主标题,建议填写日期 String
title.subTitle 副标题,建议填写地区 String
skillIcon 技能图标,可选 image structure
currentWeather 当前天气 String
description 当前天气描述 String
currentWeatherIcon 当前天气的图片 image structure
highTemperature 最高温天气的值和图片 Object
highTemperature.value 查询的天气的最高温 String
highTemperature.arrow 高温天气的图片 image structure
lowTemperature 最低温天气的值和图片 Object
lowTemperature.value 查询的天气的最低温 String
lowTemperature.arrow 低温天气的图片 image structure
weatherForecast 要求查询的几天的天气预报 List
weatherForecast.image 天气情况图片 image structure
weatherForecast.day 星期 String
weatherForecast.date 日期 String
weatherForecast.
highTemperature
高温 String
weatherForecast.
lowTemperature
低温 String

# ElementSelected 事件

OptionTemplate2OptionTemplate3中,用户点击选择选项时,设备需要上报该事件。

{
  "event": {
    "header": {
      "namespace": "TemplateRuntime",
      "name": "ElementSelected",
      "messageId": "e52e7a4c...",
    },
    "payload": {
      "token": "S0wiXQZ1rVBkov...",
      "selectedItemToken": "string"
    }
  }
}

Header参数

参数名 说明 类型
messageId 代表一条message的唯一ID String

Payload参数

参数名 说明 类型 必须出现
token 展示的模板的token。 String
selectedItemToken 被选择的选项的token String

# RenderPlayerInfo 指令

用于展示正在播放的音频的信息。

PlayerInfo

# 消息样式

{
  "directive": {
    "header": {
      "namespace": "TemplateRuntime",
      "name": "RenderPlayerInfo",
      "messageId": "e52e7a4c...",
      "dialogRequestId": "49687be..."
    },
    "payload": {
      "audioItemId": "2698f663288aedebab0f4773727448c4",
      "content": {
        "title": "String",
        "titleSubtext1": "String",
        "titleSubtext2": "String",
        "header": "String",
        "headerSubtext1": "String",
        "mediaLengthInMilliseconds": 60000,
        "lyric": {
          "url": "https://url-of-the-lyric.iflyos.cn/xiaoxingyun.lrc",
          "format": "lrc"
        }
        "art": {{IMAGE_STRUCTURE}},
        "provider": {
          "name": "String",
          "logo": {{IMAGE_STRUCTURE}}
        }
      },
      "controls": [
        {
          "type": "BUTTON",
          "name": "String",
          "enabled": false,
          "selected": false
        },
        {
          "type": "BUTTON",
          "name": "String",
          "enabled": false,
          "selected": false
        },
        {
          ...
        }
      ]
    }
  }
}

# Header参数

参数名 说明 类型
messageId 代表一条message的唯一ID String
dialogRequestId 客户端必须为recognize请求创建的唯一ID,此参数用于关联响应特定Recognize事件发送的指令 String

# Payload参数

参数名 说明 类型 必须出现
audioItemId 音频文件的唯一Id,和Play指令中下发的Id相同 String
content 标题内容 Object
controls 显示在屏幕上的控制类型 List

content 参数

参数名 说明 类型 必须出现
title 主标题 String
titleSubtext1 一级标题 String
titleSubtext2 二级标题 String
header 顶部文本内容 String
headerSubtext1 顶部二级文本内容 String
mediaLengthInMilliseconds 音频长度 String
lyric 音频歌词信息 Object
lyric.url 歌词文件链接 String
lyric.format 歌词文件格式,可取值:lrc,txt String
art 图片 image structure
provider 内容提供方的信息 Object
provider.name 内容提供方名称 String
provider.logo 内容提供方LOGO image structure

controls 参数

参数名 说明 类型 必须出现
type 控制类型。**取值:**BUTTON String
name 控制名称。取值: PLAY_PAUSE, NEXT, PREVIOUS String
enabled 是否可点,TRUE为可点 Boolean
selected 是否被选中,TURE为选中。如收藏按钮 Boolean

# Image Structure

内容提供方可能只提供 source.url,但客户端需要考虑到其他内容提供或不提供的展示形式。

sources是一个图片的来源列表,列表中可能有一个或多个来源。

# 消息样式

{
  "contentDescription": "String",
  "sources": [
    {
      "url": "https://www.iflyos.cn/example...",
      "darkBackgroundUrl": "String",
      "size": "String",
      "widthPixels": 640,
      "heightPixels": 380
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

# 参数

参数名 说明 类型 必须出现
contentDescription 图片描述,可选 String
sources 一个图片的来源列表,,每个来源中包含url, size, widthPixels, heightPixels List
-[i].url 图片的URL,必填 String
-[i].darkBackgroundUrl 夜间模式的图片,可选 String
-[i].size 图片尺寸,可选,出现这个参数时,在模板中渲染不同尺寸的容器。取值: X-SMALL, SMALL, MEDIUM, LARGE, X-LARGE String 和宽高二选一
-[i].widthPixels 图片宽度,像素为单位,可选 Long 和尺寸二选一
-[i].heightPixels 图片高度,像素为单位,可选 Long 和尺寸二选一