2019年1月15日火曜日

JXA 入門

概要

JXA (JavaScript for Automation) は Yosemite から使える Mac 上での操作を自動化するためのツールです
これまでは Apple Script という独自の言語を使っていましたがそれが JavaScript でも操作できるようになりました
今回は基本的な使い方を紹介したいと思います

環境

  • macOS 10.14.2
  • Script Editor 2.11 (203)

スクリプトエディタを開く

ミッションコントロールからであればその他のアプリの中にあります
jxa1.png

スポットライトから開いても OK です
とりあえずスクリプトエディタを開きましょう

Hello World

ダイアログに「Hello jxa」と表示するスクリプトを作成してみます
以下のコードを貼り付けて test.script という名前で適当な場所に保存しましょう

var app = Application.currentApplication();
app.includeStandardAdditions = true;
app.displayAlert("Hello jxa");

jxa2.png

JavaScript を選択して再生ボタンを押せばダイアログが表示されます
jxa3.png

デバッグする

console.log も使えます
console.log を使う場合はスクリプトエディタの下部の表示を「メッセージ」に切り替える必要があります
jxa4.png

Safari の Web インスペクタを使ってデバッグする

上記以外に Safari を使ってデバッグすることもできます
Safari を立ち上げて「開発」-> (自分のマシン名) ->「JSContents の Web インスペクタを自動的に表示」にチェックを入れます
「開発」がメニューバーにない場合は環境設定の詳細から表示されることができます
jxa5.png

あとは Safari を立ち上げたままにしてスクリプトの先頭に debugger; と入力して起動すれば Web インスペクタが自動的に立ち上がります
jxa6.png

コマンドラインから実行する

いちいちスクリプトエディタを立ち上げて起動するのは面倒です
コマンドラインから osascript コマンドを使うとターミナルから実行できます

  • osascript -l JavaScript test.scpt
hoge
buttonReturned:OK

こんな感じでデバッグ用のメッセージも表示されます
上記はファイルのあるパスに移動して実行していますが iCloud に保存している場合はパスが複雑なので適当なパスに移動してから実行すると良いと思います

リファレンスの表示

.app ファイルからオブジェクトを生成してそこから操作できる項目を表示します
「ファイル」->「用語説明を開く」でアプリの一覧が表示されるのでそこから「選択」をクリックすればそのアプリに対してできることが表示されます
jxa7.png

jxa8.png

基本的にはここから操作したいアプリを選択してスクリプトを構築していくのが良いと思います

最後に

JXA に入門してみました
Apple Script で書くよりかは断然書きやすいと思います
好きなエディタを使って開発することもできますが、リファレンスがスクリプトエディタにしか付いていないので素直にスクリプトエディタで開発するのが良いかと思います
ただ補完などはしてくれないのでそこは自分で頑張るしかないかなと思います

参考サイト

0 件のコメント:

コメントを投稿