Skip to main content

AML-разметка

Assistant Markup Language (AML) — это язык разметки на базе JSON. С его помощью вы можете создать визуальный интерфейс прямо в коде сценария для Canvas App. Подробнее про использование AML в сценариях читайте в разделе Создание дизайна в коде.

Формат параметров#

Основные параметры#

НаименованиеТипОписание
typestringТип команды. Единственное возможное значение — aml_render_page
payloadobjectОбъект, содержащий content
payload.contentarray | objectМассив или объект в разметке AML, описывающий визуальный интерфейс смартапа. Содержимое content автоматически оборачивается в компонент Container

Формат объекта content#

НаименованиеТипОписание
componentstringНазвание компонента. Соответствует названиям компонентов в Plasma
propsobjectСвойства компонента. Поддерживаются все свойства компонентов Plasma, а также параметры разметки AML: id и amlHandleEvents, которые используются для обработки действий пользователя.

Чтобы создать поле ввода, используйте параметр defaultValue вместо value
props.idstringИдентификатор компонента
props.amlHandleEventsstring[] | array<[string, any]>Список названий обработчиков событий, на которые должен реагировать интерфейс. Названия обработчиков соответствуют названиям в Plasma.

Для передачи в сценарий дополнительных данных о действиях пользователя укажите массив кортежей вида ["имя обработчика", <дополнительные данные>]
childrenarray | object | stringВложенные компоненты. Используются в сложных компонентах Plasma, например в Grid

Пример параметров#

Пример параметров для создания кнопки и поля для ввода, которое реагирует на ввод текста:

{    "type": "aml_render_page",    "payload": {        "content": [            {                "component": "Headline1",                "children": "Пример"            },            {                "component": "Button",                "props": {                    "text": "Моя кнопка"                }            },            {                "component": "TextField",                "props": {                    "id": "myInputId",                    "amlHandleEvents": ["onChange"],                    "placeholder": "Моё поле ввода",                    "defaultValue": ""                }            }        ]    }}