NSAPP自定义URL处理

时间:2014-01-31 05:47:03

标签: objective-c macos info.plist nsapplication-delegate nsappleeventmanager

我正在为OSX开发一个应用程序,并且必须在我的应用程序中处理自定义URL处理

<a href="openApp:abc@xyz.com">Open My profile!</a>

应用程序正在运行我可以在

中获取事件
    - (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent{


}

但是当应用程序没有运行时它确实来到了AppDidFinishedLaunching,我无法检测它是正常调用还是自定义URL,

App启动时有没有办法检测?

提前致谢

1 个答案:

答案 0 :(得分:0)

您应该实现更现代的委托方法-application:didFinishLaunchingWithOptions:,而不是实现-applicationDidFinishLaunching:。然后,您可以检查launchOptions字典并查找密钥UIApplicationLaunchOptionsURLKey。如果您在字典中找到该密钥,则会启动您的应用以响应自定义网址。 URL本身是与字典中的该键对应的值。

您可以使用相同的方法(当然,查找不同的密钥)来判断您的应用是否是为了响应通知,位置事件等而启动的。