12

OS X JavaScript for Automation (JXA) を使用しており、「場所を開く」Apple イベントをキャプチャできるようにしたいと考えています。

http://www.macosxautomation.com/applescript/linktrigger/に従って、顧客 URL ハンドラーをセットアップしました。同等のことを行うにはどうすればよいですか

on open location this_URL
  ...
end open location

JXAと?次のすべてを試しましたが、どれも実行できませんでした。

app = Application.currentApplication();
app.includeStandardAdditions = true;

function run() {
   app.displayDialog(JSON.stringify(arguments));
}

function openLocation() {
   app.displayDialog(JSON.stringify(arguments));
}

function openDocuments() {
   app.displayDialog(JSON.stringify(arguments));
}

function onOpenLocation() {
   app.displayDialog(JSON.stringify(arguments));
}

Apple の JXA ドキュメント ( https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/OSX10-10.html#//apple_ref/doc/uid/TP40014508-CH109-SW15 ) don'オープン ロケーション イベントの処理方法については議論しません。関数の外に追加するとアラートが表示される可能性があるため、スクリプトが開かれます。関数を実行して URL に渡すことができませんでした。

JXA コードを呼び出す AppleScript ハンドラを用意することで、この問題を回避していますが、これは確かに理想的とは言えません。

これについては、JXA クックブック ( https://github.com/dtinth/JXA-Cookbook )にも何も表示されませんでした。

4

1 に答える 1

0

あなたが示唆するように、(当面の) トリックは、同じバンドル内の 2 番目の (JavaScript for Automation) スクリプトにすぐに制御を渡すことのようです。

on open location strURL
    run script (path to resource "jsHandler.scpt" in directory "Scripts") with parameters {{|URL|:strURL}}
end open location
于 2016-04-27T00:06:51.380 に答える