doesn't work on mobile
my device: OnePlus 3 Android 8.0.0 Chrome browser
gamepad: XBox controller.
here's the code. It is alerting 'a' in desktop chrome but not on mobile. I verified my gamepad is connected using https://html5gamepad.com/
const { Mouse, Keyboard, Gamepad, or, and } = Contro;
const gamepad = new Gamepad();
const controls = {
a: gamepad.button('a').trigger,
b: gamepad.button('b').trigger,
left: gamepad.button('left').trigger
}
function gameLoop() {
// Query the controls and do something
if (controls.a.query()) {
console.log('a');
alert('a')
}
if (controls.b.query()) {
console.log('b');
}
if (controls.left.query()) {
console.log('left')
alert('left')
}
requestAnimationFrame(gameLoop)
}
requestAnimationFrame(gameLoop)
My first guess is that your phone doesn't properly report the mapping of the gamepad which Contro currently requires to be 'standard'. You can check if this is the case by opening https://html5gamepad.com/ on your phone and looking at the mapping:

If I ever have the time to update this library I will loosen the requirements for gamepad connections and add support for other kinds of gamepads. Currently, however, I'm very busy working on a different project. I hope you understand that.