2015-03-18 6 views
3

Я пытаюсь играть с узлом webkits горячих клавиш пример, который можно посмотреть на странице своего ярлыка здесь: https://github.com/nwjs/nw.js/wiki/ShortcutУзел WebKit горячих клавиш пример не работает

Вот мой код:

test.js

// Load native UI library. 
var gui = window.require('nw.gui'); 

var option = { 
    key : "Ctrl+Shift+A", 
    active : function() { 
    console.log("Global desktop keyboard shortcut: " + this.key + " active."); 
    }, 
    failed : function(msg) { 
    // :(, fail to register the |key| or couldn't parse the |key|. 
    console.log(msg); 
    } 
}; 

// Create a shortcut with |option|. 
var shortcut = new gui.Shortcut(option); 

// Register global desktop shortcut, which can work without focus. 
gui.App.registerGlobalHotKey(shortcut); 

// If register |shortcut| successfully and user struck "Ctrl+Shift+A", |shortcut| 
// will get an "active" event. 

// You can also add listener to shortcut's active and failed event. 
shortcut.on('active', function() { 
    console.log("Global desktop keyboard shortcut: " + this.key + " active."); 
}); 

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

// Unregister the global desktop shortcut. 
gui.App.unregisterGlobalHotKey(shortcut); 

index.html

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Hello World!</title> 
    <script> 
     require("./test.js"); 
    </script> 
    </head> 
    <body> 
    <h1>Hello World!</h1> 
    We are using node.js <script>document.write(process.version)</script>. 
    </body> 
</html> 

package.json

{ 
    "name": "nw-demo", 
    "main": "index.html", 
    "dependencies": { 
    "nw": "^0.12.0" 
    }, 
    "scripts": { 
    "start": "nw" 
    } 
} 

Он ломается в этой строке на test.js, поскольку неопределенное не является функцией.

var shortcut = new gui.Shortcut(option); 
+0

пример на сайте, действительно кажется, сломана в данный момент (по крайней мере, в OS X). См. Https://github.com/nwjs/nw.js/issues/3263 – dwkns

+0

Да, это проблема, которую я создал на репо. –

ответ

0

Просто удалите эту строку:

gui.App.unregisterGlobalHotKey(shortcut); 

В своем коде вы зарегистрировать его, а затем удалить. Она работает хорошо для меня (макинтош, nwjs 0.12)

+0

Я уже пробовал, что это не сработало. Он ломается, прежде чем он доберется до этой линии. –

+0

Что он говорит? –

+0

Undefined не является функцией. –

0

Как shaynem в (https://github.com/nwjs/nw.js/issues/3263#issuecomment-89679115) указывает на то, вы должны быть запущены по крайней мере, узел-WebKit> = 0.10.0

Вы должны убедиться, что ваш PATH (или который вы используете, например nodebob) не ссылается на старые старые версии узла-webkit после обновления.

Кроме того, если вы на Ubuntu, вы можете наткнуться на открытый вопрос (https://github.com/nwjs/nw.js/issues/3199)

0

примечание WebKit 0.13.0 имеет ошибку, где к строчными буквами, даже если метод документируется с прописной K . Попробуйте:

registerGlobalHotkey(shortcut); 

проверить это ошибка существует сделать:

var util = require('util'); 
console.log(util.inspect(nw.App)); 

 Смежные вопросы

  • Нет связанных вопросов^_^