Отправить данные в другое приложение и получить от него ответ

Я пытаюсь общаться приложения друг с другом.

Я работаю с Apple Events в своем первом приложении с

NSAppleEventManager.shared().setEventHandler(self, andSelector: #selector(handleGetURLEvent), forEventClass: AEEventClass(kInternetEventClass), andEventID: AEEventID(kAEGetURL))

func handleGetURLEvent(_ event: NSAppleEventDescriptor, withReplyEvent replyEvent: NSAppleEventDescriptor)

Во втором приложении я создаю объект NSAppleEventDescriptor

let test = NSAppleEventDescriptor(string: "test")
let descriptor = NSAppleEventDescriptor(eventClass: AEEventClass(kInternetEventClass), eventID: AEEventID(kAEGetURL), targetDescriptor: nil, returnID: AEReturnID(kAutoGenerateReturnID), transactionID: AETransactionID(kAnyTransactionID))
descriptor.setParam(test, forKeyword: keyDirectObject)

Теперь с NSWorkspace Я запускаю свое первое приложение

NSWorkspace.shared().launchApplication(at: myAppUrl, options: .default, configuration: [NSWorkspaceLaunchConfigurationAppleEvent:descriptor])

Все в порядке, функция handleGetURLEvent называется, но... replyEvent.desciptorType является kAENullEvent Также я понятия не имею, как бы я получить replyEvent в моем втором приложении.

Я полагаю, что-то не так с этим решением.

Поэтому мой вопрос заключается в том, как я могу просто отправить данные в другое приложение и вернуть некоторые данные?

0 ответов

Другие вопросы по тегам