Files
Web-NibblePoker/static/resources/NibblePoker/applets/web-usb-test/web-usb-test.mjs
Herwin Bozet ec905b4735 Added more content, Minor incremental improvements
Update app.py, uuid-generator.yml, and 23 more files...
2025-02-24 21:17:56 +01:00

61 lines
2.0 KiB
JavaScript

/**
* Checks if the required JS API for WebUSB is available.
* @returns {boolean}
*/
function isWebUsbAvailable() {
return navigator.usb !== null;
}
// Tool-centric stuff
{
/** @type {HTMLElement} */
const eApiSupportedText = document.querySelector("#web-usb-test-api-supported");
/** @type {HTMLElement} */
const eApiNonSupportedText = document.querySelector("#web-usb-test-api-not-supported");
/** @type {HTMLElement} */
const eApiSupportUnknownText = document.querySelector("#web-usb-test-api-support-unknown");
/** @type {HTMLButtonElement} */
const eListAllButton = document.querySelector("button#web-usb-test-list-all");
/** @type {HTMLButtonElement} */
const eBa63GetterButton = document.querySelector("button#web-usb-test-ba63-getter");
window.onload = function () {
if (!isWebUsbAvailable()) {
eApiSupportUnknownText.hidden = true;
eApiNonSupportedText.hidden = false;
return;
}
eApiSupportUnknownText.hidden = true;
eApiSupportedText.hidden = false;
eListAllButton.addEventListener("click", function () {
navigator.usb.getDevices().then((devices) => {
console.log(`Total devices: ${devices.length}`);
devices.forEach((device) => {
console.log(
`Product name: ${device.productName}, serial number ${device.serialNumber}`,
);
console.log(device);
});
});
});
eBa63GetterButton.addEventListener("click", function () {
const filters = [
{vendorId: 0x0AA7, productId: 0x0200},
];
navigator.usb
.requestDevice({filters})
.then((usbDevice) => {
console.log(`Product name: ${usbDevice.productName}`);
})
.catch((e) => {
console.error(`There is no device. ${e}`);
});
});
}
}