chrome.fileBrowserHandler

Beschreibung

Verwenden Sie die chrome.fileBrowserHandler API, um den Chrome OS-Dateibrowser zu erweitern. Sie können diese API beispielsweise verwenden, um Nutzern das Hochladen von Dateien auf Ihre Website zu ermöglichen.

Konzepte und Verwendung

Der ChromeOS-Dateibrowser wird angezeigt, 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. Der Dateibrowser kann nicht nur Dateien auf externen Geräten anzeigen, sondern auch Dateien, 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 wählen wir beispielsweise eine Datei mit der Datei „.png“ aus. Suffix führt zu einer "In Galerie speichern" Schaltfläche, auf die Nutzende klicken können.

<ph type="x-smartling-placeholder">
</ph> Ein ChromeOS-Dateibrowser.
ChromeOS-Dateibrowser

Berechtigungen

fileBrowserHandler

Du musst die Berechtigung "fileBrowserHandler" im Erweiterungsmanifest deklarieren.

Verfügbarkeit

<ph type="x-smartling-placeholder"></ph> 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 im Format 16 x 16 angeben, das auf der Schaltfläche angezeigt werden soll. 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

Zur Verwendung dieser API 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 klickt, die Ihren Dateibrowser-Handler repräsentiert. 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 Event-Handler werden zwei Argumente übergeben:

id
Der Wert id aus der Manifestdatei. Wenn in Ihrer Erweiterung mehrere Handler implementiert sind, 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. Dabei handelt es sich um ein Array von FileSystemFileEntry-Objekten.

Typen

FileHandlerExecuteEventDetails

Ereignisdetails-Nutzlast für das Ereignis „fileBrowserHandler.onExecute“.

Attribute

  • entries

    Beliebig[]

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

  • tab_id

    Zahl optional

    Die ID des Tabs, der dieses Ereignis ausgelöst hat. Tab-IDs sind innerhalb einer Browsersitzung eindeutig.

Ereignisse

onExecute

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

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

Parameter