Penanganan file memungkinkan Anda mengonfigurasi ChromeOS sehingga ekstensi Anda dapat membuka file menggunakan menu Buka di menu file atau menu Buka dengan di menu konteks. Setelah dibuka, Anda akan memproses data file menggunakan Launch Handler API platform web. Kemudian, Anda akan menggunakan API platform web standar untuk menampilkan atau menangani file.
Ketersediaan di ekstensi
ChromeOS 120 atau yang lebih baru.
Izin
Tidak ada izin yang diperlukan untuk penanganan file.
Manifes
Anda harus menambahkan array "file_handlers" ke file manifest.json.
Konteks pendukung
API ini dapat digunakan di service worker ekstensi, pop-up, panel samping, atau skrip konten.
Mengonfigurasi penangan file
Setiap anggota "file_handlers"—yang berarti setiap penangan file—menentukan satu atau beberapa jenis file yang akan ditangani oleh halaman ekstensi tertentu.
Penangan yang Anda tentukan akan ditambahkan ke jendela File ChromeOS, khususnya menu Buka dan Buka dengan. Penangan hanya akan muncul di menu ini saat pengguna memilih file dengan ekstensi tertentu. Misalnya, jika penangan file menentukan .txt, menu ChromeOS hanya akan menampilkan penangan tersebut saat file dengan ekstensi tersebut dipilih.
Memproses file
Penangan file adalah file HTML yang terdapat dalam ekstensi Anda. Saat pengguna memilih penangan Anda dari menu, file HTML akan terbuka di tab baru. Pemrosesan file, baik Anda menampilkannya atau menggunakannya dengan cara lain, dilakukan dengan JavaScript menggunakan API platform web yang sesuai. Kode pemrosesan harus berada dalam file JavaScript terpisah dan disertakan melalui tag <script> dan juga harus berada di ekstensi Anda. File skrip menggunakan antarmuka LaunchQueue dari Launch Handler API untuk mendapatkan objek FileSystemFileHandle.
Contoh
Contoh berikut menunjukkan cara mendapatkan objek FileSystemFileHandle menggunakan antarmuka LaunchQueue. Untuk melihat penanganan file dalam tindakan, instal Demo Penanganan File.
if ('launchQueue' in window) {
launchQueue.setConsumer(async launchParams => {
if (!launchParams.files || !launchParams.files.length) { return; }
const fileHandle = launchParams.files[0];
});
}
``````