Gerenciamento de arquivos no Chrome OS

O processamento de arquivos permite configurar o ChromeOS para que sua extensão abra arquivos usando o menu "Abrir" do menu "Arquivo" ou o menu "Abrir com" do menu de contexto. Depois de aberto, você processa os dados do arquivo usando a API Launch Handler da plataforma da Web. Em seguida, use APIs de plataforma da Web padrão para exibir ou processar o arquivo.

Um gerenciador de arquivos foi adicionado ao menu "Abrir" do ChromeOS.
Um gerenciador de arquivos foi adicionado ao menu "Abrir" do ChromeOS.

Disponibilidade nas extensões

ChromeOS 120 ou mais recente

Permissões

Nenhuma permissão é necessária para gerenciar arquivos.

Manifesto

Adicione a matriz "file_handlers" ao arquivo manifest.json.

Contextos de suporte

Essa API pode ser usada em service workers de extensão, pop-ups, painéis laterais ou scripts de conteúdo.

Configurar um gerenciador de arquivos

Cada membro do "file_handlers", ou seja, cada gerenciador de arquivos, especifica um ou mais tipos de arquivo a serem processados por uma página de extensão específica.

Os gerenciadores especificados serão adicionados à janela "Arquivos" do ChromeOS, aos menus "Abrir" e "Abrir com" especificamente. Elas só vão aparecer nesses menus quando o usuário selecionar um arquivo com a extensão específica. Por exemplo, se um gerenciador de arquivos especificar .txt, os menus do ChromeOS só vão mostrar esse gerenciador quando um arquivo com essa extensão for selecionado.

Processar um arquivo

O manipulador de arquivos é um arquivo HTML contido em sua extensão. Quando o usuário seleciona o gerenciador em um menu, o arquivo HTML é aberto em uma nova guia. O processamento do arquivo, seja ele mostrado ou usado de outra forma, é feito com JavaScript, usando as APIs de plataforma da Web adequadas. O código de processamento precisa estar em um arquivo JavaScript separado e incluído por uma tag <script>, além de estar na sua extensão. O arquivo de script usa a interface LaunchQueue da API Launch Handler para receber um objeto FileSystemFileHandle.

Exemplo

O exemplo a seguir demonstra como receber um objeto FileSystemFileHandle usando a interface LaunchQueue. Para conferir o processamento de arquivos em ação, instale a demonstração do processamento de arquivos.

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