2016-12-17 14 views
0

私はうまく機能してカスタムURLスキームを持っていますが、私は変更することが期待しています一つの小さな行動がある...現在、インバウンドURLは(ここではそう、すべての良い)次のコードでキャプチャされ、処理されます。macOSカスタムurlscheme、アプリを一番最初のアプリにしないでください?

- (void) handleURLEvent:(NSAppleEventDescriptor*)event withReplyEvent:(NSAppleEventDescriptor*)replyEvent 
{ 
    NSString* url = [[event paramDescriptorForKeyword:keyDirectObject] stringValue]; 
    //I parse and deal with the url here// 
    } 

私のアプリが最前面のアプリケーションになるのを避けることはできますか? URLを受け取るたびに、私はこのアプリからのコミュニケーションを開始し、単に応答を聞いているので、私のアプリはすでに開いています。しかし、NSTimerを使って呼び出しを行うこともありますので、私のアプリは最前面のアプリになるかもしれません。現在Safariでページを参照している場合、私のアプリがSafariから注目を集めるようにすることで、ワークフローを混乱させたくありません。私はこれが理にかなってほしい。

これは可能ですか?

答えて

0

興味のある方は、代わりにグループコンテナを設定してください。ペイロードをグループのデフォルトに保存してから、ヘルパーアプリからNSDistributedNotificationを送信します。メインアプリは通知を受け取り、グループデフォルトからペイロードデータを読み込みます。

このような回避策は、メインアプリとヘルパーアプリの両方に必要ですが、サンドボックス化されています。

また、グループ既定のKVOがサンドボックスで動作しないこと、NSDistributedNOtificationでuserDictionaryを送信しないことも判明しました。 :(

私のアプリがサンドボックス内でうまくいくようにするためにsoooたくさんのコードを書く必要がありました。

関連する問題