Tính năng xử lý tệp cho phép bạn định cấu hình ChromeOS để tiện ích có thể mở tệp bằng cách sử dụng trình đơn Mở của trình đơn tệp hoặc trình đơn Mở bằng của trình đơn theo bối cảnh. Sau khi mở, bạn sẽ xử lý dữ liệu của tệp bằng Launch Handler API của nền tảng web. Sau đó, bạn sẽ sử dụng các API nền tảng web tiêu chuẩn để hiển thị hoặc xử lý tệp.
Phạm vi cung cấp trong tiện ích
ChromeOS 120 trở lên.
Quyền
Không cần có quyền để xử lý tệp.
Tệp kê khai
Bạn cần thêm mảng "file_handlers" vào tệp manifest.json.
Bối cảnh hỗ trợ
Bạn có thể sử dụng API này trong các worker dịch vụ của tiện ích, cửa sổ bật lên, bảng điều khiển bên hoặc tập lệnh nội dung.
Định cấu hình trình xử lý tệp
Mỗi thành phần của "file_handlers" (tức là mỗi trình xử lý tệp) chỉ định một hoặc nhiều loại tệp sẽ được một trang tiện ích cụ thể xử lý.
Các trình xử lý mà bạn chỉ định sẽ được thêm vào cửa sổ Tệp của ChromeOS, cụ thể là trình đơn Mở và Mở bằng. Các mục này sẽ chỉ xuất hiện trong những trình đơn này khi người dùng chọn một tệp có đuôi cụ thể. Ví dụ: nếu một trình xử lý tệp chỉ định .txt, thì trình xử lý đó sẽ chỉ xuất hiện trong trình đơn ChromeOS khi người dùng chọn một tệp có đuôi đó.
Xử lý tệp
Trình xử lý tệp là một tệp HTML có trong tiện ích của bạn. Khi người dùng chọn trình xử lý của bạn trong một trình đơn, tệp HTML sẽ mở ra trong một thẻ mới. Việc xử lý tệp (cho dù bạn hiển thị hay sử dụng tệp theo cách khác) đều được thực hiện bằng JavaScript thông qua các API nền tảng web thích hợp. Mã xử lý phải nằm trong một tệp JavaScript riêng biệt và được đưa vào thông qua thẻ <script>, đồng thời cũng phải nằm trong tiện ích của bạn. Tệp tập lệnh sử dụng giao diện LaunchQueue của Launch Handler API để lấy đối tượng FileSystemFileHandle.
Ví dụ:
Ví dụ sau đây minh hoạ cách lấy một đối tượng FileSystemFileHandle bằng giao diện LaunchQueue. Để xem cách xử lý tệp trong thực tế, hãy cài đặt Bản minh hoạ tính năng xử lý tệp.
if ('launchQueue' in window) {
launchQueue.setConsumer(async launchParams => {
if (!launchParams.files || !launchParams.files.length) { return; }
const fileHandle = launchParams.files[0];
});
}
``````