browser.fileBrowserHandler

Deskripsi

Gunakan chrome.fileBrowserHandler API untuk memperluas penjelajah file ChromeOS. Misalnya, Anda dapat menggunakan API ini untuk memungkinkan pengguna mengupload file ke situs Anda.

Konsep dan penggunaan

Penjelajah file ChromeOS akan muncul saat pengguna menekan Alt+Shift+M atau menghubungkan perangkat penyimpanan eksternal, seperti kartu SD, kunci USB, drive eksternal, atau kamera digital. Selain menampilkan file di perangkat eksternal, browser file juga dapat menampilkan file yang sebelumnya disimpan pengguna ke sistem.

Saat pengguna memilih satu atau beberapa file, browser file akan menambahkan tombol yang merepresentasikan handler yang valid untuk file tersebut. Misalnya, pada screenshot berikut, memilih file dengan akhiran ".png" akan menghasilkan tombol "Simpan ke Galeri" yang dapat diklik pengguna.

Penjelajah file ChromeOS.
Browser file ChromeOS.

Izin

fileBrowserHandler

Anda harus mendeklarasikan izin "fileBrowserHandler" dalam manifes ekstensi.

Ketersediaan

Khusus ChromeOS Hanya latar depan

Anda harus menggunakan kolom "file_browser_handlers" untuk mendaftarkan ekstensi sebagai handler setidaknya satu jenis file. Anda juga harus menyediakan ikon 16 x 16 untuk ditampilkan di tombol. Contoh:

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

Menerapkan pengendali browser file

Untuk menggunakan API ini, Anda harus menerapkan fungsi yang menangani peristiwa onExecute dari browser.fileBrowserHandler. Fungsi Anda akan dipanggil setiap kali pengguna mengklik tombol yang merepresentasikan handler penjelajah file Anda. Di fungsi Anda, gunakan File System API untuk mendapatkan akses ke konten file. Berikut ini contohnya:

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

Penanganan peristiwa Anda meneruskan dua argumen:

id
Nilai id dari file manifes. Jika ekstensi Anda menerapkan beberapa handler, Anda dapat memeriksa nilai ID untuk melihat handler mana yang telah dipicu.
details
Objek yang menjelaskan peristiwa. Anda bisa mendapatkan file yang telah dipilih pengguna dari kolom entries objek ini, yang merupakan array objek FileSystemFileEntry.

Jenis

FileHandlerExecuteEventDetails

Payload detail peristiwa untuk peristiwa fileBrowserHandler.onExecute.

Properti

  • entries

    any[]

    Array instance Entri yang merepresentasikan file yang menjadi target tindakan ini (dipilih di browser file ChromeOS).

  • tab_id

    nomor opsional

    ID tab yang memunculkan peristiwa ini. ID tab bersifat unik dalam sesi browser.

Acara

onExecute

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

Diaktifkan saat tindakan sistem file dijalankan dari browser file ChromeOS.

Parameter