댓글 검색 목록

[html] 웹에서 하드웨어 장치에 액세스

페이지 정보

작성자 운영자 작성일 21-03-16 10:02 조회 1,070 댓글 0

선택한 하드웨어 장치와 통신 할 적절한 API를 선택하십시오.


이 가이드의 목표는 웹에서 하드웨어 장치 (예 : 웹캠, 마이크 등)와 통신하는 데 가장 적합한 API를 선택하도록 돕는 것입니다. "최고"라는 말은 가장 짧은 작업량으로 필요한 모든 것을 제공한다는 의미입니다. 즉, 해결하려는 일반적인 사용 사례 (예 : 비디오 액세스)를 알고 있지만 어떤 API를 사용할지 모르거나 이를 달성 할 다른 방법이 있는지 궁금합니다.


웹 개발자가 일반적으로 겪는 문제 중 하나는 구현하기 쉽고 더 나은 UX를 제공하는 상위 수준 API에 대해 배우지 않고 하위 수준 API로 뛰어 드는 것입니다. 따라서 이 가이드는 먼저 상위 수준의 API를 권장하는 것으로 시작하지만 상위 수준의 API가 요구 사항을 충족하지 않는다고 판단되는 경우 하위 수준의 API도 언급합니다.


?이 장치에서 입력 이벤트 수신 


키보드포인터 이벤트를 들어보십시오. 이 장치가 게임 컨트롤러인 경우 Gamepad API를 사용하여 어떤 버튼이 눌렸는지, 어떤 축이 이동했는지 알 수 있습니다.


이러한 옵션 중 어느 것도 작동하지 않으면 저수준 API가 해결책이 될 수 있습니다. 여정을 시작하기 위해 장치와 통신하는 방법을 확인하십시오.


?이 장치에서 오디오 및 비디오에 액세스 


MediaDevices.getUserMedia()를 사용하여 이 장치에서 라이브 오디오 및 비디오 스트림을 가져오고 오디오 및 비디오 캡처에 대해 알아 봅니다. 또한 카메라의 팬, 틸트 및 줌밝기 및 대비와 같은 기타 카메라 설정을 제어하고 스틸 이미지를 촬영할 수도 있습니다. 웹 오디오는 오디오에 효과를 추가하거나, 오디오 시각화를 생성하거나, 공간 효과 (예 : 패닝)를 적용하는 데 사용할 수 있습니다. Chrome에서 웹 오디오 앱의 성능을 프로파일링하는 방법도 확인하세요.


이러한 옵션 중 어느 것도 작동하지 않으면 저수준 API가 해결책이 될 수 있습니다. 여정을 시작하기 위해 장치와 통신하는 방법을 확인하십시오.


?이 장치로 인쇄 


window.print()를 사용하여 사용자가 현재 문서를 인쇄 할 대상으로 이 장치를 선택할 수 있는 브라우저 대화 상자를 엽니다.


이것이 작동하지 않으면 저수준 API가 해결책이 될 수 있습니다. 여정을 시작하기 위해 장치와 통신하는 방법을 확인하십시오.


?이 장치로 인증 


WebAuthn을 사용하여 이 하드웨어 보안 장치로 강력하고 입증 된 원본 범위 공개 키 자격 증명을 만들어 사용자를 인증합니다. Bluetooth, NFC 및 USB 로밍 U2F 또는 FIDO2 인증 기 (보안 키라고도 함)와 사용자가 지문 또는 화면 잠금으로 인증 할 수 있는 플랫폼 인증기 사용을 지원합니다. 첫 번째 WebAuthn 앱 빌드를 확인하세요.


이 장치가 다른 유형의 하드웨어 보안 장치 (예 : 암호 화폐 지갑) 인 경우 저수준 API가 해결책이 될 수 있습니다. 여정을 시작하기 위해 장치와 통신하는 방법을 확인하십시오.


?이 장치의 파일에 액세스 


파일 시스템 액세스 API를 사용하여 사용자 장치의 파일 및 폴더에서 직접 변경 사항을 읽고 저장합니다. 사용할 수 없는 경우 파일 API를 사용하여 사용자에게 브라우저 대화 상자에서 로컬 파일을 선택하도록 요청한 다음 해당 파일의 내용을 읽습니다.


이러한 옵션 중 어느 것도 작동하지 않으면 저수준 API가 해결책이 될 수 있습니다. 여정을 시작하기 위해 장치와 통신하는 방법을 확인하십시오.


?이 장치의 액세스 센서 


일반 센서 API를 사용하여 동작 센서 (예 : 가속도계 또는 자이로 스코프) 및 환경 센서 (예 : 주변 광, 자력계)에서 원시 센서 값을 읽습니다. 사용할 수 없는 경우 DeviceMotion 및 DeviceOrientation 이벤트를 사용하여 모바일 장치의 내장 가속도계, 자이로 스코프 및 나침반에 액세스합니다.


작동하지 않는 경우 저수준 API가 해결책이 될 수 있습니다. 여정을 시작하기 위해 장치와 통신하는 방법을 확인하십시오.


?이 장치에서 GPS 좌표에 액세스 


