অপারেটিং সিস্টেমের সাথে একটি ফাইল হ্যান্ডলার হিসেবে একটি অ্যাপ নিবন্ধন করুন।
এখন যেহেতু ওয়েব অ্যাপগুলি ফাইল পড়তে এবং লিখতে সক্ষম , তাই পরবর্তী যৌক্তিক পদক্ষেপ হল ডেভেলপারদের তাদের অ্যাপগুলি তৈরি এবং প্রক্রিয়া করতে পারে এমন ফাইলগুলির জন্য এই ওয়েব অ্যাপগুলিকে ফাইল হ্যান্ডলার হিসাবে ঘোষণা করতে দেওয়া। ফাইল হ্যান্ডলিং API আপনাকে ঠিক এটি করার অনুমতি দেয়। একটি টেক্সট এডিটর অ্যাপকে ফাইল হ্যান্ডলার হিসাবে নিবন্ধন করার পরে এবং এটি ইনস্টল করার পরে, আপনি macOS-এ একটি .txt ফাইলে ডান-ক্লিক করতে পারেন এবং "তথ্য পান" নির্বাচন করতে পারেন যাতে OS-কে নির্দেশ দেওয়া যায় যে এটি সর্বদা এই অ্যাপটি ডিফল্ট হিসাবে রেখে .txt ফাইলগুলি খুলবে।
ফাইল হ্যান্ডলিং API-এর জন্য প্রস্তাবিত ব্যবহারের কেস
এই API ব্যবহার করতে পারে এমন সাইটগুলির উদাহরণগুলির মধ্যে রয়েছে:
- অফিস অ্যাপ্লিকেশন যেমন টেক্সট এডিটর, স্প্রেডশিট অ্যাপ এবং স্লাইডশো ক্রিয়েটর।
- গ্রাফিক্স সম্পাদক এবং অঙ্কন সরঞ্জাম।
- ভিডিও গেম লেভেল এডিটর টুল।
ফাইল হ্যান্ডলিং API কীভাবে ব্যবহার করবেন
প্রগতিশীল বর্ধন
ফাইল হ্যান্ডলিং API নিজেই পলিফিল করা যাবে না। তবে, ওয়েব অ্যাপ দিয়ে ফাইল খোলার কার্যকারিতা দুটি অন্য উপায়ে অর্জন করা যেতে পারে:
- ওয়েব শেয়ার টার্গেট এপিআই ডেভেলপারদের তাদের অ্যাপটিকে শেয়ার টার্গেট হিসেবে নির্দিষ্ট করতে দেয় যাতে অপারেটিং সিস্টেমের শেয়ার শিট থেকে ফাইলগুলি খোলা যায়।
- ফাইল সিস্টেম অ্যাক্সেস API ফাইল ড্র্যাগ এবং ড্রপের সাথে একীভূত করা যেতে পারে, যাতে ডেভেলপাররা ইতিমধ্যে খোলা অ্যাপে ফেলে দেওয়া ফাইলগুলি পরিচালনা করতে পারে।
ব্রাউজার সাপোর্ট
বৈশিষ্ট্য সনাক্তকরণ
ফাইল হ্যান্ডলিং API সমর্থিত কিনা তা পরীক্ষা করতে, ব্যবহার করুন:
if ('launchQueue' in window && 'files' in LaunchParams.prototype) {
// The File Handling API is supported.
}
ফাইল হ্যান্ডলিং API এর ঘোষণামূলক অংশ
প্রথম ধাপ হিসেবে, ওয়েব অ্যাপগুলিকে তাদের ওয়েব অ্যাপ ম্যানিফেস্টে ঘোষণামূলকভাবে বর্ণনা করতে হবে যে তারা কী ধরণের ফাইল পরিচালনা করতে পারে। ফাইল হ্যান্ডলিং API ওয়েব অ্যাপ ম্যানিফেস্টকে "file_handlers" নামক একটি নতুন বৈশিষ্ট্য দিয়ে প্রসারিত করে যা, ভাল, ফাইল হ্যান্ডলারের একটি অ্যারে গ্রহণ করে। একটি ফাইল হ্যান্ডলার হল এই বৈশিষ্ট্যগুলির সাথে একটি বস্তু:
- একটি
"action"প্রপার্টি যা অ্যাপের আওতার মধ্যে থাকা একটি URL-কে তার মান হিসেবে নির্দেশ করে। - একটি
"accept"বৈশিষ্ট্য যেখানে MIME-টাইপের একটি অবজেক্ট কী হিসেবে এবং ফাইল এক্সটেনশনের তালিকা তাদের মান হিসেবে থাকবে। -
ImageResourceআইকনগুলির একটি অ্যারে সহ একটি"icons"বৈশিষ্ট্য। কিছু অপারেটিং সিস্টেম একটি ফাইল টাইপ অ্যাসোসিয়েশনকে এমন একটি আইকন প্রদর্শন করতে দেয় যা কেবল সংশ্লিষ্ট অ্যাপ্লিকেশন আইকন নয়, বরং অ্যাপ্লিকেশনের সাথে সেই ফাইল টাইপের ব্যবহারের সাথে সম্পর্কিত একটি বিশেষ আইকন। - একটি
"launch_type"বৈশিষ্ট্য যা নির্ধারণ করে যে একাধিক ফাইল একক ক্লায়েন্টে খোলা উচিত নাকি একাধিক ক্লায়েন্টে। ডিফল্ট হল"single-client"। যদি ব্যবহারকারী একাধিক ফাইল খোলে এবং ফাইল হ্যান্ডলারটি"multiple-clients"এর"launch_type"হিসাবে টীকাযুক্ত থাকে, তাহলে একাধিক অ্যাপ লঞ্চ ঘটবে এবং প্রতিটি লঞ্চের জন্য,LaunchParams.filesঅ্যারে ( আরও নীচে দেখুন) শুধুমাত্র একটি উপাদান থাকবে।
নীচের উদাহরণটি, ওয়েব অ্যাপ ম্যানিফেস্টের শুধুমাত্র প্রাসঙ্গিক অংশটি দেখানোর মাধ্যমে, এটি আরও স্পষ্ট করে তোলা উচিত:
{
"file_handlers": [
{
"action": "/open-csv",
"accept": {
"text/csv": [".csv"]
},
"icons": [
{
"src": "csv-icon.png",
"sizes": "256x256",
"type": "image/png"
}
],
"launch_type": "single-client"
},
{
"action": "/open-svg",
"accept": {
"image/svg+xml": ".svg"
},
"icons": [
{
"src": "svg-icon.png",
"sizes": "256x256",
"type": "image/png"
}
],
"launch_type": "single-client"
},
{
"action": "/open-graf",
"accept": {
"application/vnd.grafr.graph": [".grafr", ".graf"],
"application/vnd.alternative-graph-app.graph": ".graph"
},
"icons": [
{
"src": "graf-icon.png",
"sizes": "256x256",
"type": "image/png"
}
],
"launch_type": "multiple-clients"
}
]
}
এটি একটি কাল্পনিক অ্যাপ্লিকেশনের জন্য যা /open-csv এ কমা-বিভাজিত মান ( .csv ) ফাইল, /open-svg এ স্কেলেবল ভেক্টর গ্রাফিক্স ( .svg ) ফাইল এবং /open-graf এ এক্সটেনশন হিসেবে .grafr , .graf , অথবা .graph সহ একটি তৈরি Grafr ফাইল ফর্ম্যাট পরিচালনা করে। প্রথম দুটি একক ক্লায়েন্টে খুলবে, যদি একাধিক ফাইল পরিচালনা করা হয় তবে শেষটি একাধিক ক্লায়েন্টে খুলবে।