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

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

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

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

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

Создание интерфейса надстройки Drive

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Полная структура объектов событий описана в разделе «Объекты событий» . Когда 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"
          },
          ...
        ]
      },
      ...
    }