Hello. WebView doesn’t seem to receive remote’s Menu button presses (allowSystemKeyEvents is set to true). Is this a deliberate choice or an accidental omission?
As a workaround, I’ve used useTVEventHandler:
useTVEventHandler((event) => {
if (
event.eventType === 'menu' &&
(event.eventKeyAction === 0 || event.eventKeyAction === 1)
) {
webRef.current?.injectJavaScript(`
(function (){
const event = document.createEvent('Event');
event.initEvent(${JSON.stringify(event.eventKeyAction ? 'keyup' : 'keydown')}, true, true);
event.key = ${JSON.stringify('ContextMenu')};
(document.activeElement || window).dispatchEvent(event);
})();
`);
}
});
Somewhat relatedly, neither WebView nor useTVEventHandler seem to recognize some TV remote button presses sent via HDMI, for example red/green/yellow/blue buttons present on older remotes. WebView just doesn’t receive them, while useTVEventHandler receives {eventId: number, eventKeyAction: 0 | 1, eventType: 'unknown'}
Numpad presses are recognized via useTVEventHandler as eventType: 'num_{0...9}'