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.
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];
});
}
``````