browser.fileBrowserHandler

Beschrijving

Gebruik de chrome.fileBrowserHandler API om de bestandsbrowser van Chrome OS uit te breiden. Je kunt deze API bijvoorbeeld gebruiken om gebruikers bestanden naar je website te laten uploaden.

Concepten en gebruik

De bestandsbrowser van ChromeOS verschijnt wanneer de gebruiker Alt+Shift+M indrukt of een extern opslagapparaat aansluit, zoals een SD-kaart, USB-stick, externe harde schijf of digitale camera. Naast de bestanden op externe apparaten kan de bestandsbrowser ook bestanden weergeven die de gebruiker eerder op het systeem heeft opgeslagen.

Wanneer de gebruiker een of meer bestanden selecteert, voegt de bestandsbrowser knoppen toe die de geldige handlers voor die bestanden vertegenwoordigen. In de volgende schermafbeelding resulteert het selecteren van een bestand met de extensie ".png" bijvoorbeeld in een knop "Opslaan in galerij" waarop de gebruiker kan klikken.

Een bestandsbrowser voor ChromeOS.
Een bestandsbrowser voor ChromeOS.

Toestemmingen

fileBrowserHandler

Je moet de machtiging "fileBrowserHandler" in het extensiemanifest declareren.

Beschikbaarheid

Alleen voor ChromeOS. Alleen op de voorgrond.

U moet het veld "file_browser_handlers" gebruiken om de extensie te registreren als handler voor ten minste één bestandstype. U moet ook een pictogram van 16 bij 16 pixels opgeven dat op de knop wordt weergegeven. Bijvoorbeeld:

{
  "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"
  },
  ...
}

Implementeer een bestandsbrowserhandler.

Om deze API te gebruiken, moet u een functie implementeren die de onExecute gebeurtenis van browser.fileBrowserHandler afhandelt. Uw functie wordt aangeroepen wanneer de gebruiker op de knop klikt die uw bestandsbrowserhandler vertegenwoordigt. Gebruik in uw functie de File System API om toegang te krijgen tot de inhoud van het bestand. Hier is een voorbeeld:

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

Aan uw gebeurtenisafhandelaar worden twee argumenten doorgegeven:

id
De id waarde uit het manifestbestand. Als uw extensie meerdere handlers implementeert, kunt u de ID-waarde controleren om te zien welke handler is geactiveerd.
details
Een object dat de gebeurtenis beschrijft. U kunt het bestand of de bestanden die de gebruiker heeft geselecteerd ophalen uit het veld entries ' van dit object, dat een array van FileSystemFileEntry objecten is.

Soorten

FileHandlerExecuteEventDetails

Details van de gebeurtenispayload voor de fileBrowserHandler.onExecute-gebeurtenis.

Eigenschappen

  • inzendingen

    elk[]

    Een array van Entry-instanties die de bestanden vertegenwoordigen waarop deze actie betrekking heeft (geselecteerd in de bestandsbrowser van ChromeOS).

  • tab_id

    nummer optioneel

    De ID van het tabblad dat deze gebeurtenis heeft veroorzaakt. Tabblad-ID's zijn uniek binnen een browsersessie.

Evenementen

onExecute

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

Wordt geactiveerd wanneer een bestandssysteemactie wordt uitgevoerd vanuit de bestandsbrowser van ChromeOS.

Parameters