পিডব্লুএ(PWA)-এর জন্য URL প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন

আরও ইন্টিগ্রেটেড অভিজ্ঞতার জন্য ইনস্টল করা 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() পদ্ধতি সম্পর্কে তথ্য

secure-content-only Navigator পদ্ধতি registerProtocolHandler() সাইটগুলিকে নির্দিষ্ট URL স্কিম খোলার বা পরিচালনা করার ক্ষমতা রেজিস্টার করতে দেয়। তাই, সাইটকে এইভাবে মেথড কল করতে হবে: navigator.registerProtocolHandler(scheme, url)। দুটি প্যারামিটারকে নিম্নলিখিতভাবে সংজ্ঞায়িত করা হয়:

  • scheme: সাইট যে প্রোটোকল ম্যানেজ করতে চায় সেটি সহ স্ট্রিং।
  • url: হ্যান্ডলারের URL সহ স্ট্রিং। এই URL-এ প্লেসহোল্ডার হিসেবে %s অন্তর্ভুক্ত করতে হবে যা ম্যানেজ করার জন্য এস্কেপ করা URL দিয়ে পরিবর্তন করা হবে।

স্কিমটি হয় অনুমোদিত এন্টিটির তালিকায় অন্তর্ভুক্ত স্কিম (যেমন, mailto, bitcoin বা magnet) হতে হবে অথবা web+ দিয়ে শুরু হতে হবে, যার পরে web+ প্রিফিক্সের পরে অন্তত একটি বা তার বেশি ছোট হাতের ASCII অক্ষর থাকতে হবে, যেমন web+coffee।

এটি আরও স্পষ্ট করতে, এখানে ফ্লোয়ের একটি নির্দিষ্ট উদাহরণ দেওয়া হল:

  1. ব্যবহারকারী https://coffeeshop.example.com/-এ একটি সাইট ভিজিট করেন যা নিম্নলিখিত কল করে: navigator.registerProtocolHandler('web+coffee', 'coffee?type=%s').
  2. পরে, https://randomsite.example.com/ ভিজিট করার সময়, ব্যবহারকারী <a href="web+coffee:latte-macchiato">All about latte macchiato</a>-এর মতো কোনও লিঙ্কে ক্লিক করেন।
  3. এর ফলে ব্রাউজার নিম্নলিখিত URL-এ নেভিগেট করে: https://coffeeshop.example.com/coffee?type=web%2Bcoffee%3A%2F%2Flatte-macchiato. সার্চ স্ট্রিং URL ডিকোড করা হয়েছে, তারপর ?type=web+coffee://latte-macchiato পড়ে।

প্রোটোকল হ্যান্ডলিং কী

বর্তমান পিডব্লুএ(PWA)-এর জন্য 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 অটোমেটিক একটি স্ট্যান্ডঅ্যালোন উইন্ডোতে চালু হয়ে যাবে।

পিডব্লুএ(PWA)-এর জন্য URL প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন কীভাবে ব্যবহার করবেন

URL প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশনের জন্য API-কে navigator.registerProtocolHandler()-এর সাথে ঘনিষ্ঠভাবে মডেল করা হয়েছে। শুধু এইবার তথ্যটি "protocol_handlers" নামক একটি নতুন প্রপার্টিতে ওয়েব অ্যাপ ম্যানিফেস্ট ব্যবহার করে ঘোষণামূলকভাবে পাস করা হয় যা "protocol" এবং "url", এই দুটি প্রয়োজনীয় কী সহ অবজেক্টের একটি অ্যারে নেয়। নিম্নলিখিত কোড স্নিপেট থেকে জানতে পারবেন কীভাবে web+tea ও web+coffee রেজিস্টার করতে হয়। ভ্যালু হল স্ট্রিং যাতে হ্যান্ডলারের URL থাকে এবং এস্কেপ করা URL-এর জন্য প্রয়োজনীয় %s প্লেসহোল্ডার থাকে।

