es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No hay una solicitud para seleccionar un dispositivo USB utilizando navigator.usb.requestDevice() en Zebra Enterprise Browser.

Estoy tratando de utilizar la API de Web USB para comunicarme con un relé USB. La página web se encuentra en un dispositivo Zebra. Funciona correctamente en Chromium, y se me pide que seleccione el dispositivo USB.

device = await navigator.usb.requestDevice({ filters: [{ vendorId: config.VENDORID, productId: config.PRODUCTID }] });

El dispositivo Zebra cuenta con Enterprise Browser, que es similar a Chromium. Sin embargo, no se me pide seleccionar el dispositivo USB cuando ejecuto la misma página web en Enterprise Browser.

¿Alguien sabe cómo hacer que esto funcione en Enterprise Browser?

¿O hay alguna forma de que navigator.usb.requestDevice() devuelva el dispositivo sin la acción del usuario?

Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución para utilizar la API de Web USB con un relé USB en el navegador Enterprise Browser de Zebra

    Si estás enfrentando el problema de no obtener la solicitud para seleccionar el dispositivo USB al ejecutar la misma página web en el Enterprise Browser, puedes intentar la siguiente solución:

    • Asegúrate de que la API de Web USB esté habilitada en el Enterprise Browser. Puedes verificar esto en la configuración del navegador.
    • Verifica si el dispositivo Zebra tiene los controladores USB requeridos instalados para el relé USB.
    • Intenta agregar un tiempo de espera antes de llamar a navigator.usb.requestDevice() para permitir que el navegador inicialice el dispositivo USB. Por ejemplo:
    setTimeout(() => {
      navigator.usb.requestDevice({
        filters: [{
          vendorId: config.VENDOR_ID,
          productId: config.PRODUCT_ID
        }]
      })
      .then(device => {
        // Usa el dispositivo USB aquí
      })
      .catch(error => {
        console.error(error);
      });
    }, 1000); // Espera 1 segundo antes de solicitar el dispositivo USB
    
    • Si ninguna de las soluciones anteriores funciona, puedes intentar utilizar una solución alternativa almacenando la información del dispositivo (vendorId, productId) en el almacenamiento local o caché del navegador cuando el usuario seleccione el dispositivo USB por primera vez. Luego, puedes recuperar automáticamente la información del dispositivo desde el almacenamiento/caché sin necesidad de la acción del usuario en solicitudes posteriores.

    Espero que esto te ayude a utilizar la API de Web USB con un relé USB en el navegador Enterprise Browser de Zebra.

Comments are closed.