【问题标题】:How to add AppleScript/JXA support to non cocoa app?如何将 AppleScript/JXA 支持添加到非可可应用程序?
【发布时间】:2018-09-30 21:51:23
【问题描述】:

我正在研究我可以为开源做出贡献的事情。我使用的许多 FOSS 应用程序的一个痛点是它们不支持脚本。我认为至少尝试为我使用的一些应用程序添加一些基本的脚本支持会很好,例如OBS。

但是,所有添加脚本支持的指南都假定相关应用程序是用 Cocoa 编写的。我正在查看的许多 FOSS 应用程序是……不是。有没有人有一些很好的资源可以将非本地功能暴露给本地系统服务,就像脚本所需要的那样?

【问题讨论】:

    标签: javascript applescript open-source javascript-automation


    【解决方案1】:

    实现非平凡 Apple 事件支持是正确的 PITA;如果你必须在 C/C++ 中从头开始实现它(CocoaScripting.framework 对于非 Cocoa 应用程序来说是一个非入门者,任何第三方框架都将大量过时)。现在我什至不会尝试:AppleScript 正在消亡,JXA 已经消亡,Apple 对 Mac 自动化未来的计划(如果有的话)保持沉默。如果/当 Shortcuts 进入 macOS 时,这可能会改变,但这不会在 10.15 之前发生。

    如果您只想添加 真的 基本自动化支持(即没有“对象模型”,只需像 play FILE/convert FILE 这样的简单命令)并且应用程序可以很好地与 macOS 事件循环配合使用,通过旧的 C Apple Event Manager API 安装 Apple 事件处理程序并解压缩和打包简单的参数和结果(数字、字符串)并不是非常困难(尽管仍然非常乏味)。它不会非常“AppleScript-ish”,但至少它是可以实现的。或者,如果应用程序已经有自己的内置(例如 JavaScript)脚本支持,那么实现一个 do script CODE [with parameters {ARG1,ARG2,…}] 处理程序来调用它是很容易的。

    就文档和示例代码而言,搜索AEInstallEventHandler 看看会发生什么。不会很好,但这已经很好了。准备好自己弄清楚很多这些东西。

    【讨论】:

    • 谢谢,是的,这更多是关于获得集成多种语言的经验,因为它实际上是关于提供出色的脚本支持,所以这个答案正是我正在寻找的。弄清楚这一点将是一个有趣的挑战!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2012-02-18
    相关资源
    最近更新 更多