फ़ाइल हैंडलिंग की सुविधा की मदद से, ChromeOS को इस तरह कॉन्फ़िगर किया जा सकता है कि आपका एक्सटेंशन, फ़ाइल मेन्यू के 'खोलें' मेन्यू या संदर्भ मेन्यू के 'इससे खोलें' मेन्यू का इस्तेमाल करके फ़ाइलें खोल सके. फ़ाइल खुलने के बाद, वेब प्लैटफ़ॉर्म के Launch Handler API का इस्तेमाल करके, फ़ाइल के डेटा को प्रोसेस किया जाता है. इसके बाद, फ़ाइल को दिखाने या उसे हैंडल करने के लिए, वेब प्लैटफ़ॉर्म के स्टैंडर्ड एपीआई का इस्तेमाल किया जाता है.
एक्सटेंशन में उपलब्धता
ChromeOS 120 या इसके बाद वाले वर्शन.
अनुमतियां
फ़ाइल हैंडलिंग के लिए, किसी अनुमति की ज़रूरत नहीं होती.
मेनिफ़ेस्ट
आपको "file_handlers" ऐरे को manifest.json फ़ाइल में जोड़ना होगा.
काम करने के संदर्भ
इस एपीआई का इस्तेमाल, एक्सटेंशन सर्विस वर्कर, पॉप-अप, साइड पैनल या कॉन्टेंट स्क्रिप्ट में किया जा सकता है.
फ़ाइल हैंडलर कॉन्फ़िगर करना
"file_handlers" का हर सदस्य—यानी, हर फ़ाइल हैंडलर—एक या एक से ज़्यादा फ़ाइल टाइप तय करता है. इन्हें किसी खास एक्सटेंशन पेज से हैंडल किया जाता है.
आपके तय किए गए हैंडलर, ChromeOS की Files विंडो के साथ-साथ, 'खोलें' और 'इससे खोलें' मेन्यू में जोड़े जाएंगे. ये मेन्यू में सिर्फ़ तब दिखेंगे, जब उपयोगकर्ता किसी खास एक्सटेंशन वाली फ़ाइल को चुनता है. उदाहरण के लिए, अगर कोई फ़ाइल हैंडलर .txt तय करता है, तो ChromeOS के मेन्यू में सिर्फ़ वही हैंडलर दिखेगा, जब उस एक्सटेंशन वाली कोई फ़ाइल चुनी जाती है.
फ़ाइल प्रोसेस करना
फ़ाइल हैंडलर, आपके एक्सटेंशन में मौजूद एक एचटीएमएल फ़ाइल होती है. जब उपयोगकर्ता किसी मेन्यू से आपका हैंडलर चुनता है, तो एचटीएमएल फ़ाइल एक नए टैब में खुलती है. फ़ाइल को प्रोसेस करने के लिए, JavaScript का इस्तेमाल किया जाता है. इसमें वेब प्लैटफ़ॉर्म के सही एपीआई का इस्तेमाल किया जाता है. चाहे फ़ाइल को दिखाया जाए या किसी और तरीके से इस्तेमाल किया जाए. प्रोसेसिंग कोड, एक अलग JavaScript फ़ाइल में होना चाहिए. साथ ही, इसे <script> टैग के ज़रिए शामिल किया जाना चाहिए. यह आपके एक्सटेंशन में भी होना चाहिए. स्क्रिप्ट फ़ाइल, FileSystemFileHandle ऑब्जेक्ट पाने के लिए, Launch Handler API के LaunchQueue इंटरफ़ेस का इस्तेमाल करती है.
उदाहरण
यहां दिए गए उदाहरण में, LaunchQueue इंटरफ़ेस का इस्तेमाल करके, FileSystemFileHandle ऑब्जेक्ट पाने का तरीका बताया गया है. फ़ाइल हैंडलिंग की सुविधा को ऐक्शन में देखने के लिए, फ़ाइल हैंडलिंग डेमो इंस्टॉल करें.
if ('launchQueue' in window) {
launchQueue.setConsumer(async launchParams => {
if (!launchParams.files || !launchParams.files.length) { return; }
const fileHandle = launchParams.files[0];
});
}
``````