我为我的应用程序注册了URI Scheme“testscheme”。
我还在- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
中通过 NSAppleEventManager
在代码下面注册geturl处理程序
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];
当我第一次从浏览器打开“testscheme:// some parameters”时(当我的应用程序没有运行时),操作系统会打开我的应用程序。
如果我检查命令行参数,我不会将“testscheme:// some parameters”视为命令行参数。
但是,如果我的应用程序已经运行时打开相同的URL,我会在注册了NSAppleEventManager
的GetURL处理程序中获取URL。
我想在我的应用程序中通过命令行或GetURL处理程序在第一次启动时获取testscheme url参数。
我还检查了Mail.app,当我在浏览器中打开mailto:frank@wwdcdemo.example.com
时,参数正确传递给Mail.app。
但是,如果我使用ps -ef
同时检查命令行参数的Mail.app,我看不到除应用程序路径之外的任何参数。
请帮我解决这个问题。
谢谢和问候。
答案 0 :(得分:0)
我通过在awakeFromNib
而非applicationDidFinishLaunching