umbot
    Preparing search index...

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

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

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

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

    Index

    Constructors

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

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

      Parameters

      • appContext: AppContext

        Контекст приложения. Обычно не создаётся вручную — передаётся через контроллер (this.card.addImage('token', 'Title')).

      Returns Card

    Properties

    button: Buttons

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

    Buttons

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

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

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

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

    IImageType

    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: 'http://localhost',
      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: 'http://localhost/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

    • Очищает все элементы карточки, включая заголовок, описание, шаблон и кнопки карточки, а также сбрасывает флаги isOne и isUsedGallery.

      Сбрасывается всё: при переиспользовании контроллера (BotTest, _setBotController) иначе заголовок, описание и template прошлого запроса попали бы в новый ответ.

      Returns void

      card.clear(); // Удалить все изображения, заголовок, описание, шаблон и флаги
      
    • Получает карточку в формате для текущей платформы.

      Метод возвращает результат cardProcessing как есть: если процессор адаптера асинхронный (Telegram, VK, Алиса, Маруся, MAX) — вернётся Promise и вызов нужно делать с await; синхронные процессоры (Viber, SmartApp) дополнительного await не требуют.

      Type Parameters

      • TResult = unknown

      Parameters

      Returns TResult

      Карточка в формате платформы

      // Асинхронный процессор (Telegram, VK, Алиса, Маруся, MAX) — нужен await:
      const cardData = await card.getCards(myAsyncCardProcessing, controller);

      // Синхронный процессор (Viber, SmartApp) — без await:
      const cardData = card.getCards(mySyncCardProcessing, controller);
    • Устанавливает контекст приложения (обновляет и вложенную коллекцию кнопок).

      Parameters

      • appContext: AppContext

        Контекст приложения

      Returns this

      Текущий экземпляр для цепочки вызовов

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

      Parameters

      • description: string

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

      Returns this

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

      Parameters

      • title: string

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

      Returns this

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