Firefox OS应用程序可以检测到按下音量增大按钮的时间吗?如果是这样,怎么样?
(也许它只是document
上的关键事件,尚未尝试过)
答案 0 :(得分:2)
Bug 989198是将keydown / keyup事件暴露给应用程序的错误。这个wiki page描述了这种新的KeyboardEvent
调度机制。目前,在FFOS手机 v2.2及更高版本版本中,只会将VolumeUp
和VolumeDown
个关键事件发送到应用中。
在FFOS 2.2及更高版本上,任何应用都可以收听音量调高和音量调低按钮的keydown
或keyup
事件。
分派给处理程序的事件是常规KeyboardEvent
(与桌面浏览器中相同)。当用户按下音量减小或音量增大时,带有.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);