Cartão ao vivo
Categoria: Alimentação e bebida. Etiquetas: Restaurantes e cafés, Lojas, Preços e tarifas.
Layouts
Este cartão em tela cheia preenche toda a tela em paisagem ou retrato e não é colocado como canto, chip ou faixa.
Layouts: cheio. Formas: paisagem, retrato.
Layouts, temas e publicação de cartões. Veja os cartões.
Dados e privacidade
Este cartão usa suas propriedades configuradas e dados ao vivo do cartão.
Propriedades
Para tema, fundo, destaque e posição, veja Propriedades comuns.
Defina as propriedades estáticas nos params do cartão ao criá-lo. O documento de dados dele contém apenas propriedades dinâmicas. Linhas aninhadas descrevem o conteúdo da propriedade pai.
Propriedades estáticas
| Nome | Tipo | Padrão | Valores e limites | Descrição |
|---|---|---|---|---|
title | string | "Combo meals" | maxLength: 40 | |
currency | string | "$" | maxLength: 3 | |
decimals | número, string | "auto" | "auto", 0, 1, 2 | auto usa números inteiros quando todos os preços são inteiros. |
perPage | integer | 0 | mínimo: 0; máximo: 8 | Combos em uma página. 0 define-se: quatro na horizontal em paisagem, uma coluna em retrato. |
pageSeconds | number | 10 | mínimo: 5; máximo: 120 | Quanto tempo uma página permanece quando as combinações não cabem em uma página. |
footnote | string | "" | maxLength: 120 | Uma linha ao longo do rodapé, por exemplo Preços incluem impostos. |
backgroundColor | string, nulo | null | padrão: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | Substitui o fundo e a placa do cartão por uma cor plana ordenada por CSS. #RRGGBBAA fornece opacidade. background none tem precedência. |
textColor | string, nulo | null | padrão: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | Substitui as cores do texto principal e secundário. As cores de destaque e status semântico mantêm seus papéis. |
Propriedades dinâmicas
| Nome | Tipo | Padrão | Valores e limites | Descrição |
|---|---|---|---|---|
combos | array | [{"name":"Smoky stack","items":["Double smoky burger","Large fries","Drink"],"price":10.99,"was":13.47,"upsize":{"label":"Large","add":1.2},"kcal":1240,"badge":"Popular"},{"name":"Crispy chicken","items":["Crispy chicken sandwich","Fries","Drink"],"price":9.49,"was":11.97,"upsize":{"label":"Large","add":1.2},"kcal":1080},{"name":"Garden bowl","items":["Grain bowl","Fruit cup","Drink"],"price":11.25,"was":13.5,"upsize":{"label":"Large","add":1.5},"kcal":760},{"name":"Little one","items":["Mini burger","Apple slices","Juice box"],"price":6.25,"was":7.75,"kcal":520}] | maxItems: 24 | Os combos, na ordem do quadro. |
combos[].number | string | maxLength: 4 | O número no placar. Vazio conta 1, 2, 3. | |
combos[].name | string | minLength: 1; maxLength: 120; Obrigatório | ||
combos[].items | array | maxItems: 6 | O que está no combo, uma linha para cada item. | |
combos[].price | número, nulo | mínimo: 0 | O preço do combo. | |
combos[].was | número, nulo | mínimo: 0 | Os mesmos itens comprados um a um; a economia é calculada. | |
combos[].upsize | objeto, nulo | additionalProperties: false | O passo de aumento, por exemplo Grande +1,20. | |
combos[].upsize.label | string | maxLength: 24 | ||
combos[].upsize.add | número, nulo | mínimo: 0 | ||
combos[].kcal | número, nulo | mínimo: 0 | ||
combos[].image | string | maxLength: 200 | Uma referência de mídia do projeto (media:<id>). Vazio exibe o bloco do tema com um ícone de comida. | |
combos[].badge | string | maxLength: 16 | Uma marca curta na foto, por exemplo, Popular. | |
combos[].soldOut | boolean | false |
Exemplo de tela
Salve as propriedades estáticas como params.json e crie o cartão. O resultado traz o id crd_ dele.
{
"theme": "neomustard"
}
screenrig card create --type combo-meals --major 1 --file params.json
Adicione este item aos primitives de uma página da playlist, com esse id no lugar do id do exemplo. Publique a playlist e atribua uma tela.
{
"id": "combo-meals",
"primitive": "card",
"card": "crd_01EXAMPLECARD000000000",
"layout": "full",
"content_fit": "fill"
}
Escrever dados ao vivo
Escreva o documento no cartão depois de criá-lo e depois substitua-o para atualizar a tela sem republicar. O cartão verifica cada gravação contra suas propriedades dinâmicas e recusa um documento que ele rejeita. Use o mesmo projeto da playlist.
Salve o documento como card-data.json. O CLI lê o documento em si, sem invólucro:
{
"combos": [
{
"name": "Smoky stack",
"items": [
"Double smoky burger",
"Large fries",
"Drink"
],
"price": 10.99,
"was": 13.47,
"upsize": {
"label": "Large",
"add": 1.2
},
"kcal": 1240,
"badge": "Popular"
},
{
"name": "Crispy chicken",
"items": [
"Crispy chicken sandwich",
"Fries",
"Drink"
],
"price": 9.49,
"was": 11.97,
"upsize": {
"label": "Large",
"add": 1.2
},
"kcal": 1080
},
{
"name": "Garden bowl",
"items": [
"Grain bowl",
"Fruit cup",
"Drink"
],
"price": 11.25,
"was": 13.5,
"upsize": {
"label": "Large",
"add": 1.5
},
"kcal": 760
},
{
"name": "Little one",
"items": [
"Mini burger",
"Apple slices",
"Juice box"
],
"price": 6.25,
"was": 7.75,
"kcal": 520
}
]
}
screenrig card data put crd_01EXAMPLECARD000000000 --file card-data.json
Ou chame a API diretamente. A API envolve o mesmo documento em um campo document. Um token de agente já nomeia seu projeto, então nenhum cabeçalho de projeto é enviado; se você enviar ScreenRig-Project, ele deve corresponder ao projeto do token. Forneça sua autorização de API pelo ambiente; veja Autenticação da API.
curl --request PUT "https://api.screenrig.ai/api/cards/crd_01EXAMPLECARD000000000/data" \
--header "Authorization: Bearer $SCREENRIG_TOKEN" \
--header "Content-Type: application/json" \
--data '{"document":{"combos":[{"name":"Smoky stack","items":["Double smoky burger","Large fries","Drink"],"price":10.99,"was":13.47,"upsize":{"label":"Large","add":1.2},"kcal":1240,"badge":"Popular"},{"name":"Crispy chicken","items":["Crispy chicken sandwich","Fries","Drink"],"price":9.49,"was":11.97,"upsize":{"label":"Large","add":1.2},"kcal":1080},{"name":"Garden bowl","items":["Grain bowl","Fruit cup","Drink"],"price":11.25,"was":13.5,"upsize":{"label":"Large","add":1.5},"kcal":760},{"name":"Little one","items":["Mini burger","Apple slices","Juice box"],"price":6.25,"was":7.75,"kcal":520}]}}'