从 FinderSync 扩展启动 macOS 应用程序

Launch macOS app from FinderSync extension

我编写了一个实现 FinderSync 扩展的应用程序。

一切正常,我可以 "communicate" 通过 DistributedNotificationCenter 从扩展程序向主应用程序发送通知。但很明显,如果主应用程序只有 运行ning,它就可以工作。

是否有任何机制可以打开已终止的应用程序并传递参数?

更新:

想法是实现简单的图像处理应用程序。我想 运行 来自 Finder-Sync 扩展的主应用程序(包含执行代码和 GUI)。

更具体地说,我实现了 FIFinderSyncProtocolfunc menu(for menu: FIMenuKind) -> NSMenu?,当用户右键单击菜单项并选择我添加到菜单中的操作时,我想 run/open 主应用程序。

我想我的评论至少有些道理,我会把它放在答案中。

扩展允许使用应用处理的 URL 启动主应用。

与 URL 的通信可能还不够,但您可以拥有应用程序组,其中扩展程序可以将数据写入磁盘并可被主应用程序读取,或者使用您当前的通信方式进行一些调整这个方法。

您可以使用 SMLoginItemSetEnabled 启动后台 "helper" 应用程序。

https://developer.apple.com/documentation/servicemanagement/1501557-smloginitemsetenabled

这个助手应用程序可以在后台由沙盒应用程序启动,几乎没有限制,并在主应用程序关闭时保持打开状态。即使主应用已关闭,您的 FinderSync 扩展程序仍可继续与助手应用通信。