ইনস্টল করা PWA-গুলিকে এমন লিঙ্কগুলি পরিচালনা করতে দিন যা আরও সমন্বিত অভিজ্ঞতার জন্য একটি নির্দিষ্ট প্রোটোকল ব্যবহার করে।
স্কিমগুলির পটভূমি (ওরফে। প্রোটোকল)
একটি ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (ইউআরআই) অক্ষরের একটি কমপ্যাক্ট ক্রম যা একটি বিমূর্ত বা শারীরিক সম্পদ সনাক্ত করে। প্রতিটি URI একটি স্কিমের নাম দিয়ে শুরু হয় যা সেই স্কিমের মধ্যে শনাক্তকারী বরাদ্দ করার জন্য একটি স্পেসিফিকেশন নির্দেশ করে। যেমন, ইউআরআই সিনট্যাক্স হল একটি ফেডারেটেড এবং এক্সটেনসিবল নামকরণ সিস্টেম যেখানে প্রতিটি স্কিমের স্পেসিফিকেশন সেই স্কিম ব্যবহার করে শনাক্তকারীর সিনট্যাক্স এবং শব্দার্থবিদ্যাকে আরও সীমাবদ্ধ করতে পারে। স্কিমগুলি প্রোটোকল হিসাবেও পরিচিত। আপনি নীচে স্কিম কিছু উদাহরণ দেখতে পারেন.
tel:+1-816-555-1212
mailto:Jane.Doe@example.com
news:comp.infosystems.www.servers.unix
https://web.dev/
ইউনিফর্ম রিসোর্স লোকেটার (ইউআরএল) শব্দটি ইউআরআই-এর উপসেটকে বোঝায় যেগুলি, একটি সংস্থান সনাক্ত করার পাশাপাশি, এটির প্রাথমিক অ্যাক্সেস প্রক্রিয়া (যেমন, এটির নেটওয়ার্ক অবস্থান) বর্ণনা করে সংস্থানটি সনাক্ত করার একটি উপায় প্রদান করে।
registerProtocolHandler()
পদ্ধতির পটভূমি
সুরক্ষিত-কন্টেন্ট-শুধুমাত্র Navigator
পদ্ধতি registerProtocolHandler()
সাইটগুলিকে নির্দিষ্ট URL স্কিমগুলি খুলতে বা পরিচালনা করার ক্ষমতা নিবন্ধন করতে দেয়। অতএব, সাইটগুলিকে এই পদ্ধতিতে কল করতে হবে: navigator.registerProtocolHandler(scheme, url)
। দুটি পরামিতি নিম্নরূপ সংজ্ঞায়িত করা হয়:
-
scheme
: সাইটটি পরিচালনা করতে চায় এমন প্রোটোকল ধারণকারী একটি স্ট্রিং। -
url
: হ্যান্ডলারের URL ধারণকারী একটি স্ট্রিং। এই ইউআরএলে অবশ্যই%s
অন্তর্ভুক্ত থাকতে হবে, একটি প্লেসহোল্ডার হিসেবে যা হ্যান্ডেল করার জন্য পালিয়ে যাওয়া ইউআরএল দিয়ে প্রতিস্থাপিত হবে।
স্কিমটি অবশ্যই নিরাপদ তালিকাভুক্ত স্কিমগুলির একটি হতে হবে (উদাহরণস্বরূপ, 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
। সার্চ স্ট্রিং ইউআরএল-ডিকোড তারপর পড়ে?type=web+coffee://latte-macchiato
।
প্রোটোকল হ্যান্ডলিং সম্পর্কে কি
PWAs প্রক্রিয়ার জন্য বর্তমান URL প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশনটি তার ম্যানিফেস্টের মাধ্যমে একটি PWA ইনস্টলেশনের অংশ হিসাবে প্রোটোকল হ্যান্ডলার নিবন্ধন প্রদানের বিষয়ে। একটি প্রোটোকল হ্যান্ডলার হিসাবে একটি PWA নিবন্ধন করার পরে, যখন কোনও ব্যবহারকারী একটি নির্দিষ্ট স্কিম যেমন mailto
, bitcoin
, বা web+music
সহ একটি ব্রাউজার বা একটি প্ল্যাটফর্ম-নির্দিষ্ট অ্যাপ থেকে একটি হাইপারলিঙ্কে ক্লিক করেন, তখন নিবন্ধিত PWA খুলবে এবং URLটি গ্রহণ করবে৷ এটি লক্ষ্য করা গুরুত্বপূর্ণ যে প্রস্তাবিত ম্যানিফেস্ট-ভিত্তিক নিবন্ধন এবং ঐতিহ্যগত registerProtocolHandler()
উভয়ই অনুশীলনে খুব একই ভূমিকা পালন করে, যদিও এখনও পরিপূরক ব্যবহারকারী-অভিজ্ঞতার সম্ভাবনাকে অনুমতি দেয়:
- সাদৃশ্যগুলির মধ্যে নিবন্ধিত হওয়ার জন্য অনুমোদিত স্কিমগুলির তালিকার প্রয়োজনীয়তা এবং প্যারামিটারগুলির নাম এবং বিন্যাস ইত্যাদি অন্তর্ভুক্ত রয়েছে।
- ম্যানিফেস্ট-ভিত্তিক নিবন্ধনের পার্থক্যগুলি সূক্ষ্ম, কিন্তু PWA ব্যবহারকারীদের জন্য অভিজ্ঞতা বাড়ানোর জন্য কার্যকর হতে পারে। উদাহরণস্বরূপ, ম্যানিফেস্ট-ভিত্তিক PWA রেজিস্ট্রেশনের জন্য PWA-এর ব্যবহারকারী-সূচিত ইনস্টলেশন ছাড়াও অতিরিক্ত ব্যবহারকারীর পদক্ষেপের প্রয়োজন নাও হতে পারে।
কেস ব্যবহার করুন
- একটি ওয়ার্ড প্রসেসিং PWA-তে, একটি নথিতে ব্যবহারকারী
web+presentations://deck2378465
মতো একটি উপস্থাপনার একটি লিঙ্কের সম্মুখীন হয়। যখন ব্যবহারকারী লিঙ্কে ক্লিক করেন, উপস্থাপনা PWA স্বয়ংক্রিয়ভাবে সঠিক সুযোগে খোলে এবং স্লাইড ডেক দেখায়। - একটি প্ল্যাটফর্ম-নির্দিষ্ট চ্যাট অ্যাপে, একটি চ্যাট বার্তার ব্যবহারকারী একটি
magnet
URL-এর একটি লিঙ্ক পায়। লিঙ্কটি ক্লিক করার পরে, একটি ইনস্টল করা টরেন্ট PWA চালু হয় এবং ডাউনলোড শুরু হয়। - ব্যবহারকারীর একটি সঙ্গীত স্ট্রিমিং PWA ইনস্টল করা আছে। যখন একজন বন্ধু
web+music://songid=1234&time=0:13
মতো একটি গানের লিঙ্ক শেয়ার করে এবং ব্যবহারকারী এটিতে ক্লিক করে, তখন মিউজিক স্ট্রিমিং PWA স্বয়ংক্রিয়ভাবে একটি স্বতন্ত্র উইন্ডোতে চালু হবে।
PWAs-এর জন্য ইউআরএল প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন কীভাবে ব্যবহার করবেন
URL প্রোটোকল হ্যান্ডলার নিবন্ধনের জন্য APIটি 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 ইনস্টল করুন। প্রোটোকল হ্যান্ডলার বিভাগে, "আমেরিকানো" টাইপ করুন এবং PWA-তে কফি পৃষ্ঠা খুলতে টেস্ট প্রোটোকল ক্লিক করুন।
ডেমো
আপনি Glitch-এ PWA-এর জন্য URL প্রোটোকল হ্যান্ডলার নিবন্ধনের একটি ডেমো দেখতে পারেন।
- https://protocol-handler.glitch.me/ এ যান, PWA ইনস্টল করুন এবং ইনস্টলেশনের পরে অ্যাপটি পুনরায় লোড করুন। ব্রাউজারটি এখন অপারেটিং সিস্টেমের সাথে
web+coffee
প্রোটোকলের জন্য একটি হ্যান্ডলার হিসাবে PWA নিবন্ধন করেছে। - ইনস্টল করা PWA উইন্ডোতে, https://protocol-handler-link.glitch.me/ লিঙ্কে ক্লিক করুন। এটি তিনটি লিঙ্ক সহ একটি নতুন ব্রাউজার ট্যাব খুলবে। প্রথম বা দ্বিতীয় (latte macchiato বা americano) এ ক্লিক করুন। ব্রাউজারটি এখন আপনাকে একটি প্রম্পট দেখাবে এবং জিজ্ঞাসা করবে যে আপনি
web+coffee
প্রোটোকলের জন্য একটি প্রোটোকল হ্যান্ডলার হওয়ায় অ্যাপটি ঠিক আছে কিনা। আপনি সম্মত হলে, PWA খুলবে এবং নির্বাচিত কফি দেখাবে। -
navigator.registerProtocolHandler()
ব্যবহার করে প্রচলিত প্রবাহের সাথে তুলনা করতে, PWA-তে রেজিস্টার প্রোটোকল হ্যান্ডলার বোতামে ক্লিক করুন। তারপর ব্রাউজার ট্যাবে তৃতীয় লিঙ্কে ক্লিক করুন (চাই)। এটি একইভাবে একটি প্রম্পট দেখাবে, কিন্তু তারপর একটি ট্যাবে PWA খুলবে, ব্রাউজার উইন্ডোতে নয়। -
<a href="web+coffee://americano">Americano</a>
মতো লিঙ্ক সহ Windows-এ স্কাইপের মতো একটি প্ল্যাটফর্ম-নির্দিষ্ট অ্যাপ্লিকেশনে নিজেকে একটি বার্তা পাঠান এবং এটিতে ক্লিক করুন৷ এটি একইভাবে ইনস্টল করা PWA খুলতে হবে।
নিরাপত্তা বিবেচনা
যেহেতু PWA ইন্সটলেশনের জন্য প্রেক্ষাপট সুরক্ষিত থাকা প্রয়োজন, প্রোটোকল হ্যান্ডলিং এই সীমাবদ্ধতা উত্তরাধিকারসূত্রে পায়। নিবন্ধিত প্রোটোকল হ্যান্ডলারের তালিকা কোনোভাবেই ওয়েবে প্রকাশ করা হয় না তাই এটিকে ফিঙ্গারপ্রিন্টিং ভেক্টর হিসেবে ব্যবহার করা যাবে না।
অ ব্যবহারকারী-সূচিত নেভিগেশন প্রচেষ্টা
ন্যাভিগেশন প্রচেষ্টা যা ব্যবহারকারীর দ্বারা শুরু হয় না, কিন্তু যেগুলি প্রোগ্রাম্যাটিক, অ্যাপগুলি নাও খুলতে পারে৷ কাস্টম প্রোটোকল URL শুধুমাত্র শীর্ষ-স্তরের ব্রাউজিং প্রসঙ্গে ব্যবহার করা যেতে পারে, কিন্তু নয়, উদাহরণস্বরূপ, একটি iframe এর URL হিসাবে৷
প্রোটোকলের অনুমোদিত তালিকা
registerProtocolHandler()
এর মতোই প্রোটোকলগুলির একটি অনুমোদিত তালিকা রয়েছে যা অ্যাপগুলি পরিচালনা করতে নিবন্ধন করতে পারে।
সম্মতি প্রম্পট
একটি আহ্বান করা প্রোটোকলের কারণে PWA এর প্রথম লঞ্চে, ব্যবহারকারীকে একটি অনুমতি ডায়ালগ উপস্থাপন করা হবে। এই ডায়ালগটি অ্যাপের নাম এবং অ্যাপটির উত্স প্রদর্শন করবে এবং ব্যবহারকারীকে জিজ্ঞাসা করবে যে অ্যাপটিকে প্রোটোকল থেকে লিঙ্কগুলি পরিচালনা করার অনুমতি দেওয়া হয়েছে কিনা। যদি একজন ব্যবহারকারী অনুমতি ডায়ালগ প্রত্যাখ্যান করে, নিবন্ধিত প্রোটোকল হ্যান্ডলার অপারেটিং সিস্টেম দ্বারা উপেক্ষা করা হবে। প্রোটোকল হ্যান্ডলারটিকে নিবন্ধনমুক্ত করতে, ব্যবহারকারীকে এটি নিবন্ধিত PWA আনইনস্টল করতে হবে। ব্যবহারকারী যদি "আমার পছন্দ মনে রাখবেন" নির্বাচন করে এবং "অস্বীকৃতি" নির্বাচন করে তবে ব্রাউজারটি প্রোটোকল হ্যান্ডলারটিকে নিবন্ধনমুক্ত করবে।
প্রতিক্রিয়া
Chromium টিম PWA-এর জন্য URL প্রোটোকল হ্যান্ডলার নিবন্ধনের সাথে আপনার অভিজ্ঞতার কথা শুনতে চায়।
API ডিজাইন সম্পর্কে আমাদের বলুন
API সম্পর্কে এমন কিছু আছে যা আপনার প্রত্যাশিত মত কাজ করে না? অথবা আপনার ধারণা বাস্তবায়নের জন্য আপনার প্রয়োজনীয় পদ্ধতি বা বৈশিষ্ট্যগুলি অনুপস্থিত আছে? নিরাপত্তা মডেল সম্পর্কে একটি প্রশ্ন বা মন্তব্য আছে? সংশ্লিষ্ট গিটহাব রেপোতে একটি বিশেষ সমস্যা ফাইল করুন, বা বিদ্যমান সমস্যাটিতে আপনার চিন্তা যোগ করুন।
বাস্তবায়নের সাথে একটি সমস্যা রিপোর্ট করুন
আপনি কি Chromium এর বাস্তবায়নের সাথে একটি বাগ খুঁজে পেয়েছেন? অথবা বাস্তবায়ন বৈশিষ্ট থেকে ভিন্ন? new.crbug.com এ একটি বাগ ফাইল করুন। আপনি যতটা পারেন বিশদ অন্তর্ভুক্ত করতে ভুলবেন না, পুনরুত্পাদনের জন্য সহজ নির্দেশাবলী, এবং উপাদান বাক্সে UI>Browser>WebAppInstalls
লিখুন। দ্রুত এবং সহজ রিপ্রো শেয়ার করার জন্য গ্লিচ দুর্দান্ত কাজ করে।
API এর জন্য সমর্থন দেখান
আপনি কি PWA-এর জন্য URL প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন ব্যবহার করার পরিকল্পনা করছেন? আপনার সর্বজনীন সমর্থন Chromium টিমকে বৈশিষ্ট্যগুলিকে অগ্রাধিকার দিতে সাহায্য করে এবং অন্যান্য ব্রাউজার বিক্রেতাদের দেখায় যে তাদের সমর্থন করা কতটা গুরুত্বপূর্ণ৷
WICG ডিসকোর্স থ্রেডে আপনি কীভাবে এটি ব্যবহার করার পরিকল্পনা করছেন তা শেয়ার করুন। হ্যাশট্যাগ #ProtocolHandler
ব্যবহার করে @ChromiumDev- এ একটি টুইট পাঠান এবং আপনি কোথায় এবং কীভাবে এটি ব্যবহার করছেন তা আমাদের জানান।
দরকারী লিঙ্ক
স্বীকৃতি
PWA-এর জন্য ইউআরএল প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন মাইক্রোসফ্ট এজ টিমের ফ্যাবিও রোচা , ডিয়েগো গঞ্জালেজ , কনর মুডি এবং স্যামুয়েল ট্যাং দ্বারা বাস্তবায়িত এবং নির্দিষ্ট করা হয়েছিল। এই নিবন্ধটি জো মেডলি এবং ফ্যাবিও রোচা দ্বারা পর্যালোচনা করা হয়েছে। আনস্প্ল্যাশে জেজে ইং দ্বারা নায়কের ছবি।