একটি কিওস্ক PWA থেকে একটি এক্সটেনশন সংযোগ করা

Windows, Linux এবং MacOS-এর জন্য Chrome 102-এর পরে Chrome অ্যাপগুলি বন্ধ করে দেওয়া হবে। ChromeOS-এর জন্য, Chrome অ্যাপগুলি কমপক্ষে জানুয়ারী 2025 পর্যন্ত সমর্থিত থাকবে, তবে আমরা দৃঢ়ভাবে ওয়েব অ্যাপগুলিতে স্থানান্তর করার পরামর্শ দিচ্ছি কারণ Chrome অ্যাপগুলি বন্ধ করার জন্য নির্ধারিত রয়েছে। পূর্বে, Chrome অ্যাপগুলিতে কিওস্ক মোডে অতিরিক্ত কার্যকারিতা উপলব্ধ ছিল যা বর্তমানে কেবল ওয়েব অ্যাপ দ্বারা সমর্থিত নয়। আপনি আপনার কিওস্ক ওয়েব অ্যাপ্লিকেশনের সাথে একটি সহযোগী এক্সটেনশন স্থাপন করে এই কার্যকারিতার কিছু ব্যবহার চালিয়ে যেতে পারেন।

এক্সটেনশনগুলি কীভাবে স্থাপন করা হয়?

কিওস্ক কনফিগারেশন স্ক্রিনে Chrome অ্যাডমিন কনসোলের মাধ্যমে এক্সটেনশনগুলি স্থাপন করা হয় ( Devices > Chrome > Apps & Extensions > Kiosks নেভিগেট করে পাওয়া যায়)। এক্সটেনশনগুলি হয় সর্বজনীনভাবে অ্যাক্সেসযোগ্য লিঙ্কে স্ব-হোস্ট করা যেতে পারে অথবা Chrome ওয়েব স্টোরে এক্সটেনশনটি হোস্ট করে। একটি এন্টারপ্রাইজ বা শিক্ষা সেটিংসে এক্সটেনশন পরিচালনা সম্পর্কে আরও তথ্যের জন্য, অনুগ্রহ করে এই নথিটি দেখুন।

আমার ওয়েব অ্যাপ থেকে আমি কীভাবে এক্সটেনশন API গুলিকে কল করতে পারি?

যেহেতু আপনি আপনার কিয়স্ক ওয়েব অ্যাপের মাধ্যমে কম্প্যানিয়ন এক্সটেনশন স্থাপন করতে পারেন, তাই আপনি ডিভাইস এবং হার্ডওয়্যার প্ল্যাটফর্ম সম্পর্কে দরকারী তথ্য পেতে বা Chrome অ্যাক্সেসিবিলিটি বৈশিষ্ট্যগুলি পরিচালনা করার মতো কাজগুলি করার জন্য এক্সটেনশন API গুলিকে কল করে এক্সটেনশন ক্ষমতার সুবিধা নিতে পারেন।

যদি আপনি কিয়স্ক-কেবল API ব্যবহার করেন, তাহলে আপনাকে ম্যানিফেস্টে সেগুলি সক্ষম করতে হবে। তারপর আপনার কিয়স্ক ওয়েব অ্যাপ এবং কম্প্যানিয়ন এক্সটেনশনের মধ্যে বার্তা প্রেরণ বাস্তবায়ন করুন যাতে তারা একে অপরের সাথে যোগাযোগ করতে পারে।

কিয়স্ক-কেবল এক্সটেনশন API গুলি সক্ষম করুন

কিছু এক্সটেনশন API আছে যা শুধুমাত্র কিয়স্ক মোডে উপলব্ধ। আপনার এক্সটেনশনটি এই কিয়স্ক-কেবল API গুলিকে কল করার জন্য, আপনাকে ম্যানিফেস্টে "kiosk_enabled" ক্ষেত্রটি যোগ করতে হবে এবং এটিকে true এ সেট করতে হবে:

