Создание интерфейсов Google Диска

Дополнения Google Workspace могут предоставлять настраиваемые интерфейсы, когда пользователь использует Google Drive. Это позволяет предоставлять пользователю дополнительную релевантную информацию, автоматизировать задачи и подключать сторонние системы к Google Drive.

Доступ к дополнительному пользовательскому интерфейсу

Вы можете открыть надстройку Google Workspace в Google Drive, если ее значок отображается в столбце значков в правой части пользовательского интерфейса Drive. Надстройка Google Workspace может определять интерфейс домашней страницы, интерфейс выбора элемента или оба:

  • Если пользователь нажимает на значок надстройки, находясь в Google Диске, надстройка выполняет соответствующую функцию drive.homepageTrigger (если она есть). Эта функция создает и возвращает карточку домашней страницы в Google Диск для отображения. Если функция drive.homepageTrigger не определена, вместо нее отображается общая карточка домашней страницы.
  • Если пользователь выбирает один или несколько элементов в Google Drive, а затем нажимает на значок надстройки или выбирает элементы, когда надстройка открыта, надстройка выполняет соответствующую контекстную функцию drive.onItemsSelectedTrigger (если она присутствует). Эта функция создает контекстный интерфейс надстройки Google Drive «выбранные элементы» и возвращает его в Google Drive для отображения.

Создание дополнительного интерфейса Drive

Вы можете создавать интерфейсы, расширяющие возможности Google Диска, выполнив следующие общие шаги:

  1. Решите, хотите ли вы, чтобы у вашего дополнения была домашняя страница, связанная с Drive. Также решите, хотите ли вы предоставить контекстный интерфейс для случаев, когда пользователь выбирает элементы Drive.
  2. Добавьте соответствующие поля addOns.common и addOns.drive в манифест проекта скрипта надстройки, включая все необходимые области действия Drive .
  3. Если вы предоставляете домашнюю страницу, специфичную для Drive , реализуйте функцию drive.homepageTrigger для создания этого интерфейса. Вы также можете использовать интерфейс common.homepageTrigger для нескольких хостов Google Workspace.
  4. Если вы предоставляете контекстный интерфейс выбора элементов Drive, вы должны реализовать функцию контекстного триггера drive.onItemsSelectedTrigger для построения этого интерфейса. Подробности см. в разделе Контекстный интерфейс Drive для выбранных элементов ).
  5. Реализуйте соответствующие функции обратного вызова, необходимые для реагирования на взаимодействия пользователя с пользовательским интерфейсом, такие как нажатия кнопок.

Домашние страницы привода

Google Drive поддерживает отображение домашних страниц дополнений Google Workspace. Чтобы отобразить общую домашнюю страницу вашего дополнения в Google Drive, просто убедитесь, что в манифесте дополнения есть поле addOns.drive .

Либо добавьте drive.homepageTrigger в манифест надстройки, чтобы предоставить домашнюю страницу, специфичную для Drive.

В любом случае вы должны указать имя функции триггера домашней страницы в проекте скрипта вашего дополнения. Эта функция автоматически вызывается для построения домашней страницы Drive, когда это необходимо. Вы должны реализовать эту функцию для построения и возврата одной Card или массива объектов Card , составляющих домашнюю страницу. Функция триггера домашней страницы передает объект события в качестве параметра, который содержит некоторую общую информацию, такую ​​как платформа клиента. Вы можете использовать данные объекта события для настройки построения домашней страницы.

Контекстный интерфейс для выбранных элементов

Google Drive использует контекстный триггер для определения того, какой интерфейс (если таковой имеется) отображать, когда пользователь выбирает один или несколько элементов Google Drive. Когда триггер срабатывает, он выполняет функцию контекстного триггера, указанную в поле drive.onItemsSelectedTrigger.runFunction в манифесте надстройки.

Чтобы создать контекстный интерфейс выбора элементов для Диска, необходимо выполнить следующие действия:

  1. Убедитесь, что манифест дополнения включает область https://www.googleapis.com/auth/drive.addons.metadata.readonly

  2. Убедитесь, что манифест включает раздел drive.onItemsSelectedTrigger .

  3. Реализуйте функцию, указанную в поле drive.onItemsSelectedTrigger . Эта функция принимает объект события в качестве аргумента и должна возвращать либо один объект Card , либо массив объектов Card .

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

Объекты событий

Объект события создается и передается в функцию триггера drive.homepageTrigger или drive.onItemsSelectedTrigger при вызове этих функций. Функция триггера может использовать информацию в этом объекте события, чтобы определить, как создавать дополнительные карты или иным образом управлять поведением дополнения.

Полная структура объектов событий описана в разделе Объекты событий . Когда Drive является действующим хост-приложением надстройки, контекстные объекты событий включают поле объекта события Drive, которое несет специфичную для Drive клиентскую информацию.

Контекстные объекты событий Drive для триггеров выбора элементов включают информацию об элементах, выбранных пользователем при срабатывании триггера. Когда пользователь выбирает более одного элемента на Drive, один из элементов считается представляющим основной интерес; этот элемент называется активным элементом курсора .

В следующем примере показан объект события Drive , который передается в функцию drive.onItemsSelectedTrigger :

    {
      "commonEventObject": { ... },
      "drive": {
        "activeCursorItem":{
          "addonHasFileScopePermission": true,
          "id":"0B_sX1fXRRU6Ac3RhcnRlcl9maWxl",
          "iconUrl": "https://drive-thirdparty.googleusercontent.com...",
          "mimeType":"application/pdf",
          "title":"How to get started with Drive"
        },
        "selectedItems": [
          {
            "addonHasFileScopePermission": true,
            "id":"0B_sX1fXRRU6Ac3RhcnRlcl9maWxl",
            "iconUrl":"https://drive-thirdparty.googleusercontent.com...",
            "mimeType":"application/pdf",
            "title":"How to get started with Drive"
          },
          ...
        ]
      },
      ...
    }