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

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

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

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

ChromeOS 120 или новее.

Разрешения

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

Манифест

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

Поддерживающие контексты

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

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

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

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

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

Обработчик файла — это HTML-файл, содержащийся в вашем расширении. Когда пользователь выбирает обработчик из меню, HTML-файл открывается на новой вкладке. Обработка файла, независимо от того, отображаете ли вы его или используете каким-либо другим способом, выполняется с помощью JavaScript с использованием соответствующих API-интерфейсов веб-платформы. Код обработки должен находиться в отдельном файле JavaScript и включаться через тег <script> , а также должен находиться в вашем расширении. Файл сценария использует интерфейс LaunchQueue API Launch Handler для получения объекта 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];
  });
}
``````