我正在尝试在使用 Ionic Framework 编写的应用程序中订阅物理键盘事件(非 ASCII 键)(当我尝试访问由 ionic serve
启动的页面时出现问题,在我的 ios 设备上部署应用程序或在 xcode 的 ios 模拟器中运行它)。
<div tabindex="1" (keyup)="onKey($event)" (keydown)="onKey($event)" (keypress)="onKey($event)"></div>
在 onKey
函数中,我只是在屏幕上打印关于哪个键被击中的信息:
onKeyDown(event: any): void {
console.log(JSON.stringify(event.key));
}
此函数按预期工作,直到我按下一个非 ascii 键:
- 命令,
- 控制,
- 选项,
- arrow_up,
- arrow_down,
- arrow_left,
- arrow_right,
- 大写锁定,
- 转变
它们只是没有记录。我没有收到任何错误消息,什么都没有。在常规浏览器中运行 ionic serve
时,一切正常。
应该提到什么。这些键可以正常工作(即我可以使用箭头键在文本区域内导航)。
我也试过纯 JavaScript:
document.onkeydown = function(evt) {
evt = evt || window.event;
alert(evt.keyCode);
};
相同的结果 - 在桌面上使用箭头键,在 iPad 上不起作用。
作为另一次尝试,我使用了 angular hotkeys , 但是这个库不能在 ios 设备上运行。
最佳答案
尝试 keydown
事件。与 keypress
事件不同,keydown 事件针对产生字符值的键和不产生字符值的键触发。
关于ios - (iOS) 从非 ascii 键捕获事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49306878/