Geolocation API를 사용하여 이 기기에서 사용자의 현재 위치에 대한 위도와 경도를 가져옵니다.


작동하지 않는 경우 저수준 API가 해결책이 될 수 있습니다. 여정을 시작하기 위해 장치와 통신하는 방법 알아보기


?이 장치의 배터리를 확인하십시오 


Battery API를 사용하여 배터리 충전 수준에 대한 호스트 정보를 얻고 배터리 수준 또는 충전 상태가 변경 될 때 알림을 받습니다.


작동하지 않는 경우 저수준 API가 해결책이 될 수 있습니다. 여정을 시작하기 위해 장치와 통신하는 방법을 확인하십시오.


? 네트워크를 통해 이 장치와 통신 


로컬 네트워크에서 원격 재생 API를 사용하여 원격 재생 장치 (예 : 스마트 TV 또는 무선 스피커)에서 오디오 및 / 또는 비디오를 브로드 캐스트하거나 Presentation API를 사용하여 두 번째 화면 (예 : 보조 화면)에서 웹 페이지를 렌더링 합니다. HDMI 케이블로 연결된 디스플레이 또는 무선으로 연결된 스마트 TV).


이 장치가 웹 서버를 노출하는 경우 Fetch API 및 / 또는 WebSocket을 사용하여 적절한 엔드 포인트를 눌러 이 장치에서 일부 데이터를 가져옵니다. TCP 및 UDP 소켓은 웹에서 사용할 수 없지만 WebTransport를 확인하여 양방향, 양방향 및 다중 네트워크 연결을 처리하십시오. WebRTC는 피어 투 피어 프로토콜을 사용하여 다른 브라우저와 실시간으로 데이터를 통신하는 데 사용할 수도 있습니다.


? 장치와 통신하는 방법 알아보기 


사용해야 하는 하위 수준 API의 결정은 장치에 대한 물리적 연결의 특성에 따라 결정됩니다. 무선 인 경우 매우 단거리 무선 연결에 대해서는 웹 NFC를 확인하고 근처 무선 장치에 대해서는 웹 블루투스를 확인하십시오.


  • 웹 NFC를 사용하면 이 장치가 사용자의 장치 (보통 5-10cm, 2-4 인치)에 아주 가까이 있을 때 읽고 쓸 수 있습니다. NXP의 NFC TagInfohttps://play.google.com/store/apps/details?id=com.nxp.taginfolite와 같은 도구를 사용하면 리버스 엔지니어링 목적으로 이 장치의 콘텐츠를 탐색 할 수 있습니다.
  • Web Bluetooth를 사용하여 Bluetooth Low Energy 연결을 통해 이 장치에 연결합니다. 표준화 된 Bluetooth GATT 서비스 (예 : 배터리 서비스)를 사용하는 경우 해당 동작이 잘 문서화 되어 있으므로 통신하기가 매우 쉽습니다. 그렇지 않은 경우 이 시점에서 이 장치에 대한 일부 하드웨어 문서를 찾거나 리버스 엔지니어링해야합니다. 모바일 용 nRF Connect와 같은 외부 도구와 Chromium 기반 브라우저의 내부 페이지 about : // bluetooth-internals와 같은 내장 브라우저 도구를 사용할 수 있습니다. Uri Shaked의 Bluetooth 전구 리버스 엔지니어링을 확인하십시오. Bluetooth 장치는 HID 또는 직렬 프로토콜을 사용할 수도 있습니다.

연결된 경우 다음 특정 순서로 다음 API를 확인하십시오.


  1. WebHID를 사용하면 컬렉션을 통해 HID 보고서 및 보고서 설명자를 이해하는 것이 이 장치를 이해하는 데 중요합니다. 이 장치에 대한 공급 업체 문서 없이는 어려울 수 있습니다. Wireshark와 같은 도구는 이를 리버스 엔지니어링 하는 데 도움이 될 수 있습니다.
  2. Web Serial을 사용하면 이 장치에 대한 공급 업체 문서와 이 장치가 지원하는 명령이 없어도 어렵지만 운이 좋으면 여전히 가능합니다. 이 장치의 리버스 엔지니어링은 Wireshark와 같은 도구로 원시 USB 트래픽을 캡처하여 수행 할 수 있습니다. 사람이 읽을 수 있는 프로토콜을 사용하는 경우 직렬 터미널 웹 앱을 사용하여 이 장치를 실험 할 수도 있습니다.
  3. WebUSB를 사용하면 이 장치에 대한 명확한 문서와 이 장치가 지원하는 USB 명령이 없어도 어렵지만 운이 좋으면 여전히 가능합니다. Exploring WebUSB와 Suz Hinton의 흥미로운 잠재력을 시청하세요. 또한 원시 USB 트래픽을 캡처하고 Wireshark와 같은 외부 도구와 Chromium 기반 브라우저의 내부 페이지 about://usb-internals와 같은 내장 브라우저 도구를 사용하여 USB 설명자를 검사하여 이 장치를 리버스 엔지니어링 할 수도 있습니다.


https://web.dev/devices-introduction



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.