WebUSB ব্যবহার করুন

WebUSB API ওয়েবে অ-মানক ইউনিভার্সাল সিরিয়াল বাস (USB) সামঞ্জস্যপূর্ণ ডিভাইসগুলিকে প্রকাশ করে৷ এই পৃষ্ঠাটি API এর দিকগুলি বর্ণনা করে যা এক্সটেনশনগুলির জন্য বিশেষ। WebUSB API- এর সম্পূর্ণ বিবরণের জন্য MDN দেখুন।

এক্সটেনশনে উপলব্ধতা

Chrome 118 বা তার পরে।

অনুমতি

কোনো ম্যানিফেস্ট ফাইল অনুমতির প্রয়োজন নেই; যদিও WebUSB ব্রাউজারের ব্যবহারকারীর অনুমতি প্রবাহকে ট্রিগার করে।

উদ্ভাসিত

এই API এর জন্য কোন ম্যানিফেস্ট কী প্রয়োজন নেই।

সাপোর্টিং প্রসঙ্গ

এই API প্রায় যেকোনো প্রসঙ্গে ব্যবহার করা যেতে পারে; WebUSB.requestDevice() পদ্ধতি এক্সটেনশন পরিষেবা কর্মীদের ব্যবহার করা যাবে না৷ বিস্তারিত জানার জন্য পরের অধ্যায় দেখুন।

যখন এই APIটি একটি এক্সটেনশন পরিষেবা কর্মীতে ব্যবহার করা হয়, তখন ডিভাইস সংযোগ সেশন পরিষেবা কর্মীকে জীবিত রাখে৷

ক্রোম এক্সটেনশন পার্থক্য

যদিও WebUSB এক্সটেনশন পরিষেবা কর্মীদের জন্য উপলব্ধ, WebUSB.requestDevice() , যা একটি প্রতিশ্রুতি প্রদান করে যা একটি USBDevice দৃষ্টান্তের সাথে সমাধান করে, একটি এক্সটেনশন পরিষেবা কর্মীকে ডাকা যাবে না৷ এটি পেতে, এক্সটেনশন পরিষেবা কর্মী ব্যতীত অন্য কোনও এক্সটেনশন পৃষ্ঠা থেকে requestDevice() এ কল করুন এবং এক্সটেনশন পরিষেবা কর্মীকে একটি বার্তা পাঠান৷

নিম্নলিখিত কোডটি ব্যবহারকারীর অঙ্গভঙ্গির প্রয়োজনের অনুমতি প্রবাহের অংশ হিসাবে requestDevice() কল করে একটি সাধারণ প্যাটার্ন অনুসরণ করে। ডিভাইসটি অধিগ্রহণ করা হলে এটি পরিষেবা কর্মীকে একটি বার্তা পাঠায়, যা তারপর getDevices() ব্যবহার করে ডিভাইসটি পুনরুদ্ধার করতে পারে।

popup.js:

myButton.addEventListener("click", async () => {
  await navigator.usb.requestDevice({
    filters: [{ vendorId: 0x1234, productId: 0x5678 }],
  });
  chrome.runtime.sendMessage("newDevice");
});

service-worker.js

chrome.runtime.onMessage.addListener(async (message) => {
  if (message === "newDevice") {
    const devices = await navigator.usb.getDevices();
    for (const device of devices) {
      // open device connection.
      await device.open();
    }
  }
});