【问题标题】:Capture volume up button press?捕获音量增大按钮按下?
【发布时间】:2015-01-20 17:01:52
【问题描述】:

Firefox OS 应用程序能否检测到何时按下音量增大按钮?如果有,怎么做?

(可能只是document的一个关键事件,还没试过)

【问题讨论】:

    标签: javascript firefox-os


    【解决方案1】:

    Bug 989198 是向应用程序公开 keydown/keyup 事件的错误。而这个wiki page 描述了这个新的KeyboardEvent 调度机制。目前在 FFOS 手机 v2.2 及更高版本 上,只有 VolumeUpVolumeDown 键事件会被调度到应用程序中。

    在 FFOS 2.2 及更高版本上,任何应用程序都可以监听keydownkeyup 音量增大和音量减小按钮事件。 分派给处理程序的事件是常规的KeyboardEvents(与桌面浏览器中的相同)。当用户按下音量减小或音量增大时,带有.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。
    • 今天的 3.0.0.0-prerelease 不再适用。刚刚将其归档为错误1138745
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    相关资源
    最近更新 更多