chrome.fileBrowserHandler

Beschrijving

Gebruik de chrome.fileBrowserHandler API om de Chrome OS-bestandsbrowser uit te breiden. U kunt deze API bijvoorbeeld gebruiken om gebruikers in staat te stellen bestanden naar uw website te uploaden.

Machtigingen

fileBrowserHandler

Beschikbaarheid

Alleen ChromeOS Alleen voorgrond

De ChromeOS-bestandsbrowser verschijnt wanneer de gebruiker op Alt+Shift+M drukt of een extern opslagapparaat aansluit, zoals een SD-kaart, USB-sleutel, externe schijf of digitale camera. Naast het tonen van 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 het achtervoegsel ".png" bijvoorbeeld in een knop "Opslaan in galerij" waarop de gebruiker kan klikken.

Schermafbeelding van bestandsbrowser

Manifest

U moet de machtiging "fileBrowserHandler" opgeven in het extensiemanifest en u moet het veld "file_browser_handlers" gebruiken om de extensie te registreren als handler van ten minste één bestandstype. U moet ook een pictogram van 16x16 opgeven dat op de knop moet worden 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"
  },
  ...
}

Implementatie van een bestandsbrowserhandler

Als u deze API wilt gebruiken, moet u een functie implementeren die de onExecute gebeurtenis van chrome.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 bestandsinhoud. Hier is een voorbeeld:

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

Aan uw gebeurtenishandler worden twee argumenten doorgegeven:

Identiteitskaart
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 ophalen die de gebruiker heeft geselecteerd uit het entries van dit object, dat een array van FileSystemFileEntry objecten is.

Soorten

FileHandlerExecuteEventDetails

Payload van gebeurtenisdetails voor fileBrowserHandler.onExecute-gebeurtenis.

Eigenschappen

  • inzendingen

    elk[]

    Array of Entry-instanties die bestanden vertegenwoordigen die het doelwit zijn van deze actie (geselecteerd in de ChromeOS-bestandsbrowser).

  • tab_id

    nummer optioneel

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

Evenementen

onExecute

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

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

Parameters