捕捉音量上键的按下?

5
一个Firefox OS应用程序能否检测到音量上键被按下?如果可以,怎么做?
(也许只是在document上触发一个按键事件,我还没有尝试过)
1个回答

3

Bug 989198 是公开 keydown/keyup 事件给应用程序的 bug。这个 wiki 页面 描述了这种新的 KeyboardEvent 分发机制。目前在 FFOS 手机v2.2 及更高版本中,只有 VolumeUpVolumeDown 按键事件会被分派到应用程序中。

在 FFOS 2.2 及更高版本上,任何应用程序都可以监听音量增大和音量减小按钮的 keydownkeyup 事件。分派到处理程序的事件是常规的 KeyboardEvent(与桌面浏览器中相同)。当用户按下音量减小或音量增大时,带有 .key = VolumeDownVolumeUp 的 KeyboardEvent 将被分派到所关注的应用程序中。如果您想防止系统应用程序处理它们(即将音量降低或提高),只需在您的键事件处理程序中简单地调用 event.preventDefault()

以下是一个 keydown 事件处理的示例:

var keyDownHandler = function(evt) {
  if (evt.key === 'VolumeDown') {
    // process logic of volume-down
  } else if (evt.key === 'VolumeUp') {
    // process logic of volume-up
  }
  evt.preventDefault(); // to stop system app from processing keydown event
};

window.addEventListener('keydown', keyDownHandler);

已确认在我的Flame设备上,与2.2.0.0-prerelease版本兼容。 - feklee
今天的 3.0.0.0-prerelease 版本已经不能用了。我刚刚把这个问题报告成了 bug 1138745 - feklee
当屏幕锁定时它是否可用?如果不行,那么它是PWA是否重要? - pbotas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接