如果您愿意灵活地采用哪种实现方法,自动化 JavaScript (JXA) 1.0 就足够了。使用 JXA 1.0,您可能需要执行以下操作:
- 当 JXA-to-traditional-AppleEvents* 桥不起作用时,使用 JXA-to-ObjC 桥,
- 当 JXA 1.0
whose 桥查询不起作用时创建一个 JavaScript 过滤器,
- 清楚地考虑何时使用 Objective-C 端、JXA-new-stuff-bridge、传统的 AppleEvents-bridge 或 JavaScript 端
* Apple 事件脚本自 1990 年代初从 Classic MacOS 7 开始就已存在。自 2006 年左右以来,Apple 建议考虑非 Apple 事件机制。
注意: Apple 事件并不总是最有效或最合适的进程间通信机制。 OS X 提供了其他机制...[Apple, "Open Scripting Architecture"]
AppleScript (AS) 和 JavaScript for Automation (JXA) 套件都具有类似的自动化覆盖范围。 AppleScript 桥梁更加成熟。 JavaScriptCore 引擎有更多的内置功能。例如,regex、encodeURI、JSON.stringify 等功能已经内置到 JavaScriptCore 中。
|特色 |作为 |江西汽车 |
|-----------------------------|------------|------ -----|
|脚本字典 | &查看; | &查看; |
|标准脚本添加 | &查看; | &查看; |
| JavaScriptCore | &短跑; | &查看; |
| Apple 事件脚本 | &查看; | &查看; |
|可可脚本 | &查看; | &查看; |
| C 函数绑定 | &短跑; | &查看; |
|自动化支持 | &查看; | &查看; |
| #!外壳可运行 | &查看; | &查看; |
|调试器 |第三方 | &短跑; |
|语言流行度 |利基 |广泛 |
这是否意味着我不必再学习 AppleScript 来编写脚本...?
也许是的。
有时阅读现有的 AppleScript 示例会有所帮助。不过,有时扔掉 AppleScript 文件并在没有预先设想的方法的情况下开始会更有效率。
顺便说一句:您仍然需要了解使用的任何脚本语言的脚本字典。
从希望让应用自动执行操作的应用用户的角度来看?
作为应用用户,JavaScript for Automation 将使用前面提到的注意事项。特别是,考虑使用更多的 JavaScript 和 Cocoa 功能,减少“Apple Events”功能。
例如,“传统的“系统事件”方法具有简单的优点,但使用$.NSFileManager 可以显着提高性能。”在一个用例中,$.NSFileManager 比“系统事件”快 300%。 [JXA-Cookbook Wiki : Getting a List of Folder Contents]
...关于应用开发者 (Cocoa)?如果他们想让他们的应用程序可编写脚本,他们可以不学习 AppleScript 吗?
是和否。
开发人员控制的是通过脚本字典公开的对象和方法。此脚本字典 (.sdef) 必须由 任何脚本语言 访问,包括 Perl、Python 和 Ruby。
因此,开发人员在幕后提供了一个以 Objective-C/Cocoa 为中心且通常与脚本语言无关的应用程序脚本网关。
开发人员无法控制的是脚本桥接(例如 Cocoa Scripting、Apple Events、ObjC、C Function Binding)。向Apple Bug Reporter 报告脚本桥错误。
一个有责任心的开发人员将拥有一个测试套件,通过对其客户重要的所有脚本语言来使用应用程序脚本字典。良好的测试覆盖率将是自动化的,并且可能会使用多种脚本语言。
...已经知道 JavaScript,我还有什么理由应该再学习 AppleScript 吗?
在产生更多 JXA 文档之前,一些现有的 AppleScript 材料可能有助于解释脚本架构的各个方面。
现有的 AppleScript 自动化,具有熟练的 AppleScript 专业知识,在创收工作流中,可能希望在何时采用 JXA 时保持保守。
如果您已经了解 JavaScript 并且自动化是为您个人准备的,那么 JXA(带有注意事项)似乎是一个合理的选择。
更新:Apple 现在普遍发布了Mac 自动化脚本指南
2016 年 10 月 27 日修订。介绍使用 AppleScript 和 JavaScript 的新文档。
2018 年 6 月 7 日修订。新文档介绍了如何使用 AppleScript 和 JavaScript 在 OS X 中简化工作流程并提高工作效率。
2019 年更新:Mac Automation Scripting Guide is now an archive document。