Обработка файлов в Chrome OS

Функция обработки файлов позволяет настроить ChromeOS таким образом, чтобы ваше расширение могло открывать файлы либо с помощью меню «Открыть» в меню «Файл», либо с помощью меню «Открыть с помощью» в контекстном меню. После открытия вы обрабатываете данные файла с помощью API Launch Handler веб-платформы. Затем вы используете стандартные API веб-платформы для отображения или обработки файла .

В меню «Открыть» ChromeOS добавлен обработчик файлов.
В меню «Открыть» ChromeOS добавлен обработчик файлов.

Доступность в расширениях

ChromeOS 120 или более поздняя версия.

Разрешения

Для работы с файлами не требуются никакие разрешения.

Манифест

Необходимо добавить массив "file_handlers" в файл manifest.json.

Вспомогательные контексты

Этот API может использоваться в сервисных обработчиках расширений, всплывающих окнах, боковых панелях или скриптах контента.

Настройте обработчик файлов.

Каждый член класса "file_handlers" — то есть каждый обработчик файлов — указывает тип или типы файлов, которые должны обрабатываться конкретной страницей расширения.

Указанные вами обработчики будут добавлены в окно «Файлы» ChromeOS, а именно в меню «Открыть» и «Открыть с помощью». Они будут отображаться в этих меню только тогда, когда пользователь выберет файл с определенным расширением. Например, если обработчик файла указывает расширение .txt меню ChromeOS будут отображать этот обработчик только при выборе файла с этим расширением.

Обработка файла

Обработчик файла — это HTML-файл, содержащийся в вашем расширении. Когда пользователь выбирает ваш обработчик из меню, HTML-файл открывается в новой вкладке. Обработка файла, будь то его отображение или использование каким-либо другим способом, осуществляется с помощью JavaScript, используя соответствующие API веб-платформы. Код обработки должен находиться в отдельном JavaScript-файле и включаться через тег <script> , а также должен быть включен в ваше расширение. Скриптовый файл использует интерфейс LaunchQueue API обработчика запуска для получения объекта FileSystemFileHandle .

Пример

В следующем примере показано, как получить объект FileSystemFileHandle с помощью интерфейса LaunchQueue . Чтобы увидеть обработку файлов в действии, установите демонстрационный модуль File Handling Demo .

if ('launchQueue' in window) {
  launchQueue.setConsumer(async launchParams => {
    if (!launchParams.files || !launchParams.files.length) { return; }
    const fileHandle = launchParams.files[0];
  });
}
``````