আরও সমন্বিত অভিজ্ঞতার জন্য, ইনস্টল করা PWA-গুলোকে নির্দিষ্ট প্রোটোকল ব্যবহারকারী লিঙ্কগুলো পরিচালনা করতে দিন।
স্কিম (প্রোটোকল নামেও পরিচিত) সম্পর্কে পটভূমি
ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) হলো অক্ষরের একটি সংক্ষিপ্ত অনুক্রম যা একটি বিমূর্ত বা ভৌত সম্পদকে শনাক্ত করে। প্রতিটি URI একটি স্কিম নাম দিয়ে শুরু হয়, যা সেই স্কিমের মধ্যে আইডেন্টিফায়ার নির্ধারণের জন্য একটি স্পেসিফিকেশনকে নির্দেশ করে। এই হিসাবে, URI সিনট্যাক্স হলো একটি সমন্বিত এবং সম্প্রসারণযোগ্য নামকরণ ব্যবস্থা, যেখানে প্রতিটি স্কিমের স্পেসিফিকেশন সেই স্কিম ব্যবহারকারী আইডেন্টিফায়ারগুলির সিনট্যাক্স এবং অর্থকে আরও সীমাবদ্ধ করতে পারে। স্কিমগুলো প্রোটোকল নামেও পরিচিত। আপনি স্কিমের কিছু উদাহরণ দেখতে পারেন।
tel:+1-816-555-1212
mailto:Jane.Doe@example.com
news:comp.infosystems.www.servers.unix
https://web.dev/
ইউনিফর্ম রিসোর্স লোকেটর (URL) বলতে URI-এর সেই উপসেটকে বোঝায়, যা কোনো রিসোর্সকে শনাক্ত করার পাশাপাশি তার প্রাথমিক অ্যাক্সেস পদ্ধতি (যেমন, এর নেটওয়ার্ক অবস্থান) বর্ণনা করার মাধ্যমে রিসোর্সটির অবস্থান নির্ণয়ের একটি উপায় প্রদান করে।
registerProtocolHandler() পদ্ধতির পটভূমি
শুধুমাত্র সুরক্ষিত কন্টেন্টের জন্য ব্যবহৃত Navigator registerProtocolHandler() মেথডটি সাইটগুলোকে নির্দিষ্ট URL স্কিম খোলা বা পরিচালনা করার ক্ষমতা নিবন্ধন করতে দেয়। এজন্য, সাইটগুলোকে মেথডটি এভাবে কল করতে হবে: navigator.registerProtocolHandler(scheme, url) । দুটি প্যারামিটার নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
-
scheme: একটি স্ট্রিং, যাতে সাইটটি যে প্রোটোকলটি পরিচালনা করতে চায় তা উল্লেখ থাকে। -
url: হ্যান্ডলারের URL ধারণকারী একটি স্ট্রিং। এই URL-এ অবশ্যই%sঅন্তর্ভুক্ত থাকতে হবে, যা একটি প্লেসহোল্ডার হিসেবে কাজ করবে এবং হ্যান্ডেল করার জন্য এস্কেপড URL দ্বারা প্রতিস্থাপিত হবে।
স্কিমটি অবশ্যই নিরাপদ তালিকাভুক্ত স্কিমগুলির মধ্যে একটি হতে হবে (উদাহরণস্বরূপ, mailto , bitcoin , বা magnet ) অথবা web+ দিয়ে শুরু হতে হবে, এবং web+ উপসর্গের পরে কমপক্ষে একটি বা তার বেশি ছোট হাতের ASCII অক্ষর থাকতে হবে, যেমন web+coffee ।
বিষয়টি আরও স্পষ্ট করার জন্য, এখানে প্রবাহটির একটি বাস্তব উদাহরণ দেওয়া হলো:
- ব্যবহারকারী
https://coffeeshop.example.com/সাইটটি পরিদর্শন করেন, যেটি নিম্নলিখিত কলটি করে:navigator.registerProtocolHandler('web+coffee', 'coffee?type=%s')। - পরবর্তীতে,
https://randomsite.example.com/পরিদর্শন করার সময়, ব্যবহারকারী<a href="web+coffee:latte-macchiato">All about latte macchiato</a>এর মতো কোনো লিঙ্কে ক্লিক করেন। - এর ফলে ব্রাউজারটি নিম্নলিখিত URL-এ চলে যায়:
https://coffeeshop.example.com/coffee?type=web%2Bcoffee%3A%2F%2Flatte-macchiato। এরপর URL ডিকোড করার পর সার্চ স্ট্রিংটি হয়?type=web+coffee://latte-macchiato।
প্রোটোকল হ্যান্ডলিং বলতে কী বোঝায়
PWA-এর জন্য বর্তমান ইউআরএল প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন পদ্ধতিটি হলো, একটি PWA ইনস্টলেশনের অংশ হিসেবে এর ম্যানিফেস্টের মাধ্যমে প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশনের সুযোগ দেওয়া। একটি PWA-কে প্রোটোকল হ্যান্ডলার হিসেবে রেজিস্টার করার পর, যখন কোনো ব্যবহারকারী ব্রাউজার বা প্ল্যাটফর্ম-নির্দিষ্ট অ্যাপ থেকে mailto , bitcoin , বা web+music মতো কোনো নির্দিষ্ট স্কিমযুক্ত হাইপারলিঙ্কে ক্লিক করেন, তখন রেজিস্টার করা PWA-টি খুলে যাবে এবং ইউআরএলটি গ্রহণ করবে। এটি উল্লেখ্য যে, প্রস্তাবিত ম্যানিফেস্ট-ভিত্তিক রেজিস্ট্রেশন এবং প্রচলিত registerProtocolHandler() উভয়ই বাস্তবে প্রায় একই ধরনের ভূমিকা পালন করে, এবং একই সাথে পরিপূরক ব্যবহারকারী-অভিজ্ঞতার সম্ভাবনাও রাখে।
- সাদৃশ্যগুলোর মধ্যে রয়েছে নিবন্ধনের জন্য অনুমোদিত প্রকল্পগুলোর তালিকা সংক্রান্ত শর্তাবলী, এবং পরামিতিগুলোর নাম ও বিন্যাস ইত্যাদি।
- ম্যানিফেস্ট-ভিত্তিক নিবন্ধনের পার্থক্যগুলো সূক্ষ্ম, কিন্তু PWA ব্যবহারকারীদের অভিজ্ঞতা উন্নত করতে তা সহায়ক হতে পারে। উদাহরণস্বরূপ, ম্যানিফেস্ট-ভিত্তিক PWA নিবন্ধনের জন্য ব্যবহারকারীর নিজস্ব উদ্যোগে PWA ইনস্টলেশন ছাড়া অন্য কোনো অতিরিক্ত পদক্ষেপের প্রয়োজন নাও হতে পারে।
ব্যবহারের ক্ষেত্র
- একটি ওয়ার্ড প্রসেসিং PWA-তে, ব্যবহারকারী কোনো ডকুমেন্টে
web+presentations://deck2378465মতো একটি প্রেজেন্টেশনের লিঙ্ক দেখতে পান। যখন ব্যবহারকারী লিঙ্কটিতে ক্লিক করেন, তখন প্রেজেন্টেশন PWA-টি স্বয়ংক্রিয়ভাবে সঠিক স্কোপে খুলে যায় এবং স্লাইড ডেকটি প্রদর্শন করে। - প্ল্যাটফর্ম-নির্দিষ্ট কোনো চ্যাট অ্যাপে, ব্যবহারকারী চ্যাট মেসেজে একটি
magnetইউআরএল-এর লিঙ্ক পান। লিঙ্কটিতে ক্লিক করলে, ইনস্টল করা একটি টরেন্ট পিডব্লিউএ চালু হয়ে ডাউনলোড শুরু করে। - ব্যবহারকারীর একটি মিউজিক স্ট্রিমিং PWA ইনস্টল করা আছে। যখন কোনো বন্ধু
web+music://songid=1234&time=0:13মতো কোনো গানের লিঙ্ক শেয়ার করে এবং ব্যবহারকারী তাতে ক্লিক করেন, তখন মিউজিক স্ট্রিমিং PWA-টি স্বয়ংক্রিয়ভাবে একটি আলাদা উইন্ডোতে চালু হয়ে যাবে।
PWA-এর জন্য URL প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন কীভাবে ব্যবহার করবেন
ইউআরএল প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশনের এপিআইটি navigator.registerProtocolHandler() -এর আদলে তৈরি করা হয়েছে। তবে এক্ষেত্রে, ওয়েব অ্যাপ ম্যানিফেস্ট ব্যবহার করে "protocol_handlers" নামক একটি নতুন প্রপার্টির মাধ্যমে তথ্য ডিক্লারেটিভভাবে পাস করা হয়। এই প্রপার্টিটি "protocol" এবং "url" নামক দুটি প্রয়োজনীয় কী-সহ অবজেক্টের একটি অ্যারে গ্রহণ করে। নিচের কোড স্নিপেটটি দেখায় কিভাবে web+tea এবং web+coffee রেজিস্টার করতে হয়। ভ্যালুগুলো হলো স্ট্রিং, যেগুলোতে হ্যান্ডলারের ইউআরএল এবং এস্কেপড ইউআরএল-এর জন্য প্রয়োজনীয় %s প্লেসহোল্ডার থাকে।
{
"protocol_handlers": [
{
"protocol": "web+tea",
"url": "/tea?type=%s"
},
{
"protocol": "web+coffee",
"url": "/coffee?type=%s"
}
]
}
একই প্রোটোকলের জন্য একাধিক অ্যাপের নিবন্ধন
যদি একাধিক অ্যাপ্লিকেশন একই স্কিমের জন্য, যেমন mailto প্রোটোকলের জন্য, নিজেদের হ্যান্ডলার হিসেবে নিবন্ধন করে, তাহলে অপারেটিং সিস্টেম ব্যবহারকারীকে একটি পিকার দেখাবে এবং নিবন্ধিত হ্যান্ডলারগুলোর মধ্যে কোনটি ব্যবহার করা হবে, তা তাকে বেছে নিতে দেবে।
একই অ্যাপ একাধিক প্রোটোকলের জন্য নিবন্ধন করছে
একই অ্যাপ একাধিক প্রোটোকলের জন্য নিজেকে নিবন্ধন করতে পারে, যেমনটি আপনি কোড নমুনায় দেখতে পাচ্ছেন।
অ্যাপ আপডেট এবং হ্যান্ডলার নিবন্ধন
হ্যান্ডলার রেজিস্ট্রেশনগুলো অ্যাপ দ্বারা প্রদত্ত সর্বশেষ ম্যানিফেস্ট সংস্করণের সাথে সিঙ্ক্রোনাইজ করা হয়। এর দুটি ক্ষেত্র রয়েছে:
- যে আপডেটে নতুন হ্যান্ডলার যুক্ত হয়, তা হ্যান্ডলার রেজিস্ট্রেশনকে সক্রিয় করে (যা অ্যাপ ইনস্টলেশন থেকে আলাদা)।
- যে আপডেট হ্যান্ডলারগুলি সরিয়ে দেয়, তা হ্যান্ডলারের নিবন্ধন বাতিল করে (অ্যাপ আনইনস্টলেশন থেকে আলাদাভাবে)।
DevTools-এ প্রোটোকল হ্যান্ডলার ডিবাগিং
অ্যাপ্লিকেশন > ম্যানিফেস্ট প্যান ব্যবহার করে প্রোটোকল হ্যান্ডলার বিভাগে যান। এখানে আপনি উপলব্ধ সমস্ত প্রোটোকল দেখতে এবং পরীক্ষা করতে পারবেন।

