おはようございます。次男の入園式に長男も何故か一緒に入場行進したkjunichiです。
Node-webkitで通知センターを使った
node-webkit向けのNodObjCの導入はこちらを参考にしてください。
Cocoa APIを直接叩きたかった
じつは相当前から通知センターをNodObjCで叩こうとしているのだが、さっぱりなので、今回はAppleScriptでの実装に甘んじた。
<button id="play">notice</button> <script> var $ = require('NodObjC'); $.framework('Foundation'); $.framework('Cocoa'); var app = $.NSApplication('sharedApplication'); var btn = document.getElementById("play"); btn.addEventListener('click',function () { // create an NSString of the applescript command that will be run var command = $.NSString('stringWithUTF8String','display notification "無理やり通知する!" with title "node-webkit" subtitle "applescriptで"'); // create an NSAppleScript instance with the `command` NSString var appleScript = $.NSAppleScript('alloc')('initWithSource', command) // finally execute the NSAppleScript instance synchronously var resultObj = appleScript('executeAndReturnError', null) // resultObj may be `null` or an NSAppleEventDescriptor instance , so check first if (resultObj) { // print out the value console.dir(resultObj('stringValue').toString()) } }); </script>
まとめ
Node-webkitではHTML5の通知APIは使えないものの
夢中になってnode-webkitでNodObjCを動かしたが、今回の通知センターはAppleScriptを使っての実装なので、osascriptをnode.jsから外部コマンド起動すれば出来るんじゃなかろうかと。
Link
関連記事