おはようございます。次男の入園式に長男も何故か一緒に入場行進した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
関連記事