การจัดการไฟล์ช่วยให้คุณกำหนดค่า ChromeOS เพื่อให้ส่วนขยายสามารถเปิดไฟล์โดยใช้เมนู "เปิด" ของเมนูไฟล์หรือเมนู "เปิดด้วย" ของเมนูตามบริบทได้ เมื่อเปิดแล้ว ให้คุณประมวลผลข้อมูลของไฟล์โดยใช้ Launch Handler API ของแพลตฟอร์มเว็บ จากนั้นคุณจะใช้ API ของแพลตฟอร์มเว็บแบบมาตรฐานเพื่อแสดงหรือจัดการไฟล์
![ตัวแฮนเดิลไฟล์ที่เพิ่มลงในเมนู "เปิด" ของ ChromeOS](https://developer.chrome.com/static/docs/extensions/how-to/web-platform/file-handling-chromeos/image/a-file-handler-added-the-4899ab22819fc.png?authuser=19&hl=th)
ความพร้อมใช้งานในส่วนขยาย
ChromeOS 120 ขึ้นไป
สิทธิ์
ไม่ต้องใช้สิทธิ์สำหรับ File Handling
ไฟล์ Manifest
คุณต้องเพิ่มอาร์เรย์ "file_handlers"
ลงในไฟล์ Manifest.json
บริบทที่สนับสนุน
API นี้อาจใช้กับ Service Worker ส่วนขยาย ป๊อปอัป แผงด้านข้าง หรือสคริปต์เนื้อหา
กำหนดค่าตัวแฮนเดิลไฟล์
สมาชิกแต่ละรายของ "file_handlers"
ซึ่งหมายถึงตัวแฮนเดิลไฟล์จะระบุประเภทไฟล์ที่จะจัดการโดยหน้าส่วนขยายที่เจาะจง
เครื่องจัดการที่คุณระบุจะเพิ่มลงในหน้าต่าง Files ของ ChromeOS รวมถึงเมนู "เปิดและเปิดด้วย" โดยเฉพาะ และจะปรากฏในเมนูเหล่านี้เมื่อผู้ใช้เลือกไฟล์ที่มีนามสกุลเท่านั้น เช่น หากตัวแฮนเดิลไฟล์ระบุ .txt
เมนู ChromeOS จะแสดงเฉพาะตัวแฮนเดิลนั้นเมื่อมีการเลือกไฟล์ที่มีส่วนขยายดังกล่าวเท่านั้น
ประมวลผลไฟล์
ตัวแฮนเดิลไฟล์คือไฟล์ HTML ที่อยู่ในส่วนขยาย เมื่อผู้ใช้เลือกตัวแฮนเดิลจากเมนู ไฟล์ HTML จะเปิดขึ้นในแท็บใหม่ การประมวลผลไฟล์ ไม่ว่าจะแสดงหรือใช้งานในลักษณะอื่นๆ จะทำด้วย JavaScript โดยใช้ API ของแพลตฟอร์มเว็บที่เหมาะสม โค้ดการประมวลผลต้องอยู่ในไฟล์ JavaScript แยกต่างหากและรวมผ่านแท็ก <script>
และต้องอยู่ในส่วนขยายด้วย ไฟล์สคริปต์ใช้อินเทอร์เฟซ LaunchQueue
ของ Launch Handler API เพื่อรับออบเจ็กต์ FileSystemFileHandle
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงวิธีรับออบเจ็กต์ FileSystemFileHandle
โดยใช้อินเทอร์เฟซ LaunchQueue
หากต้องการดูการทำงานของการจัดการไฟล์ ให้ติดตั้งการสาธิตการจัดการไฟล์
if ('launchQueue' in window) {
launchQueue.setConsumer(async launchParams => {
if (!launchParams.files || !launchParams.files.length) { return; }
const fileHandle = launchParams.files[0];
});
}
``````