{
  "protocol_handlers": [
    {
      "protocol": "web+tea",
      "url": "/tea?type=%s"
    },
    {
      "protocol": "web+coffee",
      "url": "/coffee?type=%s"
    }
  ]
}

একাধিক অ্যাপ একই প্রোটোকলের জন্য রেজিস্টার করছে

একাধিক অ্যাপ্লিকেশন একই স্কিমের জন্য হ্যান্ডলার হিসেবে নিজেদের রেজিস্টার করলে, যেমন, mailto প্রোটোকল, অপারেটিং সিস্টেম ব্যবহারকারীকে একটি পিকার দেখাবে এবং রেজিস্টার করা হ্যান্ডলারগুলির মধ্যে কোনটি ব্যবহার করতে হবে তা তাদের সিদ্ধান্ত নিতে দেবে।

একাধিক প্রোটোকলের জন্য একই অ্যাপ রেজিস্টার করা হচ্ছে

কোড স্যাম্পেলে যেমন দেখানো হয়েছে, একই অ্যাপ একাধিক প্রোটোকলের জন্য নিজেকে রেজিস্টার করতে পারে।

অ্যাপ আপডেট ও হ্যান্ডলার রেজিস্ট্রেশন

অ্যাপের মাধ্যমে প্রদান করা লেটেস্ট ম্যানিফেস্ট ভার্সনের সাথে হ্যান্ডলার রেজিস্ট্রেশন সিঙ্ক করা হয়। দুটি কেস আছে:

  • নতুন হ্যান্ডলার যোগ করে এমন একটি আপডেট হ্যান্ডলার রেজিস্ট্রেশন ট্রিগার করে (অ্যাপ ইনস্টলেশন থেকে আলাদা)।
  • হ্যান্ডলার সরিয়ে দেয় এমন আপডেট হ্যান্ডলার আনরেজিস্ট্রেশন ট্রিগার করে (অ্যাপ আনইনস্টলেশন থেকে আলাদা)।

DevTools-এ প্রোটোকল হ্যান্ডলার ডিবাগিং

অ্যাপ্লিকেশন > ম্যানিফেস্ট প্যানেল ব্যবহার করে প্রোটোকল হ্যান্ডলার বিভাগে যান। আপনি এখানে উপলভ্য সব প্রোটোকল দেখতে ও পরীক্ষা করতে পারবেন।

ম্যানিফেস্ট প্যানে প্রোটোকল হ্যান্ডলার

নিরাপত্তা সংক্রান্ত বিষয়

যেহেতু PWA ইনস্টলেশনের জন্য প্রসঙ্গটি সুরক্ষিত হতে হবে, তাই প্রোটোকল হ্যান্ডলিং এই সীমাবদ্ধতা উত্তরাধিকারসূত্রে পায়। রেজিস্টার করা প্রোটোকল হ্যান্ডলারের তালিকা কোনওভাবেই ওয়েবে প্রকাশ করা হয় না, তাই এটি ফিঙ্গারপ্রিন্টিং ভেক্টর হিসেবে ব্যবহার করা যাবে না।

ব্যবহারকারী শুরু করেননি এমন নেভিগেশনের চেষ্টা

ব্যবহারকারী শুরু করেননি, কিন্তু প্রোগ্রাম্যাটিক নেভিগেশনের চেষ্টা করা হলে, অ্যাপ নাও খুলতে পারে। কাস্টম প্রোটোকল URL শুধুমাত্র টপ-লেভেল ব্রাউজিং প্রসঙ্গে ব্যবহার করা যেতে পারে, তবে, উদাহরণস্বরূপ, iframe-এর URL হিসেবে নয়।

প্রোটোকলের সাদাতালিকা

registerProtocolHandler()-এর মতোই, প্রোটোকলের একটি অনুমোদিত তালিকা আছে যা অ্যাপ হ্যান্ডেল করার জন্য রেজিস্টার করতে পারে।

