browser.fileBrowserHandler

Beschrijving

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

Concepten en gebruik

De ChromeOS-bestandsbrowser wordt geopend als de gebruiker op Alt+Shift+M drukt of een extern opslagapparaat aansluit, zoals een SD-kaart, USB-stick, externe schijf of digitale camera. De bestandsbrowser toont niet alleen de bestanden op externe apparaten, maar ook bestanden die de gebruiker eerder op het systeem heeft opgeslagen.

Als de gebruiker een of meer bestanden selecteert, voegt de bestandsbrowser knoppen toe die de geldige handlers voor die bestanden vertegenwoordigen. In het volgende screenshot leidt de selectie van een bestand met de extensie .png bijvoorbeeld tot de knop Opslaan in galerij waarop de gebruiker kan klikken.

Een ChromeOS-bestandsbrowser.
Een ChromeOS-bestandsbrowser.

Rechten

fileBrowserHandler

Je moet het recht "fileBrowserHandler" definiëren in het extensiemanifest.

Beschikbaarheid

Alleen ChromeOS Alleen op de voorgrond

Je moet het veld "file_browser_handlers" gebruiken om de extensie te registreren als verwerker van minstens één bestandstype. Je moet ook een icoon van 16 bij 16 leveren dat op de knop wordt getoond. Voorbeeld:

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

Een handler voor de bestandsbrowser implementeren

Als je deze API wilt gebruiken, moet je een functie implementeren die de gebeurtenis onExecute van browser.fileBrowserHandler verwerkt. Je functie wordt aangeroepen wanneer de gebruiker op de knop klikt die je bestandsbrowserhandler vertegenwoordigt. Gebruik in je functie de bestandssysteem-API om toegang te krijgen tot de bestandscontent. 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
  }
});

Er worden 2 argumenten doorgegeven aan uw gebeurtenishandler:

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

Typen

FileHandlerExecuteEventDetails

Payload met gebeurtenisgegevens voor de gebeurtenis fileBrowserHandler.onExecute.

Eigenschappen

  • entries

    any[]

    Matrix van Entry-instanties die bestanden vertegenwoordigen die het doel van deze actie zijn (geselecteerd in de ChromeOS-bestandsbrowser).

  • tab_id

    number optioneel

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

Evenementen

onExecute

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

Wordt geactiveerd als een bestandssysteemactie wordt uitgevoerd vanuit de ChromeOS-bestandsbrowser.

Parameters