ما هي واجهة برمجة تطبيقات WebUSB؟

واجهة برمجة تطبيقات WebUSB هي معيار متصفح يسمح لصفحات الويب بالاتصال المباشر بأجهزة USB — دون الحاجة إلى تثبيت برامج تشغيل أصلية أو تطبيقات سطح المكتب. تم تقديمها في Chrome 61 وتمنح المواقع الإلكترونية إمكانية وصول محكومة وتحت إذن للأجهزة مثل المتحكمات الدقيقة وألواح التطوير وواجهات MIDI وأجهزة USB الطرفية الأخرى.

على عكس الوصول التقليدي إلى USB (الذي يتطلب برامج تشغيل على مستوى النواة)، يعمل WebUSB بالكامل داخل صندوق الرمل الخاص بالمتصفح. يجب على المستخدمين منح الإذن بشكل صريح لكل جهاز من خلال منتقي الأجهزة المدمج في المتصفح، مما يضمن عدم تمكن أي موقع ويب من قراءة أو الكتابة إلى أجهزتك بصمت.

وصف الأداة

تتيح لك هذه الأداة تعداد أجهزة USB التي تم منحها للمتصفح عبر واجهة برمجة تطبيقات WebUSB. عند التحميل، تقوم تلقائياً بإدراج أي أجهزة مسموحة مسبقاً. يمكنك أيضاً فتح منتقي USB الأصلي للمتصفح لمنح الوصول إلى جهاز متصل حديثاً، أو تحديث القائمة في أي وقت.

لكل جهاز، تعرض الأداة اسم المنتج والمصنع ومعرف البائع ومعرف المنتج ورقم السلسلة وإصدار بروتوكول USB.

الميزات

  • تحميل تلقائي للأجهزة المسموحة مسبقاً عند فتح الصفحة
  • فتح منتقي أجهزة USB الأصلي للمتصفح لمنح الوصول إلى أجهزة جديدة
  • عرض معرف البائع ومعرف المنتج بصيغة سادسة عشرية قياسية (مثل 0x1A2B)
  • عرض إصدار بروتوكول USB (مثل 2.0، 3.1) بجانب حقول هوية الجهاز
  • جدول النتائج القابل للفرز مع تصدير CSV و JSON

كيفية العمل

عند النقر على إضافة جهاز، يستدعي المتصفح navigator.usb.requestDevice() ويعرض منتقياً على مستوى النظام يسرد أجهزة USB المتصلة. إذا اخترت جهازاً، يخزن المتصفح الإذن لهذا الأصل. في الزيارات اللاحقة (أو بعد النقر على تحديث)، يعيد navigator.usb.getDevices() جميع الأجهزة المسموحة مسبقاً دون الطلب مرة أخرى.

يتم عرض معرف البائع ومعرف المنتج بصيغة سادسة عشرية بأربعة أرقام وأحرف كبيرة (مثل 0x04D8) — الصيغة القياسية المستخدمة في سجلات USB والأوراق الفنية.

حالات الاستخدام

  • مطورو البرامج الثابتة يمكنهم التأكد بسرعة من أن المتحكم الدقيق أو لوحة التطوير المتصلة (Arduino و STM32 و RP2040 وغيرها) يتم تعدادها بشكل صحيح من قبل المتصفح قبل كتابة أداة فلاش قائمة على WebUSB.
  • مطورو تطبيقات الويب يمكنهم التحقق من أن تطبيقهم الممكّن لـ WebUSB سيرى حقول هوية الجهاز المتوقعة أثناء النماذج الأولية في المراحل المبكرة.

القيود

  • يتم دعم WebUSB فقط في متصفحات قائمة على Chromium (Chrome و Edge و Opera). لا يطبق Firefox و Safari هذه الواجهة البرمجية.
  • يجب تقديم الصفحة عبر HTTPS (أو localhost) — يتم حظر WebUSB على أصول HTTP العادية.
  • تقيد بعض مجموعات أنظمة التشغيل والمتصفحات الوصول إلى فئات أجهزة معينة (مثل HID والتخزين الضخم) حتى عند منح الأذونات.
  • تقرأ هذه الأداة بيانات وصف الجهاز فقط؛ لا تفتح أي واجهة USB أو تنقل البيانات من/إلى الجهاز.