La gestione dei file ti consente di configurare ChromeOS in modo che l'estensione possa aprire i file utilizzando il menu Apri del menu File o il menu Apri con del menu contestuale. Una volta aperto il file, elabora i dati utilizzando l'API Launch Handler della piattaforma web. Successivamente, utilizzerai le API della piattaforma web standard per visualizzare o gestire il file.
Disponibilità nelle estensioni
ChromeOS 120 o versioni successive.
Autorizzazioni
Non sono necessarie autorizzazioni per la gestione dei file.
Manifest
Devi aggiungere l'array "file_handlers"
al file manifest.json.
Contesti di supporto
Questa API può essere utilizzata in service worker, popup, riquadri laterali o script di contenuti delle estensioni.
Configurare un gestore di file
Ogni membro di "file_handlers"
, cioè ogni gestore di file, specifica uno o più tipi di file che devono essere gestiti da una pagina di estensione specifica.
I gestori specificati verranno aggiunti alla finestra File di ChromeOS e nello specifico ai menu Apri e Apri con. Verranno 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 quel gestore solo quando viene selezionato un file con quell'estensione.
Elaborare un file
Il gestore di file è un file HTML contenuto all'interno dell'estensione. Quando l'utente seleziona il tuo gestore da un menu, il file HTML si apre in una nuova scheda. L'elaborazione del file, indipendentemente dal fatto che venga visualizzato o utilizzato in altri modi, viene eseguita con JavaScript utilizzando le API della piattaforma web appropriate. Il codice di elaborazione deve essere in un file JavaScript distinto, incluso tramite un tag <script>
e anche 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 per la gestione dei file.
if ('launchQueue' in window) {
launchQueue.setConsumer(async launchParams => {
if (!launchParams.files || !launchParams.files.length) { return; }
const fileHandle = launchParams.files[0];
});
}
``````