ब्यौरा
Chrome OS के फ़ाइल ब्राउज़र को बढ़ाने के लिए, chrome.fileBrowserHandler API का इस्तेमाल करें. उदाहरण के लिए, इस एपीआई का इस्तेमाल करके, उपयोगकर्ताओं को अपनी वेबसाइट पर फ़ाइलें अपलोड करने की सुविधा दी जा सकती है.
कॉन्सेप्ट और इस्तेमाल करने का तरीका
जब उपयोगकर्ता Alt+Shift+M दबाता है या एसडी कार्ड, यूएसबी की, बाहरी ड्राइव या डिजिटल कैमरे जैसे किसी बाहरी स्टोरेज डिवाइस को कनेक्ट करता है, तब ChromeOS का फ़ाइल ब्राउज़र खुलता है. फ़ाइल ब्राउज़र, बाहरी डिवाइसों पर मौजूद फ़ाइलें दिखाने के साथ-साथ, उन फ़ाइलों को भी दिखा सकता है जिन्हें उपयोगकर्ता ने पहले सिस्टम में सेव किया था.
जब उपयोगकर्ता एक या उससे ज़्यादा फ़ाइलें चुनता है, तो फ़ाइल ब्राउज़र उन फ़ाइलों के लिए मान्य हैंडलर दिखाने वाले बटन जोड़ता है. उदाहरण के लिए, इस स्क्रीनशॉट में ".png" सफ़िक्स वाली फ़ाइल को चुनने पर, "गैलरी में सेव करें" बटन दिखता है. इस पर क्लिक करके, उपयोगकर्ता फ़ाइल को गैलरी में सेव कर सकता है.
अनुमतियां
fileBrowserHandlerआपको एक्सटेंशन मेनिफ़ेस्ट में "fileBrowserHandler" अनुमति का एलान करना होगा.
उपलब्धता
आपको "file_browser_handlers" फ़ील्ड का इस्तेमाल करके, एक्सटेंशन को कम से कम एक फ़ाइल टाइप के हैंडलर के तौर पर रजिस्टर करना होगा. आपको बटन पर दिखाने के लिए, 16x16 का आइकॉन भी देना होगा. उदाहरण के लिए:
{
"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"
},
...
}
फ़ाइल ब्राउज़र हैंडलर लागू करना
इस एपीआई का इस्तेमाल करने के लिए, आपको एक ऐसा फ़ंक्शन लागू करना होगा जो onExecute के browser.fileBrowserHandler इवेंट को हैंडल करता हो. जब भी उपयोगकर्ता, फ़ाइल ब्राउज़र हैंडलर को दिखाने वाले बटन पर क्लिक करेगा, तब आपके फ़ंक्शन को कॉल किया जाएगा. अपने फ़ंक्शन में, फ़ाइल के कॉन्टेंट को ऐक्सेस करने के लिए File System API का इस्तेमाल करें. उदाहरण के लिए:
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
}
});
आपके इवेंट हैंडलर को दो आर्ग्युमेंट पास किए जाते हैं:
id- मेनिफ़ेस्ट फ़ाइल से मिली
idवैल्यू. अगर आपके एक्सटेंशन में कई हैंडलर लागू किए गए हैं, तो आईडी की वैल्यू देखकर यह पता लगाया जा सकता है कि कौनसे हैंडलर को ट्रिगर किया गया है. details- इवेंट की जानकारी देने वाला ऑब्जेक्ट. आपको वे फ़ाइलें मिल सकती हैं जिन्हें उपयोगकर्ता ने इस ऑब्जेक्ट के
entriesफ़ील्ड से चुना है. यहFileSystemFileEntryऑब्जेक्ट का एक ऐरे है.
टाइप
FileHandlerExecuteEventDetails
fileBrowserHandler.onExecute इवेंट के लिए, इवेंट की जानकारी वाला पेलोड.
प्रॉपर्टी
-
एंट्री
कोई भी[]
एंट्री इंस्टेंस का कलेक्शन, उन फ़ाइलों को दिखाता है जिन पर यह कार्रवाई की गई है. इन्हें ChromeOS के फ़ाइल ब्राउज़र में चुना गया है.
-
tab_id
number optional
उस टैब का आईडी जिसने इस इवेंट को ट्रिगर किया है. टैब आईडी, ब्राउज़र के किसी सेशन में यूनीक होते हैं.
इवेंट
onExecute
chrome.fileBrowserHandler.onExecute.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब ChromeOS के फ़ाइल ब्राउज़र से फ़ाइल सिस्टम की कार्रवाई की जाती है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर ऐसा दिखता है:(id: string, details: FileHandlerExecuteEventDetails) => void
-
आईडी
स्ट्रिंग
-