La gestione dei file ti consente di configurare ChromeOS in modo che la tua estensione possa aprire i file utilizzando il menu Apri del menu File o il menu Apri con del menu contestuale. Una volta aperto, elabora i dati del file utilizzando l'API Launch Handler della piattaforma web. Quindi, utilizzerai le API della piattaforma web standard per visualizzare o gestire il file.
Disponibilità nelle estensioni
ChromeOS 120 o versioni successive.
Autorizzazioni
Non sono richieste autorizzazioni per la gestione dei file.
Manifest
Devi aggiungere l'array "file_handlers" al file manifest.json.
Contesti supportati
Questa API può essere utilizzata in service worker di estensione, popup, riquadri laterali o script di contenuti.
Configurare un gestore di file
Ogni membro di "file_handlers", ovvero ogni gestore di file, specifica uno o più tipi di file da gestire da una pagina di estensione specifica.
I gestori che specifichi verranno aggiunti alla finestra File di ChromeOS, in particolare ai menu Apri e Apri con. Vengono visualizzati in questi menu solo quando l'utente seleziona un file con l'estensione specifica. Ad esempio, se un gestore di file specifica .txt, i menu di ChromeOS mostrano il gestore solo quando viene selezionato un file con questa estensione.
Elaborare un file
Il gestore di file è un file HTML contenuto nell'estensione. Quando l'utente seleziona il tuo gestore da un menu, il file HTML si apre in una nuova scheda. L'elaborazione del file, che tu lo visualizzi o lo utilizzi in altro modo, viene eseguita con JavaScript utilizzando le API della piattaforma web appropriate. Il codice di elaborazione deve trovarsi in un file JavaScript separato e deve essere incluso tramite un tag <script> e deve anche essere presente nell'estensione. Il file di script utilizza l'interfaccia LaunchQueue dell'API Launch Handler per ottenere un oggetto FileSystemFileHandle.
Esempio
L'esempio seguente mostra come ottenere un oggetto FileSystemFileHandle utilizzando l'interfaccia LaunchQueue. Per vedere la gestione dei file in azione, installa la demo della gestione dei file.
if ('launchQueue' in window) {
launchQueue.setConsumer(async launchParams => {
if (!launchParams.files || !launchParams.files.length) { return; }
const fileHandle = launchParams.files[0];
});
}
``````