快捷键

Shortcut表示全局快捷键或系统级热键. 注册成功后,无需聚焦也可以工作.

Shortcut继承自EventEmitter. 每当用户按下所注册的快捷键,应用都将收到快捷对象中的 active事件.

示例

var option = {
  key : "Ctrl+Shift+A",
  active : function() {
    console.log("全局快捷键: " + this.key + " 被激活."); 
  },
  failed : function(msg) {
    // :(, 无法注册 |key| 或未注册 |key|.
    console.log(msg);
  }
};

// 使用 |option| 注册快捷键
var shortcut = new nw.Shortcut(option);

// 注册全快捷键 即使无聚焦也可工作
nw.App.registerGlobalHotKey(shortcut);


//注册后,用户按下Ctrl + Shift + A时,应用将收到 `active`事件.

// 您还可以监听快捷键的成功或失败事件
shortcut.on('active', function() {
  console.log("Global desktop keyboard shortcut: " + this.key + " active."); 
});

shortcut.on('failed', function(msg) {
  console.log(msg);
});

// 注销全局快捷键
nw.App.unregisterGlobalHotKey(shortcut);

new Shortcut(option)

用途:创建新的 Shortcut快捷键

  • option Object
    • key String - 快捷键组合如 "ctrl+shift+a". 细节请查阅 shortcut.key属性
    • active Function(可选) - 触发热键时的回调. 细节请查阅 shortcut.active 属性
    • failed Function (可选) - 注册热键失败时的回调. 细节请查阅 shortcut.failed 属性

shortcut.key

属性:Shortcutkey,多个则采用 + 连接的快捷键组合,如 "Ctrl+Alt+A".

该键值以0个或多个功能键和普通键组成,功能键如 alt可忽略大小写.

可用的功能键:

  • Ctrl
  • Alt
  • Shift
  • Command: Command Mac上即, Windows和Linux上即Windows键.

可用的普通键:

  • 09
  • AZ
  • F1F24
  • Comma
  • Period
  • Tab
  • Home / End / PageUp / PageDown / Insert / Delete
  • Up / Down / Left / Right
  • MediaNextTrack / MediaPlayPause / MediaPrevTrack / MediaStop
  • Comma,
  • Period.
  • Tab\t
  • Backquote`
  • Enter\n
  • Minus-
  • Equal=
  • Backslash\
  • Semicolon;
  • Quote'
  • BracketLeft[
  • BracketRight]
  • Escape
  • DOM Level 3 W3C KeyboardEvent Code Values

虽然 App.registerGlobalHotKey()可将普通键如 A注册成一个快捷键,但很少人会有这种需求,但API本身不会限制此类做法,因为你可能会希望用它监听某个按键

shortcut.active

属性:用户按下快捷键时获取或设置 Shortcutactive回调

shortcut.failed

属性:快捷键无法注册或注册失败时获取 Shortcutfailed回调

事件:active

触发:用户按下快捷键时

参考上文shortcut.active

事件:failed

触发:快捷键无法注册或注册失败时

参考上文shortcut.failed