নিরাপত্তা সংক্রান্ত বিবেচনা
যেহেতু PWA ইনস্টলেশনের জন্য কনটেক্সটকে সুরক্ষিত হতে হয়, তাই প্রোটোকল হ্যান্ডলিংও এই সীমাবদ্ধতা মেনে চলে। নিবন্ধিত প্রোটোকল হ্যান্ডলারদের তালিকা কোনোভাবেই ওয়েবে প্রকাশ করা হয় না, ফলে এটিকে ফিঙ্গারপ্রিন্টিং ভেক্টর হিসেবে ব্যবহার করা যায় না।
ব্যবহারকারী-প্রবর্তিত নয় এমন নেভিগেশন প্রচেষ্টা
ব্যবহারকারীর দ্বারা শুরু করা হয়নি, কিন্তু প্রোগ্রাম্যাটিক এমন নেভিগেশন প্রচেষ্টা অ্যাপ খুলতে পারবে না। কাস্টম প্রোটোকল ইউআরএল শুধুমাত্র টপ-লেভেল ব্রাউজিং প্রসঙ্গে ব্যবহার করা যেতে পারে, কিন্তু উদাহরণস্বরূপ, একটি আইফ্রেমের ইউআরএল হিসাবে নয়।
প্রোটোকলের অনুমোদিত তালিকা
registerProtocolHandler() -এর মতোই, প্রোটোকলগুলির একটি অনুমোদিত তালিকা (allowlist) রয়েছে, যেগুলি অ্যাপগুলি পরিচালনা করার জন্য নিবন্ধন করতে পারে।
সম্মতির অনুরোধ
কোনো প্রোটোকল চালু হওয়ার কারণে PWA প্রথমবার চালু হলে, ব্যবহারকারীর সামনে একটি অনুমতির ডায়ালগ বক্স আসবে। এই ডায়ালগ বক্সে অ্যাপটির নাম ও উৎস দেখানো হবে এবং ব্যবহারকারীকে জিজ্ঞাসা করা হবে যে অ্যাপটিকে উক্ত প্রোটোকলের লিঙ্কগুলো পরিচালনা করার অনুমতি দেওয়া হয়েছে কিনা। যদি কোনো ব্যবহারকারী অনুমতির ডায়ালগ বক্সটি প্রত্যাখ্যান করেন, তবে নিবন্ধিত প্রোটোকল হ্যান্ডলারটিকে অপারেটিং সিস্টেম উপেক্ষা করবে। প্রোটোকল হ্যান্ডলারটির নিবন্ধন বাতিল করতে হলে, ব্যবহারকারীকে সেই PWA-টি আনইনস্টল করতে হবে যা এটিকে নিবন্ধন করেছিল। যদি ব্যবহারকারী "আমার পছন্দ মনে রাখুন" (Remember my choice) বিকল্পটি বেছে নিয়ে "অনুমতি দেবেন না" (Disallow) নির্বাচন করেন, তাহলে ব্রাউজারও প্রোটোকল হ্যান্ডলারটির নিবন্ধন বাতিল করে দেবে।
প্রতিক্রিয়া
PWA-এর জন্য URL প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন বিষয়ে আপনার অভিজ্ঞতা সম্পর্কে ক্রোমিয়াম টিম জানতে আগ্রহী।
এপিআই ডিজাইন সম্পর্কে আমাদের বলুন
এপিআই-এর এমন কিছু কি আছে যা আপনার প্রত্যাশা অনুযায়ী কাজ করছে না? অথবা আপনার ধারণাটি বাস্তবায়নের জন্য প্রয়োজনীয় কোনো মেথড বা প্রপার্টি কি অনুপস্থিত? নিরাপত্তা মডেল সম্পর্কে আপনার কোনো প্রশ্ন বা মন্তব্য আছে? সংশ্লিষ্ট গিটহাব রিপোজিটরিতে একটি স্পেক ইস্যু ফাইল করুন, অথবা বিদ্যমান কোনো ইস্যুতে আপনার মতামত যোগ করুন।
বাস্তবায়নে কোনো সমস্যা থাকলে রিপোর্ট করুন।
আপনি কি ক্রোমিয়ামের বাস্তবায়নে কোনো বাগ খুঁজে পেয়েছেন? অথবা এর বাস্তবায়ন কি স্পেসিফিকেশন থেকে ভিন্ন? new.crbug.com- এ একটি বাগ রিপোর্ট করুন। যতটা সম্ভব বিস্তারিত তথ্য, বাগটি পুনরায় তৈরি করার নির্দেশাবলী অন্তর্ভুক্ত করতে ভুলবেন না এবং Components বক্সে UI>Browser>WebAppInstalls লিখুন।
এপিআই-এর প্রতি সমর্থন দেখান
আপনি কি PWA-এর জন্য URL প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন ব্যবহার করার পরিকল্পনা করছেন? আপনার প্রকাশ্য সমর্থন ক্রোমিয়াম টিমকে ফিচারগুলোকে অগ্রাধিকার দিতে সাহায্য করে এবং অন্যান্য ব্রাউজার বিক্রেতাদের দেখায় যে এগুলোর সমর্থন করা কতটা জরুরি।
আপনি এটি কীভাবে ব্যবহার করার পরিকল্পনা করছেন, তা WICG ডিসকোর্স থ্রেডে শেয়ার করুন। #ProtocolHandler হ্যাশট্যাগটি ব্যবহার করে @ChromiumDev- কে একটি টুইট পাঠান এবং আমাদের জানান যে আপনি এটি কোথায় ও কীভাবে ব্যবহার করছেন।
দরকারী লিঙ্ক
কৃতজ্ঞতা স্বীকার
PWA-এর জন্য ইউআরএল প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন মাইক্রোসফট এজ টিমের ফ্যাবিও রোচা , দিয়েগো গঞ্জালেস , কনর মুডি এবং স্যামুয়েল ট্যাং দ্বারা বাস্তবায়িত ও নির্দিষ্ট করা হয়েছিল। এই নথিটি জো মেডলি এবং ফ্যাবিও রোচা দ্বারা পর্যালোচনা করা হয়েছিল।