ios - (iOS) 从非 ascii 键捕获事件

标签 ios angular cordova ionic3

我正在尝试在使用 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/

相关文章:

ios - 使用 iPhone 应用程序运送 120 万条记录

ios - 当文本字段为空时,如何在 Xcode UI 测试中测试 UITextField?

ios - 如何将对象数组从 iPhone 传递到 Apple Watch。只应传递某些字段

css - Flag-icon-css 在 Angular 2+ 中仅显示方形标志 (8)

javascript - 单击图像上的放大弹出窗口在浏览器中打开

android - 尝试使用他们的 Apportable SDK 进行构建

html - 如何使用 HTML5 或/或 Angular8 实现持续时间选择器,小时数超过 24 小时?

angular - 在嵌套子组件中使用辅助路由

cordova - 具有远程Java脚本的PhoneGap应用程序

android - phonegap 2.3.0 中的 InAppBrowser