Así que estoy tratando de leer una escala USB que está conectada a mi PC. Uso la API HID experimental de Chrome.
Uso Tampermonekey como inyector de script de usuario para ampliar la funcionalidad de un sitio web.
El script que inyecto se ve así:
navigator.hid.requestDevice({ filters: [{ vendorId: 0x0922, productId: 0x8003}] }).then((devices) => { if (devices.length == 0) return; devices[0].open().then(() => { if(disconnected) { disconnected = false } console.log("Opened device: " + devices[0].productName); devices[0].addEventListener("inputreport", handleInputReport); devices[0].sendReport(outputReportId, outputReport).then(() => { console.log("Sent output report " + outputReportId); }); }); });Cuando lo ejecuto así (en línea), aparece el mensaje en Chrome:
DOMException: no se pudo ejecutar 'requestDevice' en 'HID': debe estar manejando un gesto de usuario para mostrar una solicitud de permiso.
Básicamente, el código debe estar dentro de un detector de eventos y el detector debe ser activado por la entrada del usuario para ejecutarse.
Todo bien y elegante, excepto que esto tiene que ser inicializado cientos de veces al día. Intenté ejecutar este código en Edge y aquí simplemente funciona sin la intervención del usuario.
¿Hay alguna manera de deshabilitar esta función de seguridad (completamente o solo para el sitio en el que la estoy usando) en Chrome? Sé que edge se basa en cromo, así que espero que sea posible, pero no puedo encontrar cómo/dónde