WebUSB API क्या है?

WebUSB API एक ब्राउज़र मानक है जो वेब पेजों को USB डिवाइस के साथ सीधे संचार करने की अनुमति देता है — बिना नेटिव ड्राइवर या डेस्कटॉप एप्लिकेशन स्थापित किए। इसे Chrome 61 में पेश किया गया था और वेबसाइटों को माइक्रोकंट्रोलर, विकास बोर्ड, MIDI इंटरफेस और अन्य USB परिधीय जैसे हार्डवेयर तक नियंत्रित, अनुमति-गेटेड एक्सेस देता है।

पारंपरिक USB एक्सेस के विपरीत (जिसके लिए कर्नेल-स्तरीय ड्राइवर की आवश्यकता होती है), WebUSB पूरी तरह से ब्राउज़र सैंडबॉक्स में काम करता है। उपयोगकर्ताओं को ब्राउज़र के अंतर्निहित डिवाइस पिकर के माध्यम से प्रत्येक डिवाइस को स्पष्ट रूप से अनुमति देनी चाहिए, जो सुनिश्चित करता है कि कोई भी वेबसाइट आपके हार्डवेयर से चुप्पी से पढ़ या लिख नहीं सकती।

टूल विवरण

यह टूल आपको USB डिवाइस की गणना करने देता है जिन्हें WebUSB API के माध्यम से ब्राउज़र को दिया गया है। लोड पर यह स्वचालित रूप से किसी भी पहले से अनुमत डिवाइस को सूचीबद्ध करता है। आप ब्राउज़र के नेटिव USB पिकर को खोल सकते हैं ताकि नए से जुड़े डिवाइस को एक्सेस दिया जा सके, या किसी भी समय सूची को रीफ्रेश कर सकते हैं।

प्रत्येक डिवाइस के लिए टूल उत्पाद नाम, निर्माता, विक्रेता ID, उत्पाद ID, सीरियल नंबर और USB प्रोटोकॉल संस्करण प्रदर्शित करता है।

विशेषताएं

  • पृष्ठ खुलने पर पहले से दिए गए USB डिवाइस को स्वचालित रूप से लोड करता है
  • नए डिवाइस को एक्सेस देने के लिए ब्राउज़र के नेटिव USB डिवाइस पिकर को खोलता है
  • विक्रेता ID और उत्पाद ID को मानक हेक्साडेसिमल नोटेशन में प्रदर्शित करता है (जैसे 0x1A2B)

यह कैसे काम करता है

जब आप डिवाइस जोड़ें पर क्लिक करते हैं, तो ब्राउज़र navigator.usb.requestDevice() को कॉल करता है और एक सिस्टम-स्तरीय पिकर प्रदर्शित करता है जो जुड़े USB डिवाइस को सूचीबद्ध करता है। यदि आप एक का चयन करते हैं, तो ब्राउज़र उस मूल के लिए अनुमति संग्रहीत करता है। बाद की यात्राओं पर (या रीफ्रेश पर क्लिक करने के बाद), navigator.usb.getDevices() बिना फिर से पूछे सभी पहले से अनुमत डिवाइस लौटाता है।

विक्रेता ID और उत्पाद ID को 4-अंकीय अपरकेस हेक्स में प्रस्तुत किया जाता है (जैसे 0x04D8) — USB रजिस्ट्री और डेटाशीट में उपयोग किया जाने वाला मानक प्रारूप।

सीमाएं

  • WebUSB केवल Chromium-आधारित ब्राउज़र (Chrome, Edge, Opera) में समर्थित है। Firefox और Safari इस API को लागू नहीं करते हैं।
  • पृष्ठ को HTTPS (या localhost) पर परोसा जाना चाहिए — WebUSB को सादे HTTP मूल पर अवरुद्ध किया जाता है।
  • कुछ ऑपरेटिंग सिस्टम और ब्राउज़र संयोजन कुछ डिवाइस क्लास (जैसे HID, मास स्टोरेज) तक एक्सेस को प्रतिबंधित करते हैं भले ही अनुमतियां दी गई हों।
  • यह टूल केवल डिवाइस मेटाडेटा पढ़ता है; यह कोई USB इंटरफेस नहीं खोलता है या डिवाइस से/को डेटा स्थानांतरित नहीं करता है।