使用OS X JavaScript for Automation(JXA)来收听“开放位置”Apple Event

时间:2015-12-29 05:25:38

标签: macos automation applescript javascript-automation jxa

我正在使用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)不讨论如何处理开放位置事件。我的脚本将被打开,因为如果我将其添加到函数之外,我可以显示警告。我无法获得执行函数并在URL中传递。

我正在通过使用AppleScript处理程序解决这个问题,然后调用我的JXA代码,但这肯定不太理想。

我也没有在JXA Cookbook(https://github.com/dtinth/JXA-Cookbook)中看到任何关于此事的内容。

1 个答案:

答案 0 :(得分:0)

正如你所说,诀窍(目前)似乎是将控制权立即传递给同一个包中的第二个(自动化JavaScript)脚本。

on open location strURL
    run script (path to resource "jsHandler.scpt" in directory "Scripts") with parameters {{|URL|:strURL}}
end open location