1

我已经为我的应用程序注册了一个 URI 方案“测试方案”。我也注册了一个 URL 处理- (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,我会在注册的 GetURL 处理程序中获得 URL NSAppleEventManager

我想在第一次启动时通过命令行或 GetURL 处理程序在我的应用程序中获取测试方案 url 参数。

我还检查了 Mail.app,当我mailto:frank@wwdcdemo.example.com在浏览器中打开正确传递给 Mail.app 的参数时。但是,如果我同时使用ps -efMail.app 检查命令行参数,我看不到除应用程序路径之外的任何参数。

请帮助我。

谢谢并恭祝安康。

4

1 回答 1

0

我通过注册 GetURL eventHandler 解决了这个问题,awakeFromNib而不是applicationDidFinishLaunching

于 2014-06-19T12:56:48.267 回答