chrome.fileBrowserHandler

Beschreibung

Mit der chrome.fileBrowserHandler API können Sie den ChromeOS-Dateibrowser 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 + Umschalt + M drückt oder ein externes Speichergerät wie eine SD-Karte, einen USB-Speicher, ein externes Laufwerk oder eine Digitalkamera anschließt. Neben den Dateien auf externen Geräten kann der Dateibrowser auch Dateien anzeigen, die der Nutzer zuvor auf dem 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. Im folgenden Screenshot wird beispielsweise durch die Auswahl einer Datei mit dem Suffix „.png“ 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 Erweiterungsmanifest angeben.

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 Pixel großes Symbol für die Schaltfläche angeben. 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. Ihre Funktion wird 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:

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

Ihrem Ereignis-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 sehen, welcher Handler ausgelöst wurde.
details
Ein Objekt, das das Ereignis beschreibt. Die vom Nutzer ausgewählten Dateien finden Sie im Feld entries dieses Objekts, das ein Array von FileSystemFileEntry-Objekten ist.

Typen

FileHandlerExecuteEventDetails

Nutzlast für Ereignisdetails 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

    number optional

    Die ID des Tabs, auf dem dieses Ereignis ausgelöst wurde. Tab-IDs sind innerhalb einer Browser-Sitzung eindeutig.

Ereignisse

onExecute

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

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

Parameter