Mac: как получить пользовательские параметры URI в приложении
Я зарегистрировал схему URI "checheche "для своего приложения. Также я зарегистрировал обработчик URL в - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
через NSAppleEventManager
Ниже код для регистрации обработчика geturl
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];
Когда я впервые открываю "testscheme:// некоторые параметры" из браузера (когда мое приложение не запущено), ОС открывает мое приложение.
Если я проверяю параметры командной строки, я не вижу "testscheme:// некоторые параметры" в качестве аргументов командной строки.
Однако если я открою тот же URL, когда мое приложение уже запущено, я получу URL в своем обработчике GetURL, зарегистрированном в NSAppleEventManager
,
Я хотел получить параметры URL-адреса testscheme в своем приложении либо с помощью командной строки, либо с помощью обработчика GetURL при первом запуске.
Я также проверил Mail.app, когда я открываю mailto:frank@wwdcdemo.example.com
в браузере параметры правильно передаются в Mail.app. Однако, если я проверяю аргументы командной строки одновременно, используя ps -ef
для Mail.app я не вижу никаких параметров, кроме пути приложения.
Пожалуйста помоги мне с этим.
Спасибо и С уважением.
1 ответ
Я решил это, зарегистрировав GetURL eventHandler в awakeFromNib
вместо applicationDidFinishLaunching