概要
JXA (JavaScript for Automation) は Yosemite から使える Mac 上での操作を自動化するためのツールです
これまでは Apple Script という独自の言語を使っていましたがそれが JavaScript でも操作できるようになりました
今回は基本的な使い方を紹介したいと思います
環境
- macOS 10.14.2
- Script Editor 2.11 (203)
スクリプトエディタを開く
ミッションコントロールからであればその他のアプリの中にあります
スポットライトから開いても OK です
とりあえずスクリプトエディタを開きましょう
Hello World
ダイアログに「Hello jxa」と表示するスクリプトを作成してみます
以下のコードを貼り付けて test.script という名前で適当な場所に保存しましょう
var app = Application.currentApplication();
app.includeStandardAdditions = true;
app.displayAlert("Hello jxa");
JavaScript を選択して再生ボタンを押せばダイアログが表示されます
デバッグする
console.log も使えます
console.log を使う場合はスクリプトエディタの下部の表示を「メッセージ」に切り替える必要があります
Safari の Web インスペクタを使ってデバッグする
上記以外に Safari を使ってデバッグすることもできます
Safari を立ち上げて「開発」-> (自分のマシン名) ->「JSContents の Web インスペクタを自動的に表示」にチェックを入れます
「開発」がメニューバーにない場合は環境設定の詳細から表示されることができます
あとは Safari を立ち上げたままにしてスクリプトの先頭に debugger;
と入力して起動すれば Web インスペクタが自動的に立ち上がります
コマンドラインから実行する
いちいちスクリプトエディタを立ち上げて起動するのは面倒です
コマンドラインから osascript
コマンドを使うとターミナルから実行できます
osascript -l JavaScript test.scpt
hoge
buttonReturned:OK
こんな感じでデバッグ用のメッセージも表示されます
上記はファイルのあるパスに移動して実行していますが iCloud に保存している場合はパスが複雑なので適当なパスに移動してから実行すると良いと思います
リファレンスの表示
各 .app
ファイルからオブジェクトを生成してそこから操作できる項目を表示します
「ファイル」->「用語説明を開く」でアプリの一覧が表示されるのでそこから「選択」をクリックすればそのアプリに対してできることが表示されます
基本的にはここから操作したいアプリを選択してスクリプトを構築していくのが良いと思います
最後に
JXA に入門してみました
Apple Script で書くよりかは断然書きやすいと思います
好きなエディタを使って開発することもできますが、リファレンスがスクリプトエディタにしか付いていないので素直にスクリプトエディタで開発するのが良いかと思います
ただ補完などはしてくれないのでそこは自分で頑張るしかないかなと思います
0 件のコメント:
コメントを投稿