【问题标题】:Can Chrome "packaged apps" respond to global keyboard commands?Chrome“打包的应用程序”可以响应全局键盘命令吗?
【发布时间】:2013-08-15 07:22:30
【问题描述】:

我最近从 Spotify 切换到了 Google 音乐,但想念有一个可以响应键盘命令的桌面客户端。特别是,我的笔记本电脑有媒体键,我的手指会因为肌肉记忆力不足而不停地按它们。

为了解决这个问题(以及其他问题),我将 Google Play 变成了一个打包的应用程序:“Package All Areas

不幸的是,我似乎找不到任何有关获取打包应用程序以响应键盘快捷键的文档。 这可能吗?不一定是媒体键(如果它们很棘手的话),但如果它们从操作系统的任何地方触发,我更喜欢它。

【问题讨论】:

    标签: keyboard-shortcuts google-chrome-app media-keys


    【解决方案1】:

    目前这在平台上是不可能的。 this bug 跟踪的一项工作正在进行中,以支持媒体密钥。

    如果您现在绝对想这样做并且不关心复杂的用户要求,Boris Smus 有 a good take on this,使用本机密钥拦截器,通过 websocket 将拦截的命令发送到应用程序(他的帖子中的扩展,但很容易适应应用程序)。

    【讨论】:

      【解决方案2】:

      从 chrome 25 开始,有 chrome.commands,并且因为 chrome 35 命令可以具有全局范围(参见标题“范围”)。

      编辑: 我之前发布了命令 api 仅适用于扩展(而不适用于“打包的应用程序”),因为文档中仅明确提到了扩展程序 - 只是在打包的应用程序上尝试过,然后 BOOM - 它可以工作:)

      编辑二:虽然文档声明“扩展开发人员仅限于指定 Ctrl+Shift+[0..9] 作为全局快捷方式”,但我成功尝试使用 'MediaPlayPause' 作为 OSX 上的全局快捷方式(感谢用户Xan指向我那里)

      manifest.json:

        "app": {
          "background": {
            "scripts": ["main.js"]
          }
        },
        "commands": {
          "toggle-feature-foo": {
            "suggested_key": {
              "default": "Ctrl+Shift+5"
            },
            "description": "Toggle feature foo",
            "global": true
          }
        }
      

      main.js:

      chrome.commands.onCommand.addListener(function(command) {
          console.log('command:',command);
      });
      

      【讨论】:

      • 是的,但是您尝试过媒体密钥吗?它们未列为允许的全局命令。
      • 没试过,但在“使用”下,文档说:支持的键:AZ、0-9、逗号、句点、主页、结束、PageUp、PageDown、空格、插入、删除、箭头键(上、下、左、右)和媒体键(MediaNextTrack、MediaPlayPause、MediaPrevTrack、MediaStop)。
      • 再往下,“扩展开发者只能指定 Ctrl+Shift+[0..9] 作为全局快捷键”.
      • 我的错,对不起。无论如何,OP声明“不一定是媒体密钥”所以我猜答案是有效的 - 但你是对的,没有媒体密钥。
      • 你能测试一下吗,考虑到你已经设置了一个样本?
      猜你喜欢
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 2010-10-10
      • 2013-11-22
      • 2021-11-02
      • 2020-04-18
      相关资源
      最近更新 更多