chrome.fileBrowserHandler

Beschreibung

Verwende die chrome.fileBrowserHandler API, um den Chrome OS-Dateibrowser zu erweitern. Mit dieser API können Sie es beispielsweise Nutzern ermöglichen, Dateien auf Ihre Website hochzuladen.

Konzepte und Nutzung

Der ChromeOS-Dateibrowser wird geöffnet, wenn der Nutzer entweder Alt + Umschalttaste + M drückt oder ein externes Speichergerät anschließt, z. B. eine SD-Karte, einen USB-Schlüssel, ein externes Laufwerk oder eine Digitalkamera. Neben der Anzeige der Dateien auf externen Geräten kann der Dateibrowser auch Dateien anzeigen, die der Nutzer zuvor im System gespeichert hat.

Wenn der Nutzer eine oder mehrere Dateien auswählt, fügt der Dateibrowser Schaltflächen hinzu, die die gültigen Handler für diese Dateien darstellen. Im folgenden Screenshot wird beim Auswählen einer Datei mit dem Suffix „.png“ beispielsweise die Schaltfläche „In Galerie speichern“ angezeigt, auf die der Nutzer klicken kann.

Ein ChromeOS-Dateibrowser.
ChromeOS-Dateibrowser.

Berechtigungen

fileBrowserHandler

Sie müssen die Berechtigung "fileBrowserHandler" im Manifest deklarieren.

Verfügbarkeit

Nur ChromeOS Nur Vordergrund

Sie müssen das Feld "file_browser_handlers" verwenden, um die Erweiterung als Handler für mindestens einen Dateityp zu registrieren. Sie sollten auch ein Symbol der Größe 16 x 16 für die Schaltfläche bereitstellen. Beispiel:

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

Dateibrowser-Handler implementieren

Wenn Sie diese API verwenden möchten, müssen Sie eine Funktion implementieren, die das onExecute-Ereignis von chrome.fileBrowserHandler verarbeitet. Die Funktion wird immer dann aufgerufen, wenn der Nutzer auf die Schaltfläche für Ihren Dateibrowser-Handler klickt. Verwenden Sie in Ihrer Funktion die File System API, um Zugriff auf den Dateiinhalt zu erhalten. Hier ein Beispiel:

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

Dem Ereignis-Handler werden zwei Argumente übergeben:

id
Der Wert id aus der Manifestdatei. Wenn Ihre Erweiterung mehrere Handler implementiert, können Sie anhand des ID-Werts feststellen, welcher Handler ausgelöst wurde.
details
Ein Objekt, das das Ereignis beschreibt. Sie können die Datei oder Dateien abrufen, die der Nutzer aus dem Feld entries dieses Objekts ausgewählt hat. Das Feld ist ein Array von FileSystemFileEntry-Objekten.

Typen

FileHandlerExecuteEventDetails

Nutzlast der Ereignisdetails für das Ereignis fileBrowserHandler.onExecute.

Attribute

  • entries

    beliebige[]

    Array von Eintragsinstanzen, die Dateien darstellen, die Ziele dieser Aktion sind (im ChromeOS-Dateibrowser ausgewählt).

  • tab_id

    Nummer optional

    Die ID des Tabs, über den dieses Ereignis ausgelöst wurde. Tab-IDs sind innerhalb einer Browsersitzung eindeutig.

Veranstaltungen

onExecute

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

Wird ausgelöst, wenn die Dateisystemaktion über den ChromeOS-Dateibrowser ausgeführt wird.

Parameters