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