browser.fileBrowserHandler

Описание

Используйте API chrome.fileBrowserHandler для расширения возможностей файлового браузера Chrome OS. Например, вы можете использовать этот API, чтобы позволить пользователям загружать файлы на ваш веб-сайт.

Понятия и применение

Файловый менеджер ChromeOS запускается при нажатии комбинации клавиш Alt+Shift+M или при подключении внешнего запоминающего устройства, такого как SD-карта, USB-накопитель, внешний диск или цифровая камера. Помимо отображения файлов на внешних устройствах, файловый менеджер может также отображать файлы, которые пользователь ранее сохранил в системе.

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

Файловый браузер для ChromeOS.
Файловый браузер для ChromeOS.

Разрешения

fileBrowserHandler

Необходимо указать разрешение "fileBrowserHandler" в манифесте расширения .

Доступность

Только ChromeOS Только передний план

Для регистрации расширения в качестве обработчика как минимум одного типа файлов необходимо использовать поле "file_browser_handlers" . Также следует указать значок размером 16 на 16 пикселей, который будет отображаться на кнопке. Например:

{
  "name": "My extension",
  ...
  "file_browser_handlers": [
    {
      "id": "upload",
      "default_title": "Save to Gallery", // What the button will display
      "file_filters": [
        "filesystem:*.jpg",  // To match all files, use "filesystem:*.*"
        "filesystem:*.jpeg",
        "filesystem:*.png"
      ]
    }
  ],
  "permissions" : [
    "fileBrowserHandler"
  ],
  "icons": {
    "16": "icon16.png",
    "48": "icon48.png",
    "128": "icon128.png"
  },
  ...
}

Реализуйте обработчик файлового браузера.

Для использования этого API необходимо реализовать функцию, обрабатывающую событие onExecute объекта browser.fileBrowserHandler . Ваша функция будет вызываться всякий раз, когда пользователь нажимает кнопку, представляющую ваш обработчик файлов. В вашей функции используйте API файловой системы для доступа к содержимому файла. Вот пример:

browser.fileBrowserHandler.onExecute.addListener(async (id, details) => {
  if (id !== 'upload') {
    return;  // check if you have multiple file_browser_handlers
  }

  for (const entry of detail.entries) {
    // the FileSystemFileEntry doesn't have a Promise API, wrap in one
    const file = await new Promise((resolve, reject) => {
      entry.file(resolve, reject);
    });
    const buffer = await file.arrayBuffer();
    // do something with buffer
  }
});

Вашему обработчику событий передаются два аргумента:

id
Значение id из файла манифеста. Если ваше расширение реализует несколько обработчиков, вы можете проверить значение ID, чтобы узнать, какой обработчик был запущен.
details
Объект, описывающий событие. Вы можете получить выбранный пользователем файл или файлы из поля entries этого объекта, которое представляет собой массив объектов FileSystemFileEntry .

Типы

FileHandlerExecuteEventDetails

Подробная информация о событии fileBrowserHandler.onExecute.

Характеристики

  • записи

    любой[]

    Массив экземпляров Entry, представляющих файлы, являющиеся целями данного действия (выбранные в файловом браузере ChromeOS).

  • tab_id

    число необязательно

    Идентификатор вкладки, вызвавшей это событие. Идентификаторы вкладок уникальны в рамках одной сессии браузера.

События

onExecute

chrome.fileBrowserHandler.onExecute.addListener(
  callback: function,
)

Событие срабатывает при выполнении действий с файловой системой из файлового браузера ChromeOS.

Параметры