Chrome和Web串行API,如何在不询问的情况下获得端口

ndasle7k  于 2023-04-09  发布在  Go
关注(0)|答案(2)|浏览(287)

我需要你的帮助
有没有一种方法可以控制一个串行端口,而不使用弹出窗口?(without port = await navigator.serial.requestPort();
谢谢你,对不起,我的英语,意大利语在这里发言。

iqjalb3h

iqjalb3h1#

我相信下面的JS代码应该适合你:

// Get all serial ports the user has previously granted the website access to.
const ports = await navigator.serial.getPorts();

来源:https://web.dev/serial/#open-port

kyxcudwk

kyxcudwk2#

在第一个鼠标或键盘事件上运行此代码,它将在第一次运行时弹出端口权限,并在下次运行时自动获取端口。

// specify device details
let usbVendorId = 0x0403, // Arduino
    usbProductId = 0x6001; // Nano

// get serial ports
navigator.serial
.getPorts()
.then(
    ports => {

        // no ports available, prompt user permission
        if(!ports.length) 
            return navigator.serial
            .requestPort({
                filters: [{usbVendorId, usbProductId}]
            });
        // port is available
        else 
            return Promise
            .resolve(ports[0]);

    }
)
.then(
    port => {

        port
        .open({
            baudRate: 9600
        })
        .then(
            () => {

                const reader = port.readable.getReader();

                // ...

            }
        );

    }
);

相关问题