Flutter:如何从 SystemChannels.KeyEvent 禁用键事件捕获

问题描述

我正在开发一个应用程序,它必须使用连接到平板电脑作为输入键盘的外部扫描仪来扫描一些条形码和二维码。 要捕获扫描仪读取的文本,我在进行扫描的页面上执行以下操作:

SystemChannels.keyEvent.setMessageHandler((keyevent) async {
   // process the keyevent
}

这很好用,我遇到的问题是,当我返回另一个有输入的页面时,我可以使用屏幕键盘输入文本而没有问题,但是当我尝试删除一个字母时却没有工作调试显示删除 keyevent 正在被另一个页面上的 SystemChannels.keyEvent.setMessageHandler 捕获。

所以我的问题是如何在初始化后禁用关键事件捕获?

我尝试在页面的 on dispose 方法上将处理程序设置为 null,但没有奏效。

注意:如果我没有导航到我注册 SystemChannels.keyEvent.setMessageHandler 的页面,则删除按钮可以正常工作

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)