chrome.fileBrowserHandler

Descrizione

Utilizza l'API chrome.fileBrowserHandler per estendere il browser di file di ChromeOS. Ad esempio, puoi utilizzare questa API per consentire agli utenti di caricare file sul tuo sito web.

Concetti e utilizzo

Il browser di file di ChromeOS viene visualizzato quando l'utente preme Alt+Maiusc+M o connette un dispositivo di archiviazione esterno, ad esempio una scheda SD, una chiave USB, un'unità esterna o una fotocamera digitale. Oltre a mostrare i file su dispositivi esterni, il browser di file può anche visualizzare i file che l'utente ha precedentemente salvato nel sistema.

Quando l'utente seleziona uno o più file, il browser di file aggiunge pulsanti che rappresentano i gestori validi per quei file. Ad esempio, nello screenshot seguente, la selezione di un file con suffisso ".png" genera il pulsante "Salva nella galleria" su cui l'utente può fare clic.

Un browser di file ChromeOS.
Un browser di file ChromeOS.

Autorizzazioni

fileBrowserHandler

Devi dichiarare l'autorizzazione "fileBrowserHandler" nel manifest dell'estensione.

Disponibilità

Solo ChromeOS Solo in primo piano

Devi utilizzare il campo "file_browser_handlers" per registrare l'estensione come gestore di almeno un tipo di file. Devi inoltre fornire un'icona di 16 x 16 da visualizzare sul pulsante. Ad esempio:

{
  "name": "My extension",
  ...
  "file_browser_handlers": [
    {
      "id": "upload",
      "default_title": "Save to Gallery", // What the button will display
      "file_filters": [
        "filesystem:*.jpg",  // To match all files, use "filesystem:*.*"
        "filesystem:*.jpeg",
        "filesystem:*.png"
      ]
    }
  ],
  "permissions" : [
    "fileBrowserHandler"
  ],
  "icons": {
    "16": "icon16.png",
    "48": "icon48.png",
    "128": "icon128.png"
  },
  ...
}

Implementare un gestore del browser di file

Per utilizzare questa API, devi implementare una funzione che gestisca l'evento onExecute di chrome.fileBrowserHandler. La funzione verrà chiamata ogni volta che l'utente fa clic sul pulsante che rappresenta il gestore del tuo browser di file. Nella funzione, utilizza l'API File System per ottenere l'accesso ai contenuti del file. Ecco un esempio:

chrome.fileBrowserHandler.onExecute.addListener(async (id, details) => {
  if (id !== 'upload') {
    return;  // check if you have multiple file_browser_handlers
  }

  for (const entry of detail.entries) {
    // the FileSystemFileEntry doesn't have a Promise API, wrap in one
    const file = await new Promise((resolve, reject) => {
      entry.file(resolve, reject);
    });
    const buffer = await file.arrayBuffer();
    // do something with buffer
  }
});

Al gestore di eventi vengono passati due argomenti:

id
Il valore id nel file manifest. Se l'estensione implementa più gestori, puoi controllare il valore ID per vedere quale gestore è stato attivato.
details
Un oggetto che descrive l'evento. Puoi ottenere il file o i file selezionati dall'utente dal campo entries di questo oggetto, che è un array di oggetti FileSystemFileEntry.

Tipi

FileHandlerExecuteEventDetails

Info payload dei dettagli dell’evento per l’evento fileBrowserHandler.onExecute.

Proprietà

  • entries

    qualsiasi[]

    Array di istanze di voce che rappresenta i file target di questa azione (selezionati nel browser di file di ChromeOS).

  • tab_id

    numero facoltativo

    L'ID della scheda che ha generato questo evento. Gli ID scheda sono univoci all'interno di una sessione del browser.

Eventi

onExecute

chrome.fileBrowserHandler.onExecute.addListener(
  callback: function,
)

Attivato quando l'azione del file system viene eseguita dal browser di file di ChromeOS.

Parametri