اختَر واجهة برمجة التطبيقات المناسبة للاتصال بجهاز من اختيارك.
يهدف هذا الدليل إلى مساعدتك في اختيار أفضل واجهة برمجة تطبيقات للتواصل مع جهاز (مثل كاميرا الويب والميكروفون وما إلى ذلك) على الويب. من خلال "الأفضل" أعني ذلك ويمنحك كل ما تحتاجه بأقصر قدر من العمل. أو بعبارةٍ أخرى، أنت تعرف حالة الاستخدام العامة التي تريد حلها (مثل الوصول إلى الفيديو)، ولكنك لا يعرفون ما واجهة برمجة التطبيقات التي يجب استخدامها أو يتساءلون عما إذا كانت هناك طريقة أخرى لتحقيق ذلك.
إحدى المشاكل التي عادةً ما يواجهها مطورو الويب هي الانتقال إلى من دون معرفة معلومات عن واجهات برمجة التطبيقات ذات المستوى الأعلى التي يسهل وتنفيذها وتوفير تجربة مستخدم أفضل. لذلك، يبدأ هذا الدليل باقتراح على سبيل المثال، يشير إلى واجهات برمجة التطبيقات ذات المستوى الأعلى أولاً، ويذكر أيضًا واجهات برمجة التطبيقات ذات المستوى الأدنى في حال كان لديك أنّ واجهة برمجة التطبيقات ذات المستوى الأعلى لا تلبي احتياجاتك.
🕹 تلقّي أحداث الإدخال من هذا الجهاز
جرِّب الاستماع إلى أحداث لوحة المفاتيح وPointer. إذا كان هذا الجهاز لعبة وحدة تحكم، استخدم واجهة برمجة تطبيقات وحدة التحكم لمعرفة الأزرار التي يتم الضغط عليها التي تحركت المحاور.
إذا لم يناسبك أي من هذه الخيارات، فقد تكون واجهة برمجة التطبيقات منخفضة المستوى هي الحل. اطّلِع على صفحة اكتشاف كيفية التواصل مع جهازك لبدء تجربتك.
📸 الوصول إلى الصوت والفيديو من هذا الجهاز
استخدِم MediaDevices.getUserMedia() للحصول على بث مباشر لمحتوى الفيديو والصوت من هذا الجهاز الجهاز والاطّلاع على معلومات حول التقاط الصوت والفيديو. يمكنك أيضًا التحكم في التحريك والإمالة والتكبير/التصغير وإعدادات الكاميرا الأخرى مثل السطوع والتباين، وحتى التقاط صور ثابتة. يمكن استخدام Web Audio لإضافة تأثيرات على الصوت أو إنشاء تصورات صوتية أو تطبيق تأثيرات مكانية (مثل التحريك). تعرَّف على كيفية الملف الشخصي لأداء تطبيقات Web Audio في Chrome. كذلك.
إذا لم يعمل أي من هذه الخيارات لك، فقد تكون واجهة برمجة التطبيقات منخفضة المستوى هي الحل. اطّلِع على صفحة اكتشاف كيفية التواصل مع جهازك لبدء تجربتك.
🖨 الطباعة على هذا الجهاز
استخدِم window.print() لفتح مربّع حوار متصفِّح يسمح للمستخدم باختياره. الجهاز كوجهة لطباعة المستند الحالي.
إذا لم يساعدك هذا في حلّ المشكلة، قد تكون واجهة برمجة التطبيقات ذات المستوى المنخفض هي الحل. إتمام الدفع تعرَّف على كيفية التواصل مع جهازك لبدء تجربتك.
🔐 المصادقة مع هذا الجهاز
استخدام WebAuthn لإنشاء مفتاح عام قوي ومصدَّق عليه وعلى نطاق المصدر بيانات الاعتماد مع جهاز أمان الجهاز هذا لمصادقة المستخدمين. وهي تدعم استخدام أجهزة مصادقة U2F أو FIDO2 عبر البلوتوث وNFC وتقنية التجوال عبر USB تُعرف باسم مفاتيح الأمان، بالإضافة إلى أداة مصادقة النظام الأساسي، والتي تتيح للمستخدمين باستخدام بصمات أصابعهم أو أقفال الشاشة الخاصة بهم اطلع على إنشاء تطبيق WebAuthn الأول
إذا كان هذا الجهاز هو نوع آخر من أجهزة الأمان (مثل محفظة غير رقمية للعملات المشفرة)، قد تكون واجهة برمجة التطبيقات منخفضة المستوى هي الحل. اطلع على اقتراحات كيفية التواصل مع جهازك لبدء رحلتك.
🗄 الوصول إلى الملفات على هذا الجهاز
استخدام File System Access API لقراءة التغييرات وحفظها مباشرةً فيها والمجلدات على جهاز المستخدم. إذا لم يكن الملف متاحًا، يمكنك استخدام File API لطلب اختيار المستخدم للملفات المحلية من مربّع حوار في المتصفِّح ثم قراءة المحتوى من هذه الملفات.
إذا لم يناسبك أي من هذه الخيارات، فقد تكون واجهة برمجة التطبيقات منخفضة المستوى هي الحل. اطّلِع على صفحة اكتشاف كيفية التواصل مع جهازك لبدء تجربتك.
🧲 الوصول إلى أجهزة الاستشعار على هذا الجهاز
استخدِم واجهة برمجة تطبيقات أداة الاستشعار العامة لقراءة القيم الأولية لأداة الاستشعار من أجهزة استشعار الحركة (مثل مقياس التسارع أو الجيروسكوب) وأدوات الاستشعار البيئية (مثل الضوء المحيط مقياس المغناطيسية). استخدِم DeviceMotion وDeviceOrientation في حال عدم التوفُّر. للوصول إلى مقياس التسارع والجيروسكوب والبوصلة المدمجة أجهزة محمولة.
إذا لم يعمل لديك، فقد تكون واجهة برمجة التطبيقات ذات المستوى المنخفض هي الحل. إتمام الدفع تعرَّف على كيفية التواصل مع جهازك لبدء تجربتك.
🛰 الوصول إلى إحداثيات نظام تحديد المواقع العالمي (GPS) على هذا الجهاز
استخدم Geolocation API للحصول على خط العرض وخط الطول لموقع المستخدم. الموضع الحالي على هذا الجهاز
إذا لم يعمل لديك، فقد تكون واجهة برمجة التطبيقات ذات المستوى المنخفض هي الحل. إتمام الدفع تعرَّف على كيفية التواصل مع جهازك لبدء تجربتك.
🔋 التحقّق من مستوى شحن البطارية في هذا الجهاز
استخدام واجهة برمجة تطبيقات البطارية للحصول على معلومات المضيف حول مستوى شحن البطارية عند تغيُّر مستوى البطارية أو حالة الشحن.
إذا لم يعمل لديك، فقد تكون واجهة برمجة التطبيقات ذات المستوى المنخفض هي الحل. إتمام الدفع تعرَّف على كيفية التواصل مع جهازك لبدء تجربتك.
📍 التواصل مع هذا الجهاز عبر الشبكة
في الشبكة المحلية، استخدِم واجهة برمجة تطبيقات التشغيل عن بُعد لبث الصوت و/أو الفيديو على جهاز تشغيل عن بُعد (مثل تلفزيون ذكي أو مكبّر صوت لاسلكي) أو استخدم Presentation API لعرض صفحة ويب على شاشة ثانية (مثل شاشة ثانوية شاشة متصلة باستخدام كابل HDMI أو تلفزيون ذكي متصل لاسلكيًا).
إذا كشف هذا الجهاز عن خادم ويب، يمكنك استخدام واجهة برمجة تطبيقات الجلب و/أو WebSockets من أجل جلب بعض البيانات من هذا الجهاز من خلال النقر على نقاط النهاية المناسبة. في حين أن بروتوكول TCP مقابس UDP غير متاحة على الويب. يمكنك الاطلاع على WebTransport للتعامل مع اتصالات الشبكات التفاعلية، ثنائية الاتجاه، ومتعددة الإرسال. لاحظ أن يمكن أيضًا استخدام WebRTC لتوصيل البيانات في الوقت الفعلي مع المتصفّحات الأخرى. باستخدام بروتوكول نظير إلى نظير.
🧱 تعرَّف على كيفية التواصل مع المستخدمين.
إن قرار تحديد واجهة برمجة التطبيقات منخفضة المستوى التي يجب عليك استخدامها يعتمد على طبيعة اتصالك المادي بالجهاز. إذا كان الاتصال لاسلكيًا، يُرجى الاطّلاع على تقنية Web NFC اتصالات لاسلكية قصيرة المدى للغاية وبلوتوث الويب أو Web Serial للمواقع الإلكترونية القريبة الأجهزة اللاسلكية.
باستخدام الاتصال القصير المدى (NFC) على الويب، يمكنك القراءة والكتابة على هذا الجهاز عندما يكون قريبًا من جهاز المستخدم (عادةً ما يتراوح طوله بين 5 و10 سم، 2 إلى 4 بوصة). تحتوي أدوات مثل NFC TagInfo على يتيح لك محتوى NXP تصفُّح محتوى هذا الجهاز لإجراء الهندسة العكسية. الأهداف.
استخدِم Web Bluetooth للاتصال بهذا الجهاز عبر بلوتوث منخفض الطاقة الاتصال. ينبغي أن يكون من السهل جدًا التواصل معه عند استخدام خدمات Bluetooth GATT الموحدة (مثل خدمة البطارية) لأنها السلوك موثَّقًا بالكامل. إذا لم يكن الأمر كذلك، في هذه المرحلة، عليك إما إيجاد بعض وثائق الأجهزة الخاصة بهذا الجهاز أو لإجراء هندسة عكسية له. يمكنك استخدام الأدوات الخارجية مثل nRF Connect for Mobile وأدوات المتصفح المضمَّنة مثل الصفحة الداخلية
about://bluetooth-internals
في النسخة المستندة إلى Chromium المتصفحات لإجراء ذلك. الاطلاع على الهندسة العكسية لمصباح بلوتوث من يوري شاكيد. يُرجى ملاحظة أنّ الأجهزة التي تتضمّن بلوتوث قد تتحدّث أيضًا عن واجهة HID أو السلسلة التسلسلية. والبروتوكولات.باستخدام التسلسل عبر البلوتوث، يمكنك التواصل مع خدمات RFCOMM على الأجهزة المقترنة الأجهزة الكلاسيكية التي تعمل بالبلوتوث، مثل الملف الشخصي للمنفذ التسلسلي الموحّد (SPP) بالنسبة خدمات مخصصة مستندة إلى RFCOMM، إلا أنه ينبغي عليك الرجوع إلى واجهة برمجة تطبيقات وثائق المورِّد للمعرّف الفريد للخدمة من أجل تمريرها إلى
requestPort()
.
إذا كان الجهاز سلكيًا، فاطلع على واجهات برمجة التطبيقات هذه بالترتيب المحدد:
يتيح لك استخدام WebHID التعرّف على تقارير HID وأدوات وصف التقارير من خلال والمجموعات هي أساس فهمك لهذا الجهاز. يمكن أن تظهر فائدة هذا بوضوح أكبر أمرًا صعبًا بدون الحصول على وثائق البائع لهذا الجهاز. أدوات مثل يمكن أن يساعدك برنامج Wireshark في إجراء هندسة عكسية له. يمكنك أيضًا استخدام جهاز HID تطبيق ويب مستكشف لعرض معلومات أجهزة الواجهة البشرية (HID) بتنسيق يمكن للمستخدمين قراءته
وباستخدام البرنامج التسلسلي على الويب، وبدون تقديم مستندات المورِّدين لهذا الجهاز وما التي يدعمها هذا الجهاز، إنه صعب ولكنه لا يزال ممكنًا التخمين. يمكن إجراء الهندسة العكسية على هذا الجهاز من خلال التقاط بيانات USB أولية باستخدام أدوات مثل Wireshark. يمكنك أيضًا استخدام المحطة التسلسلية تطبيق ويب لإجراء التجارب على هذا الجهاز إذا كان يستخدم بروتوكولاً يمكن للإنسان قراءته.
باستخدام WebUSB، وبدون وثائق واضحة لهذا الجهاز وما يميّز USB التي يدعمها هذا الجهاز، فإنه صعب ولكنه لا يزال ممكنًا التخمين. مشاهدة الفيديو Exploring WebUSB وإمكاناته المدهشة من Suz هينتون. يمكنك أيضًا إجراء هندسة عكسية لهذا الجهاز عن طريق التقاط بيانات USB أولية حركة البيانات وفحص أدوات وصف USB باستخدام أدوات خارجية، مثل Wireshark وأدوات المتصفح المضمَّنة مثل الصفحة الداخلية
about://usb-internals
في المتصفحات المستندة إلى Chromium
شكر وتقدير
نشكر Reilly Grant وتوماس شتاينر وكايس باسك على مراجعة هذه المقالة.
صورة من تصوير داريا تريفانافا على موقع Unسباش.