0

まず、必要なのは単純ではないことを明確にしておきます(そして、明らかに私が必要としているのは、別のアプリケーションを実行することだけではありません)。

必要なもの:

  • メインアプリケーションを外部アプリケーション(「プラグイン」の一種)の機能で拡張する
  • これらの外部プラグインは、メインアプリケーションから分離する必要があります(コード/実装の点で)
  • 外部プラグインは、メインアプリケーションにシームレスに統合できる必要があります
  • 外部アプリケーションは、ユーザーからは「外部」のものと見なされるべきではありません。
  • 実装は、AppStoreの条件とサンドボックスのガイドラインに準拠する必要があります。

(私の頭の中ではアイデアが100%明確ではありませんが)

  • ホストアプリケーションが起動します
  • 外部アプリにはウィンドウ(および独自の機能)があります
  • 外部アプリが実行されると、そのウィンドウはホストアプリケーションの「シート」になります

私が説明していることが実行可能かどうかはわかりません。しかし、私はまだこれについてのあなたの意見を聞く必要があるでしょう。私はこの問題について多くの調査を行いましたが、ホストアプリを外部スクリプト(php、python、AppleScriptなどを介して入力を取得して出力を提供する)によって拡張可能にするという概念全体の基礎を築こうとしています。 。)、これは「プラグイン」が独自のユーザーインターフェースを持っている場合をカバーしていません。

それで、何かアイデアはありますか?(私を指すための例またはいくつかの特定の参照が理想的です...)

4

1 に答える 1

2

あなたが望むものに正確に対処する新しいAPIがあります:

libSystem の一部である XPC Services API は、Grand Central Dispatch (GCD) および launchd と統合された基本的なプロセス間通信のための軽量メカニズムを提供します。XPC サービス API を使用すると、XPC サービスと呼ばれる、アプリケーションに代わって作業を実行する軽量のヘルパー ツールを作成できます。

デーモンとサービスのプログラミング ガイド

これについては、 WWDC 2012 ビデオで良い話があります。

あなたが説明していることの多くは実際に可能であり、必ずしも非常に難しいわけではありません. ただし、あなたの「例」は、あなたが言うように、完全に一貫しているわけではありません。2 番目のアプリケーションを分離したいが、「外部」に見えないようにしたい。これらの力は完全に和解できるわけではありません。明らかな理由から、実行できない可能性が高いのは、既に単独で実行されているアプリケーションを引き継ぐことです。ただし、独自のプロセスを開始することはできます。

通常のアーキテクチャでは、いくつかのデーモンまたはサービスがタスクを実行し、1 つの制御プロセスがすべてのユーザー インターフェイスを処理します。上記のように、メールはこのように機能します。

于 2013-02-24T17:09:21.987 に答える