从 FinderSync 扩展启动 macOS 应用程序
Launch macOS app from FinderSync extension
我编写了一个实现 FinderSync 扩展的应用程序。
一切正常,我可以 "communicate" 通过 DistributedNotificationCenter
从扩展程序向主应用程序发送通知。但很明显,如果主应用程序只有 运行ning,它就可以工作。
是否有任何机制可以打开已终止的应用程序并传递参数?
更新:
想法是实现简单的图像处理应用程序。我想 运行 来自 Finder-Sync 扩展的主应用程序(包含执行代码和 GUI)。
更具体地说,我实现了 FIFinderSyncProtocol
的 func menu(for menu: FIMenuKind) -> NSMenu?
,当用户右键单击菜单项并选择我添加到菜单中的操作时,我想 run/open 主应用程序。
我想我的评论至少有些道理,我会把它放在答案中。
扩展允许使用应用处理的 URL 启动主应用。
与 URL 的通信可能还不够,但您可以拥有应用程序组,其中扩展程序可以将数据写入磁盘并可被主应用程序读取,或者使用您当前的通信方式进行一些调整这个方法。
您可以使用 SMLoginItemSetEnabled
启动后台 "helper" 应用程序。
https://developer.apple.com/documentation/servicemanagement/1501557-smloginitemsetenabled
这个助手应用程序可以在后台由沙盒应用程序启动,几乎没有限制,并在主应用程序关闭时保持打开状态。即使主应用已关闭,您的 FinderSync 扩展程序仍可继续与助手应用通信。
我编写了一个实现 FinderSync 扩展的应用程序。
一切正常,我可以 "communicate" 通过 DistributedNotificationCenter
从扩展程序向主应用程序发送通知。但很明显,如果主应用程序只有 运行ning,它就可以工作。
是否有任何机制可以打开已终止的应用程序并传递参数?
更新:
想法是实现简单的图像处理应用程序。我想 运行 来自 Finder-Sync 扩展的主应用程序(包含执行代码和 GUI)。
更具体地说,我实现了 FIFinderSyncProtocol
的 func menu(for menu: FIMenuKind) -> NSMenu?
,当用户右键单击菜单项并选择我添加到菜单中的操作时,我想 run/open 主应用程序。
我想我的评论至少有些道理,我会把它放在答案中。
扩展允许使用应用处理的 URL 启动主应用。
与 URL 的通信可能还不够,但您可以拥有应用程序组,其中扩展程序可以将数据写入磁盘并可被主应用程序读取,或者使用您当前的通信方式进行一些调整这个方法。
您可以使用 SMLoginItemSetEnabled
启动后台 "helper" 应用程序。
https://developer.apple.com/documentation/servicemanagement/1501557-smloginitemsetenabled
这个助手应用程序可以在后台由沙盒应用程序启动,几乎没有限制,并在主应用程序关闭时保持打开状态。即使主应用已关闭,您的 FinderSync 扩展程序仍可继续与助手应用通信。