browser.fileBrowserHandler

Beschreibung

Mit der chrome.fileBrowserHandler API können Sie den ChromeOS-Dateibrowser erweitern. Mit dieser API können Sie Nutzern beispielsweise ermöglichen, Dateien auf Ihre Website hochzuladen.

Konzepte und Nutzung

Der ChromeOS-Dateimanager wird aufgerufen, wenn der Nutzer entweder Alt+Umschalt+M drückt oder ein externes Speichergerät wie eine SD-Karte, einen USB-Stick, eine externe Festplatte oder eine Digitalkamera anschließt. Neben den 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, werden im Dateibrowser Schaltflächen für die gültigen Handler für diese Dateien hinzugefügt. Wenn Sie beispielsweise im folgenden Screenshot eine Datei mit der Endung „.png“ auswählen, wird die Schaltfläche „In Galerie speichern“ angezeigt, auf die der Nutzer klicken kann.

Ein ChromeOS-Dateibrowser.
Ein ChromeOS-Dateibrowser

Berechtigungen

fileBrowserHandler

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

Verfügbarkeit

Nur ChromeOS Nur im 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 16 × 16-Symbol 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

Um diese API zu verwenden, müssen Sie eine Funktion implementieren, die das onExecute-Ereignis von browser.fileBrowserHandler verarbeitet. Ihre Funktion wird immer dann aufgerufen, wenn der Nutzer auf die Schaltfläche klickt, die Ihren Dateibrowser-Handler darstellt. Verwenden Sie in Ihrer Funktion die File System API, um auf den Dateiinhalt zuzugreifen. Hier ein Beispiel:

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

Ihrem Event-Handler werden zwei Argumente übergeben:

id
Der id-Wert aus der Manifestdatei. Wenn Ihre Erweiterung mehrere Handler implementiert, können Sie anhand des ID-Werts ermitteln, welcher Handler ausgelöst wurde.
details
Ein Objekt, das das Ereignis beschreibt. Die vom Nutzer ausgewählte(n) Datei(en) finden Sie im Feld entries dieses Objekts, das ein Array von FileSystemFileEntry-Objekten ist.

Typen

FileHandlerExecuteEventDetails

Nutzlast mit Termindetails für das Ereignis „fileBrowserHandler.onExecute“.

Attribute

  • entries

    any[]

    Array von Entry-Instanzen, die Dateien darstellen, die Ziele dieser Aktion sind (im ChromeOS-Dateimanager ausgewählt).

  • tab_id

    number 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 eine Dateisystemaktion über den ChromeOS-Dateimanager ausgeführt wird.

Parameter