ব্রাউজার.ফাইলব্রাউজারহ্যান্ডলার

বর্ণনা

ক্রোম ওএস ফাইল ব্রাউজারকে সম্প্রসারিত করতে chrome.fileBrowserHandler API ব্যবহার করুন। উদাহরণস্বরূপ, আপনি এই API ব্যবহার করে ব্যবহারকারীদের আপনার ওয়েবসাইটে ফাইল আপলোড করার সুযোগ দিতে পারেন।

ধারণা এবং ব্যবহার

ব্যবহারকারী যখন Alt+Shift+M চাপেন অথবা কোনো বাহ্যিক স্টোরেজ ডিভাইস, যেমন এসডি কার্ড, ইউএসবি কি, এক্সটার্নাল ড্রাইভ বা ডিজিটাল ক্যামেরা সংযোগ করেন, তখন ChromeOS ফাইল ব্রাউজারটি চালু হয়। বাহ্যিক ডিভাইসের ফাইলগুলো দেখানোর পাশাপাশি, এই ফাইল ব্রাউজারটি ব্যবহারকারীর সিস্টেমে পূর্বে সংরক্ষণ করা ফাইলগুলোও প্রদর্শন করতে পারে।

যখন ব্যবহারকারী এক বা একাধিক ফাইল নির্বাচন করেন, তখন ফাইল ব্রাউজারটি সেই ফাইলগুলির জন্য উপযুক্ত হ্যান্ডলারগুলির প্রতিনিধিত্বকারী বাটন যুক্ত করে। উদাহরণস্বরূপ, নিম্নলিখিত স্ক্রিনশটে, ".png" সাফিক্সযুক্ত একটি ফাইল নির্বাচন করলে একটি "গ্যালারিতে সংরক্ষণ করুন" বাটন প্রদর্শিত হয়, যেটিতে ব্যবহারকারী ক্লিক করতে পারেন।

ক্রোমওএস-এর একটি ফাইল ব্রাউজার।
ক্রোমওএস-এর একটি ফাইল ব্রাউজার।

অনুমতি

fileBrowserHandler

আপনাকে এক্সটেনশন ম্যানিফেস্টে "fileBrowserHandler" পারমিশনটি অবশ্যই ঘোষণা করতে হবে।

প্রাপ্যতা

শুধুমাত্র ChromeOS-এর জন্য ফোরগ্রাউন্ডে

আপনাকে অবশ্যই "file_browser_handlers" ফিল্ডটি ব্যবহার করে এক্সটেনশনটিকে অন্তত একটি ফাইল টাইপের হ্যান্ডলার হিসেবে রেজিস্টার করতে হবে। এছাড়াও, বাটনে প্রদর্শনের জন্য আপনাকে একটি ১৬ বাই ১৬ আইকন প্রদান করতে হবে। উদাহরণস্বরূপ:

{
  "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"
  },
  ...
}

একটি ফাইল ব্রাউজার হ্যান্ডলার বাস্তবায়ন করুন

এই API ব্যবহার করার জন্য, আপনাকে এমন একটি ফাংশন ইমপ্লিমেন্ট করতে হবে যা browser.fileBrowserHandler এর onExecute ইভেন্টটি হ্যান্ডেল করে। যখনই ব্যবহারকারী আপনার ফাইল ব্রাউজার হ্যান্ডলারকে প্রতিনিধিত্বকারী বাটনটিতে ক্লিক করবে, তখনই আপনার ফাংশনটি কল করা হবে। আপনার ফাংশনের মধ্যে, ফাইলের কন্টেন্ট অ্যাক্সেস করার জন্য ফাইল সিস্টেম 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 ইভেন্টের জন্য ইভেন্টের বিস্তারিত পেলোড।

বৈশিষ্ট্য

  • এন্ট্রিগুলি

    যেকোনো[]

    এই অ্যাকশনের লক্ষ্য ফাইলগুলোকে প্রতিনিধিত্বকারী এন্ট্রি ইনস্ট্যান্সের অ্যারে (ক্রোমওএস ফাইল ব্রাউজারে নির্বাচিত)।

  • ট্যাব_আইডি

    সংখ্যা ঐচ্ছিক

    যে ট্যাবটি এই ইভেন্টটি ঘটিয়েছে তার আইডি। একটি ব্রাউজার সেশনের মধ্যে ট্যাব আইডিগুলো অনন্য হয়।

ইভেন্টগুলি

onExecute

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

ChromeOS ফাইল ব্রাউজার থেকে ফাইল সিস্টেম সংক্রান্ত কোনো কাজ সম্পন্ন করা হলে এটি সক্রিয় হয়।

প্যারামিটার