Flutter web在开发页面时使用到键盘监听,网上找了一圈都推荐使用RawKeyboardListener组件
但是在实际开发过程中发现该组件时常失灵导致无法监听到键盘输入。
现在给出解决方案,使用HardwareKeyboard对象。
使用方法获取HardwareKeyboard 单例,然后添加自己的回调方法
late HardwareKeyboard hardwareKeyboard;
@override
void initState() {
hardwareKeyboard = HardwareKeyboard.instance;
hardwareKeyboard.addHandler((event) {
print("event=${event.toStringShort()}");
return true;
});
super.initState();
}
这样监听每次都能监听到硬件键盘输入。
event=KeyDownEvent#b9cb2
event=KeyUpEvent#b073c
event=KeyDownEvent#8425d
event=KeyUpEvent#b8cec
event=KeyDownEvent#3c7a9
event=KeyUpEvent#c0b31
event=KeyDownEvent#9d155
event=KeyUpEvent#9b0ca
event=KeyDownEvent#5bd0b
event=KeyUpEvent#e8fdf
event=KeyDownEvent#78c1b
event=KeyUpEvent#0abb7
日志台输出如上,我们完全可以根据event对象判断出当前是什么按键输入,非常方便。