chrome.fileBrowserHandler

ब्यौरा

Chrome OS फ़ाइल ब्राउज़र को बेहतर बनाने के लिए, chrome.fileBrowserHandler API का इस्तेमाल करें. उदाहरण के लिए, इस एपीआई का इस्तेमाल करके, उपयोगकर्ताओं को अपनी वेबसाइट पर फ़ाइलें अपलोड करने की सुविधा दी जा सकती है.

कॉन्सेप्ट और इस्तेमाल

ChromeOS फ़ाइल ब्राउज़र तब दिखता है, जब उपयोगकर्ता Alt+Shift+M दबाता है या कोई बाहरी स्टोरेज डिवाइस कनेक्ट करता है. जैसे, एसडी कार्ड, यूएसबी की, बाहरी ड्राइव या डिजिटल कैमरा. फ़ाइल ब्राउज़र, बाहरी डिवाइसों पर मौजूद फ़ाइलों के साथ-साथ, उन फ़ाइलों को भी दिखा सकता है जिन्हें उपयोगकर्ता ने पहले सिस्टम में सेव किया था.

जब उपयोगकर्ता एक या उससे ज़्यादा फ़ाइलें चुनता है, तो फ़ाइल ब्राउज़र उन फ़ाइलों के लिए मान्य हैंडलर दिखाने वाले बटन जोड़ता है. उदाहरण के लिए, नीचे दिए गए स्क्रीनशॉट में, ".png" सफ़िक्स वाली फ़ाइल चुनने पर, "गैलरी में सेव करें" बटन दिखता है. उपयोगकर्ता इस बटन पर क्लिक कर सकता है.

ChromeOS फ़ाइल ब्राउज़र.
ChromeOS फ़ाइल ब्राउज़र.

अनुमतियां

fileBrowserHandler

आपको एक्सटेंशन मेनिफ़ेस्ट में "fileBrowserHandler" अनुमति का एलान करना होगा.

उपलब्धता

सिर्फ़ ChromeOS के लिए सिर्फ़ फ़ोरग्राउंड के लिए

एक्सटेंशन को कम से कम एक फ़ाइल टाइप के हैंडलर के तौर पर रजिस्टर करने के लिए, आपको "file_browser_handlers" फ़ील्ड का इस्तेमाल करना होगा. आपको बटन पर दिखाने के लिए, 16 x 16 आइकॉन भी देना होगा. उदाहरण के लिए:

{
  "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
मेनिफ़ेस्ट फ़ाइल से मिली id वैल्यू. अगर आपका एक्सटेंशन कई हैंडलर लागू करता है, तो आईडी वैल्यू की जांच करके यह देखा जा सकता है कि कौनसा हैंडलर ट्रिगर हुआ है.
details
इवेंट की जानकारी देने वाला ऑब्जेक्ट. इस ऑब्जेक्ट के entries फ़ील्ड से, उपयोगकर्ता की चुनी गई फ़ाइल या फ़ाइलें देखी जा सकती हैं. यह फ़ील्ड, FileSystemFileEntry ऑब्जेक्ट का कलेक्शन होता है.

टाइप

FileHandlerExecuteEventDetails

fileBrowserHandler.onExecute इवेंट के लिए, इवेंट की जानकारी वाला पेलोड.

प्रॉपर्टी

  • एंट्री

    any[]

    इस कार्रवाई के टारगेट (ChromeOS फ़ाइल ब्राउज़र में चुनी गई) फ़ाइलों को दिखाने वाले एंट्री इंस्टेंस का कलेक्शन.

  • tab_id

    number ज़रूरी नहीं

    उस टैब का आईडी जिसकी वजह से यह इवेंट हुआ. ब्राउज़र सेशन में टैब आईडी यूनीक होते हैं.

इवेंट

onExecute

chrome.fileBrowserHandler.onExecute.addListener(
  callback: function,
)

ChromeOS फ़ाइल ब्राउज़र से फ़ाइल सिस्टम ऐक्शन लागू करने पर ट्रिगर होता है.

पैरामीटर