AML-разметка
Assistant Markup Language (AML) — это язык разметки на базе JSON. С его помощью вы можете создать визуальный интерфейс прямо в коде сценария для Canvas App. Подробнее про использование AML в сценариях читайте в разделе Создание дизайна в коде.
Формат параметров
Основные параметры
Наименование | Тип | Описание |
---|---|---|
type | string | Тип команды. Единственное возможно е значение — aml_render_page |
payload | object | Объект, содержащий content |
payload.content | array | object | Массив или объект в разметке AML, описывающий визуальный интерфейс смартапа. Содержимое content автоматически оборачивается в компонент Container |
Формат объекта content
Наименование | Тип | Описание |
---|---|---|
component | string | Название компонента. Соответствует названиям компонентов в Plasma |
props | object | Свойства компонента. Поддерживаются все свойства компонентов Plasma, а также параметры разметки AML: id и amlHandleEvents , которые используются для обработки действий пользователя.Чтобы создать поле ввода, используйте параметр defaultValue вместо value |
props.id | string | Идентификатор компонента |
props.amlHandleEvents | string[] | array<[string, any]> | Список названий обработчиков событий, на которые должен реагировать интерфейс. Названия обработчиков соответствуют названиям в Plasma. Для передачи в сценарий дополнительных данных о действиях пользователя укажите массив кортежей вида ["имя обработчика", <дополнительные данные>] |
children | array | 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": ""
}
}
]
}
}