捕获音量增大按钮按下?
Capture volume up button press?
Firefox OS 应用程序能否检测到何时按下音量增大按钮?如果可以,怎么做?
(也许这只是 document
上的一个关键事件,还没有尝试过)
Bug 989198 is the bug to expose keydown/keyup events to apps. And this wiki page 描述了这种新的 KeyboardEvent
调度机制。目前在 FFOS phone v2.2 和更高版本 上,只有 VolumeUp
和 VolumeDown
关键事件会被分派到应用程序中。
在 FFOS 2.2 及更高版本 上,任何应用程序都可以侦听音量增大和音量减小按钮的 keydown
或 keyup
事件。
发送给处理程序的事件是常规的 KeyboardEvent
s(与桌面浏览器中的相同)。当用户按下降低音量或提高音量时,具有 .key
= VolumeDown
或 VolumeUp
的 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);
Firefox OS 应用程序能否检测到何时按下音量增大按钮?如果可以,怎么做?
(也许这只是 document
上的一个关键事件,还没有尝试过)
Bug 989198 is the bug to expose keydown/keyup events to apps. And this wiki page 描述了这种新的 KeyboardEvent
调度机制。目前在 FFOS phone v2.2 和更高版本 上,只有 VolumeUp
和 VolumeDown
关键事件会被分派到应用程序中。
在 FFOS 2.2 及更高版本 上,任何应用程序都可以侦听音量增大和音量减小按钮的 keydown
或 keyup
事件。
发送给处理程序的事件是常规的 KeyboardEvent
s(与桌面浏览器中的相同)。当用户按下降低音量或提高音量时,具有 .key
= VolumeDown
或 VolumeUp
的 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);