{
    "manifest_version": 3,
    "version": "1.0",
    ...
    "kiosk_enabled": true
 }

বার্তা প্রেরণ বাস্তবায়ন করুন

এক্সটেনশন সেটআপ

আপনার ওয়েব অ্যাপ থেকে বার্তা গ্রহণ এবং প্রতিক্রিয়া জানাতে, আপনাকে একটি ব্যাকগ্রাউন্ড স্ক্রিপ্ট প্রকাশ করতে হবে যা ক্লায়েন্ট (আপনার ওয়েব অ্যাপ) থেকে আসা বার্তাগুলি শোনে এবং তারপরে সেই অনুরোধগুলিকে একটি সংশ্লিষ্ট API কলে প্রক্সি করে। নিম্নলিখিত উদাহরণে, ওয়েব অ্যাপটি যখন একটি কাস্টম বার্তা অবজেক্ট পাঠায় যার মধ্যে callRestart এর একটি methodName থাকে তখন ChromeOS ডিভাইসটি পুনরায় চালু করার জন্য একটি অনুরোধ প্রক্সি করা হয়।

// message handler - extension code
chrome.runtime.onMessageExternal.addListener(function (request, sender, sendResponse) {
  if (request.methodName == 'callRestart') {
    chrome.runtime.restart();
  }
});

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

{
    "background": {
       "service_worker": "background.js"
    },
    "description": "This restarts your ChromeOS device. Lucky you!",
    "manifest_version": 3,
    "name": "Restart your kiosk app",
    "version": "1.0",
    "kiosk_enabled": true,
    "externally_connectable": {
         "accepts_tls_channel_id": false,
         "matches": [ "://developer.android.com/" ]
      }
 }

ওয়েব অ্যাপ সেটআপ

ওয়েব অ্যাপ থেকে এক্সটেনশন কল করার জন্য, আপনাকে এর স্ট্যাটিক এক্সটেনশন আইডি জানতে হবে। এই আইডিটি chrome://extensions পৃষ্ঠায় পাওয়া যাবে, যা আপনি আপনার Chrome এক্সটেনশন ইনস্টল করার সময় দেখাবে, অথবা এক্সটেনশন আপলোড হওয়ার পরে Chrome ওয়েব স্টোর থেকে দেখা যাবে। এটি আপনার ওয়েব অ্যাপকে ঠিক কোন এক্সটেনশনের সাথে যোগাযোগ করতে চায় তা নির্দিষ্ট করতে দেয়। এর পরে, chrome.runtime.sendMessage এ কল করুন এবং এক্সটেনশন আইডিতে একটি বার্তা দিন যা আপনি এক্সটেনশনে পাঠাতে চান।

const STATIC_EXTENSION_ID = 'abcdefghijklmnopqrstuvwxyz'; // found from chrome extensions page of chrome web store.
const callExtensionAPI = function (method) {
  chrome.runtime.sendMessage(STATIC_EXTENSION_ID, {
    methodName: method,
  });
};
callExtensionAPI('callRestart');

বার্তা প্রেরণের জন্য ওয়েব পৃষ্ঠাগুলিকে এক্সটেনশনের সাথে সংযুক্ত করার বিষয়ে আরও তথ্যের জন্য, অনুগ্রহ করে এই ডকুমেন্টেশনটি দেখুন।

দ্রষ্টব্য: এক্সটেনশন এবং ওয়েব অ্যাপ একে অপরের সাথে ইচ্ছামত যোগাযোগ করতে পারে না। এক্সটেনশনটি কেবল তার ম্যানিফেস্টের externally_connectable বিভাগে তালিকাভুক্ত ডোমেন থেকে বার্তা শোনার চেষ্টা করবে। একইভাবে, একটি ওয়েব অ্যাপকে যে এক্সটেনশনের সাথে যোগাযোগ করতে চায় তার স্ট্যাটিক আইডি জানতে হবে।