umbot - v2.0.8
    Preparing search index...

    Class Button

    Button Класс для создания и управления интерактивными кнопками в различных платформах.

    Класс предоставляет функциональность для создания кнопок двух типов:

    1. Сайджест-кнопки (ссылки под текстом) - используются для навигации и внешних ссылок
    2. Интерактивные кнопки - используются для взаимодействия с пользователем

    Ограничения:

    • Длина текста кнопки: до 64 символов для Алисы, до 40 для VK, без ограничений для Telegram
    • Максимум кнопок: 4 в строке для Алисы, 5 для VK, без ограничений для Telegram
    • URL должен быть валидным и начинаться с http:// или https://
    import { Button } from './components/button/Button';

    // Создание кнопки-ссылки
    const linkButton = new Button();
    linkButton.initLink(
    'Перейти на сайт',
    'https://example.com',
    null, // payload
    {} // options
    );

    // Создание интерактивной кнопки для VK
    const vkButton = new Button();
    vkButton.initBtn(
    'Нажми меня',
    '',
    { action: 'click' },
    {
    color: 'primary',
    type: 'text'
    }
    );

    // Создание кнопки для оплаты в VK
    const payButton = new Button();
    payButton.initBtn(
    'Оплатить',
    '',
    { action: 'pay', amount: 100 },
    {
    type: 'vkpay',
    hash: 'action=pay-to-group&amount=100&group_id=123'
    }
    );

    // Создание кнопки для отправки локации в VK
    const locationButton = new Button();
    locationButton.initBtn(
    'Отправить локацию',
    '',
    { action: 'location' },
    { type: 'location' }
    );

    // Создание кнопки для открытия приложения VK
    const appButton = new Button();
    appButton.initBtn(
    'Открыть приложение',
    '',
    { action: 'open_app' },
    {
    type: 'open_app',
    app_id: 123456,
    owner_id: 789012,
    hash: 'custom_data'
    }
    );
    Index

    Constructors

    • Создает новый экземпляр кнопки. Инициализирует все поля значениями по умолчанию.

      Parameters

      • title: null | string = null

        Текст кнопки

      • url: null | string = null

        URL для перехода

      • payload: any = []

        Дополнительные данные

      • hide: boolean = Button.B_LINK

        Тип отображения кнопки

      • options: IButtonOptions = {}

        Дополнительные параметры

      Returns Button

    Properties

    B_LINK: boolean = false

    Константа для создания кнопки в виде ссылки (сайджест).

    B_BTN: boolean = true

    Константа для создания кнопки в виде интерактивной кнопки.

    VK_COLOR_PRIMARY: "primary" = 'primary'

    Цвет кнопки primary в ВК.

    VK_COLOR_SECONDARY: "secondary" = 'secondary'

    Цвет кнопки secondary в ВК.

    VK_COLOR_NEGATIVE: "negative" = 'negative'

    Цвет кнопки negative в ВК.

    VK_COLOR_POSITIVE: "positive" = 'positive'

    Цвет кнопки positive в ВК.

    VK_TYPE_TEXT: "text" = 'text'

    Тип кнопки текст

    VK_TYPE_LINK: "open_link" = 'open_link'

    Тип кнопки ссылка

    VK_TYPE_LOCATION: "location" = 'location'

    Тип кнопки поделиться локацией

    VK_TYPE_PAY: "vkpay" = 'vkpay'

    Тип кнопки оплатить

    VK_TYPE_APPS: "open_app" = 'open_app'

    Тип кнопки открыть приложение

    type: null | string

    Тип кнопки. Определяет поведение и внешний вид кнопки на разных платформах.

    title: null | string

    Текст, отображаемый на кнопке.

    url: null | string

    URL для перехода при нажатии на кнопку. Для кнопок-ссылок это обязательный параметр.

    payload: any

    Произвольные данные, отправляемые при нажатии на кнопку. Используются для передачи дополнительной информации в обработчик.

    hide: boolean

    Флаг, определяющий отображение кнопки как сайджеста. true - интерактивная кнопка false - кнопка-ссылка (сайджест)

    Дополнительные параметры кнопки. Могут включать специфичные для платформы настройки.

    Methods

    • Инициализирует кнопку в виде сайджеста (ссылки под текстом).

      Parameters

      • title: null | string

        Текст кнопки (до 64 символов для Алисы)

      • Optionalurl: null | string = ''

        URL для перехода (должен начинаться с http:// или https://)

      • Optionalpayload: any = null

        Дополнительные данные для обработки нажатия

      • Optionaloptions: IButtonOptions = {}

        Дополнительные параметры:

        • utm_source: источник перехода
        • utm_medium: тип рекламного канала
        • utm_campaign: название рекламной кампании
        • utm_content: идентификатор объявления
        • utm_term: ключевое слово

      Returns boolean

      true если инициализация успешна

      // Простая ссылка
      const button1 = new Button();
      button1.initLink('Перейти на сайт', 'https://example.com');

      // Ссылка с UTM-метками
      const button2 = new Button();
      button2.initLink('Купить', 'https://shop.com/product', null, {
      utm_source: 'bot',
      utm_medium: 'button',
      utm_campaign: 'spring_sale'
      });

      // Ссылка с дополнительными данными
      const button3 = new Button();
      button3.initLink('Подробнее', 'https://example.com/article', {
      action: 'read',
      article_id: 123
      });
    • Инициализирует кнопку в виде интерактивной кнопки.

      Parameters

      • title: null | string

        Текст кнопки (до 40 символов для VK)

      • Optionalurl: null | string = ''

        URL для перехода

      • Optionalpayload: any = null

        Дополнительные данные для обработки нажатия. Может быть строкой или объектом.

      • Optionaloptions: IButtonOptions = {}

        Дополнительные параметры:

        Общие параметры:

        • hide: boolean - скрыть кнопку после нажатия

        Параметры для VK:

        • type: тип кнопки
          • VK_TYPE_TEXT: обычная кнопка
          • VK_TYPE_LINK: кнопка-ссылка
          • VK_TYPE_LOCATION: отправка локации
          • VK_TYPE_PAY: оплата VK Pay
          • VK_TYPE_APPS: открытие приложения
        • color: цвет кнопки
          • VK_COLOR_PRIMARY: синий
          • VK_COLOR_SECONDARY: белый
          • VK_COLOR_NEGATIVE: красный
          • VK_COLOR_POSITIVE: зеленый
        • app_id: ID приложения VK (для type=VK_TYPE_APPS)
        • owner_id: ID владельца приложения (для type=VK_TYPE_APPS)
        • hash: дополнительные параметры (для type=VK_TYPE_PAY и VK_TYPE_APPS)

      Returns boolean

      true если инициализация успешна

      // Простая кнопка
      const button1 = new Button();
      button1.initBtn('Нажми меня');

      // Кнопка со строковым payload
      const button2 = new Button();
      button2.initBtn('Действие', '', 'action_payload');

      // Кнопка с объектным payload
      const button3 = new Button();
      button3.initBtn('Действие', '', {
      action: 'custom_action',
      data: { id: 123 }
      });

      // Кнопка с цветом для VK
      const button4 = new Button();
      button4.initBtn('Подтвердить', '', null, {
      type: Button.VK_TYPE_TEXT,
      color: Button.VK_COLOR_POSITIVE
      });

      // Кнопка оплаты VK Pay
      const button5 = new Button();
      button5.initBtn('Оплатить 100₽', '', { amount: 100 }, {
      type: Button.VK_TYPE_PAY,
      hash: 'action=pay-to-group&amount=100'
      });

      // Кнопка для открытия приложения
      const button6 = new Button();
      button6.initBtn('Открыть игру', '', null, {
      type: Button.VK_TYPE_APPS,
      app_id: 123456,
      owner_id: 789012,
      hash: 'start_level=5'
      });