umbot
    Preparing search index...

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

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

    • Создания карточек с изображениями, заголовками и описаниями
    • Добавления кнопок к карточкам
    • Адаптации карточек под различные платформы
    • Поддержки галерей изображений

    Ограничения платформ обрабатываются самими адаптерами

    Index

    Constructors

    • Карточка с изображениями, заголовком и кнопками.

      Предоставляет унифицированный интерфейс для описания контента. Фактическая адаптация под формат целевой платформы происходит в адаптере платформы при вызове метода getCards().

      Parameters

      • appContext: AppContext

        Контекст приложения. ⚠️ Обычно НЕ создаётся вручную — автоматически передаётся через контроллер:

        // Правильно — через контроллер:
        this.card.addImage('token', 'Title');

        // НЕ рекомендуется — ручное создание:
        new Card(this.appContext); // appContext берётся из контроллера

      Returns Card

    Properties

    button: Buttons

    Кнопки элемента карточки. Используются для взаимодействия с пользователем.

    Buttons

    card.addButton('Купить');
    card.addButton({
    title: 'Подробнее',
    url: 'https://example.com'
    });
    desc: string | null

    Описание элемента карточки. Отображается под заголовком.

    card.setDescription('Подробное описание товара');
    

    Массив с изображениями или элементами карточки. Каждый элемент может содержать изображение, заголовок, описание и кнопки.

    Image

    card.addImage('product.jpg', 'Название товара', 'Описание товара');
    
    isOne: boolean

    Определяет необходимость отображения только одного элемента карточки. true - отображается только первый элемент false - отображаются все элементы

    card.isOne = true; // Отобразить только первый элемент
    
    isUsedGallery: boolean = false

    Использование галереи изображений. true - изображения отображаются в виде галереи false - изображения отображаются как отдельные карточки

    card.isUsedGallery = true; // Включить режим галереи
    
    template: unknown = null

    Произвольный шаблон для отображения карточки. Используется для кастомизации отображения на определенных платформах. ⚠️ ОПАСНО: Использование этого свойства полностью обходит адаптеры платформ. Данные отправляются платформе «как есть» без преобразования в её формат.

    Последствия:

    • Карточка может не отобразиться на других платформах
    • Нарушается кроссплатформенность фреймворка
    • Ответственность за корректность формата лежит на разработчике

    Используйте ТОЛЬКО если:

    • Вы точно знаете формат ответа целевой платформы
    • Стандартные методы (addImage(), addButton()) не решают задачу
    card.template = {
    type: 'custom_card',
    content: { ... }
    };
    title: string | null

    Заголовок элемента карточки. Отображается в верхней части карточки.

    card.setTitle('Название товара');
    

    Methods

    • Добавляет кнопку в карточку.

      Parameters

      • button: TButton

        Кнопка для добавления (строка или объект)

      Returns this

      // Добавление простой кнопки
      card.addButton('Купить');

      // Добавление кнопки с дополнительными параметрами
      card.addButton({
      title: 'Подробнее',
      url: 'https://example.com',
      payload: { action: 'details' }
      });
    • Добавляет изображение в карточку.

      Parameters

      • image: string | null

        Идентификатор или URL изображения

      • title: string = ' '

        Заголовок изображения

      • Optionaldesc: string = ' '

        Описание изображения

      • Optionalbutton: TButton | null = null

        Кнопки для элемента

      Returns this

      Ограничения на изображения:

      • Алиса: до 1MB, 1024x1024px, JPG/PNG
      • VK: до 5MB, рекомендуется 13:8, JPG/PNG/GIF
      • Telegram: до 10MB, 1280x1280px, JPG/PNG/WEBP
      • Viber: до 1MB, рекомендуется 400x400px, JPG/PNG
      // Добавление одного изображения
      card.addImage('image.jpg', 'Название', 'Описание');

      // Добавление изображения с кнопкой
      card.addImage('product.jpg', 'Товар', 'Описание', {
      title: 'Купить',
      url: 'https://shop.com/product',
      payload: { action: 'buy', id: 123 }
      });

      // Добавление нескольких изображений в галерею
      card.isUsedGallery = true;
      card.addImage('image1.jpg', 'Фото 1')
      .addImage('image2.jpg', 'Фото 2')
      .addImage('image3.jpg', 'Фото 3');
    • Добавляет одно изображение в виде карточки. Внутри себя выставляет isOne в true. Если ранее были указаны другие изображения, то они очистятся. Стоит использовать в том случае, если у вас всегда должно отобразиться только 1 изображение.

      Parameters

      • image: string | null

        Идентификатор или URL изображения

      • title: string = ' '

        Заголовок изображения

      • Optionaldesc: string = ' '

        Описание изображения

      • Optionalbutton: TButton | null = null

        Кнопки для элемента

      Returns this

    • Очищает все элементы карточки.

      Returns void

      card.clear(); // Удалить все изображения
      
    • Устанавливает контекст приложения.

      Parameters

      • appContext: AppContext

      Returns this

    • Устанавливает описание для карточки.

      Parameters

      • description: string

        Описание карточки

      Returns this

      card.setDescription('Подробное описание товара');
      
    • Устанавливает заголовок для карточки.

      Parameters

      • title: string

        Заголовок карточки

      Returns this

      card.setTitle('Название товара');