বিবরণ
Chrome OS ফাইল ব্রাউজার এক্সটেন্ড করতে chrome.fileBrowserHandler API ব্যবহার করুন। যেমন, ব্যবহারকারীদের আপনার ওয়েবসাইটে ফাইল আপলোড করার সুবিধা দিতে আপনি এই API ব্যবহার করতে পারেন।
ধারণা ও ব্যবহার
ব্যবহারকারী Alt+Shift+M প্রেস করলে অথবা এসডি কার্ড, USB কী, এক্সটার্নাল ড্রাইভ বা ডিজিটাল ক্যামেরার মতো কোনও এক্সটার্নাল স্টোরেজ ডিভাইস কানেক্ট করলে, ChromeOS ফাইল ব্রাউজার খুলে যায়। এক্সটার্নাল ডিভাইসে ফাইল দেখানোর পাশাপাশি, ফাইল ব্রাউজার ব্যবহারকারীর সিস্টেমে আগে সেভ করা ফাইলও দেখাতে পারে।
ব্যবহারকারী এক বা একাধিক ফাইল বেছে নিলে, ফাইল ব্রাউজার সেইসব ফাইলের জন্য সঠিক হ্যান্ডলারের প্রতিনিধিত্বকারী বোতাম যোগ করে। যেমন, নিম্নলিখিত স্ক্রিনশটে, ".png" সাফিক্স সহ ফাইল বেছে নিলে "গ্যালারিতে সেভ করুন" বোতাম দেখা যায়, ব্যবহারকারী সেখানে ক্লিক করতে পারেন।
অনুমতি
fileBrowserHandlerআপনাকে এক্সটেনশন ম্যানিফেস্টে "fileBrowserHandler" সংক্রান্ত অনুমতি ঘোষণা করতে হবে।
উপলভ্যতা
কমপক্ষে একটি ফাইলের ধরন হ্যান্ডলার হিসেবে এক্সটেনশন রেজিস্টার করতে আপনাকে অবশ্যই "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 ইভেন্টের জন্য ইভেন্টের বিবরণ সংক্রান্ত পেলোড।
প্রপার্টি
-
এন্ট্রি
যেকোনও[]
এই অ্যাকশনের টার্গেট (ChromeOS ফাইল ব্রাউজারে বেছে নেওয়া) ফাইলকে উপস্থাপন করে এমন এন্ট্রি ইনস্ট্যান্সের অ্যারে।
-
tab_id
নম্বর ঐচ্ছিক
এই ইভেন্টটি যে ট্যাব থেকে শুরু হয়েছে সেটির আইডি। ব্রাউজার সেশনে ট্যাব আইডি অনন্য হয়।
ইভেন্ট
onExecute
browser.fileBrowserHandler.onExecute.addListener(
callback: function,
)
ChromeOS ফাইল ব্রাউজার থেকে ফাইল সিস্টেম অ্যাকশন এক্সিকিউট করা হলে ফায়ার করা হয়।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(id: string, details: FileHandlerExecuteEventDetails) => void
-
id
স্ট্রিং
-
বিস্তারিত বিবরণ
-