0

首先,让我明确一点,我需要它并不简单(显然我想要的不仅仅是执行另一个应用程序)。

我需要的 :

  • 使用外部应用程序的功能扩展我的主应用程序(类似于“插件”)
  • 这些外部插件必须与主应用程序分开(在代码/实现方面)
  • 外部插件必须能够无缝集成到主应用程序中
  • 外部应用程序不应用户视为“外部”的东西
  • 实施必须遵守 App Store 条款和沙盒指南。

示例 (尽管这个想法在我脑海中并不是 100% 清楚)

  • 主机应用程序启动
  • 外部应用程序有一个窗口(和它自己的功能)
  • 执行外部应用程序后,它的窗口现在变成主机应用程序的“工作表”

我不知道我所描述的是否可行。但是,我仍然需要听取您对此的意见。我已经对此事进行了大量研究,尽管我即将建立整个概念,即通过外部脚本(通过 php、python、AppleScript 等获取输入并提供一些输出)使主机应用程序可扩展。 .),这不包括“插件”有自己的用户界面的情况。

那么,有什么想法吗?(一个例子或一些具体的参考指向我将是理想的......)

4

1 回答 1

2

有一个新的 API 可以完全满足您的需求:

XPC 服务 API 是 libSystem 的一部分,它为与 Grand Central Dispatch (GCD) 和 launchd 集成的基本进程间通信提供了一种轻量级机制。XPC 服务 API 允许您创建轻量级帮助工具,称为 XPC 服务,代表您的应用程序执行工作。

守护进程和服务编程指南

WWDC 2012 视频中对此进行了很好的讨论。

你所描述的大部分内容确实是可能的——而且不一定非常困难。但是,您的“示例”并不像您自己所说的那样完全连贯。您希望第二个应用程序是独立的,但您不希望它看起来是“外部的”;这些力量并不完全可调和。出于显而易见的原因,您不太可能做的是接管已经独立运行的应用程序。但是您可以开始自己的流程。

通常的架构是有几个守护进程或服务为您执行任务,以及一个控制进程,它还处理所有用户界面。如上所述,邮件以这种方式工作。

于 2013-02-24T17:09:21.987 回答