我正在使用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)中看到任何关于此事的内容。
答案 0 :(得分:0)
正如你所说,诀窍(目前)似乎是将控制权立即传递给同一个包中的第二个(自动化JavaScript)脚本。
on open location strURL
run script (path to resource "jsHandler.scpt" in directory "Scripts") with parameters {{|URL|:strURL}}
end open location