现在我想写一个小的CLI应用程序,它可以让自定义方案url做一些像启动其他应用程序的东西。 我找到了一种方法, 首先,编辑'info.plist'在'URL types'下添加'URL Schemes',例如我添加'mySchemes'项。 其次,在'AppDelegate'中安装一个事件处理程序,
-(void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:self andSelector:@selector(handleGetURLEvent:withReplyEvent:)
forEventClass:kInternetEventClass andEventID:kAEGetURL];
}
-(void) handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
NSString *url = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
NSLog(@"%@",url);
// Do something next
}
但是我想在命令行应用程序中实现它,如何在没有cocoa框架的情况下获得此事件?我不需要UI
答案 0 :(得分:1)
在Info.plist中设置LSUIElement
将允许您在没有UI的情况下运行您的应用。来自Apple的Information Property List Key Reference:
如果此键设置为YES,则启动服务将应用程序作为代理应用程序运行。代理应用程序不会出现在Dock或强制退出窗口中。虽然它们通常作为后台应用程序运行,但如果需要,它们可以到达前台以呈现用户界面。单击属于代理应用程序的窗口会使该应用程序前进以处理事件。