ইনভোক করা প্রোটোকলের কারণে PWA প্রথমবার লঞ্চ করার সময়, ব্যবহারকারীকে একটি অনুমতি ডায়ালগ দেখানো হবে। এই ডায়ালগ অ্যাপের নাম ও উৎস দেখাবে এবং ব্যবহারকারীকে জিজ্ঞাসা করবে যে অ্যাপটি প্রোটোকল থেকে লিঙ্ক ম্যানেজ করতে পারবে কিনা। ব্যবহারকারী অনুমতি সংক্রান্ত ডায়ালগ প্রত্যাখ্যান করলে, রেজিস্টার করা প্রোটোকল হ্যান্ডলার অপারেটিং সিস্টেমের মাধ্যমে উপেক্ষা করা হবে। প্রোটোকল হ্যান্ডলার আনরেজিস্টার করতে, ব্যবহারকারীকে সেই PWA আনইনস্টল করতে হবে যা এটি রেজিস্টার করেছে। ব্যবহারকারী "আমার পছন্দ মনে রাখুন" এবং "অনুমতি দেবেন না" বিকল্প বেছে নিলে, ব্রাউজার প্রোটোকল হ্যান্ডলারকে অনিবন্ধিত করবে।

মতামত

Chromium টিম পিডব্লুএ(PWA)-এর জন্য URL প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন সম্পর্কে আপনার অভিজ্ঞতা জানতে চায়।

API ডিজাইন সম্পর্কে আমাদের জানান

API-এর এমন কিছু কি আছে যা আপনার প্রত্যাশা মতো কাজ করে না? অথবা আপনার আইডিয়া প্রয়োগ করার জন্য প্রয়োজনীয় পদ্ধতি বা প্রপার্টি কি উপলভ্য নেই? নিরাপত্তা মডেল সম্পর্কে কোনও প্রশ্ন বা মন্তব্য আছে? সংশ্লিষ্ট GitHub রেপো-তে স্পেক সংক্রান্ত সমস্যা ফাইল করুন অথবা আগে থেকে থাকা কোনও সমস্যা সম্পর্কে আপনার মতামত যোগ করুন।

প্রয়োগ সংক্রান্ত সমস্যা সম্পর্কে অভিযোগ জানানো

Chromium-এর ইমপ্লিমেন্টেশনে আপনি কি কোনও সমস্যা খুঁজে পেয়েছেন? নাকি স্পেসিফিকেশন থেকে ইমপ্লিমেন্টেশন আলাদা? new.crbug.com লিঙ্কে গিয়ে সমস্যার অভিযোগ জানান। যতটা সম্ভব বিস্তারিত তথ্য, সমস্যাটি আবার তৈরি করার নির্দেশাবলী এবং কম্পোনেন্ট বক্সে UI>Browser>WebAppInstalls লিখতে ভুলবেন না।

API-এর জন্য সহায়তা দেখান

আপনি কি পিডব্লুএ(PWA)-এর জন্য URL প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন ব্যবহার করার পরিকল্পনা করছেন? আপনার সর্বজনীন সমর্থন Chromium টিমকে ফিচারগুলিকে অগ্রাধিকার দিতে সাহায্য করে এবং অন্যান্য ব্রাউজার ভেন্ডরদের দেখায় যে তাদের সমর্থন করা কতটা গুরুত্বপূর্ণ।

WICG ডিসকোর্স থ্রেডে এটি কীভাবে ব্যবহার করার পরিকল্পনা করছেন তা শেয়ার করুন। @ChromiumDev-এ #ProtocolHandler হ্যাশট্যাগ ব্যবহার করে টুইট পাঠান এবং আপনি এটি কোথায় ও কীভাবে ব্যবহার করছেন তা আমাদের জানান।

স্বীকৃতি

পিডব্লুএ(PWA)-এর জন্য URL প্রোটোকল হ্যান্ডলার রেজিস্ট্রেশন, Microsoft Edge টিমের Fabio Rocha, Diego González, Connor Moody এবং Samuel Tang-এর দ্বারা বাস্তবায়িত ও নির্দিষ্ট করা হয়েছে। এই ডকুমেন্ট জো মেডলি ও ফ্যাবিও রোচা পর্যালোচনা করেছেন।