Cocoa 启动时打开url
我必须在cocoa应用程序的委托中实现什么方法,以便在启动时打开url?(本例中为http/https)我已经实现了url方案,我只需要知道如何在url通知中打开我的应用程序Cocoa 启动时打开url,cocoa,notifications,launch,Cocoa,Notifications,Launch,我必须在cocoa应用程序的委托中实现什么方法,以便在启动时打开url?(本例中为http/https)我已经实现了url方案,我只需要知道如何在url通知中打开我的应用程序 更新:对不起,我不是很清楚。我的应用程序是一个支持https/http URL的浏览器,但只能在已经运行时打开它们。启动时如何在我的应用程序中实现对开放URL的支持?当应用程序在OS X上完成启动时,NSApp(程序的全局NSApplication实例)向其委托人发送消息(通过通知系统)。您可以在代理中实现该方法来处理通知
更新:对不起,我不是很清楚。我的应用程序是一个支持https/http URL的浏览器,但只能在已经运行时打开它们。启动时如何在我的应用程序中实现对开放URL的支持?当应用程序在OS X上完成启动时,
NSApp
(程序的全局NSApplication
实例)向其委托人发送消息(通过通知系统)。您可以在代理中实现该方法来处理通知,并使用打开浏览器窗口作为响应。类似于以下内容的操作将起作用:
// Your NSApp delegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://www.example.com/"]];
}
它不是委托方法。您需要为getURL事件实现一个Apple事件处理程序
幸运的是,这正是苹果使用的情况。我已经实现了getURL事件,因此单靠这一点还不足以让应用程序在启动时打开url。诀窍是AppleEvent必须安装在applicationWillFinishLaunching:而不是ApplicationIDFinishLaunching:中。否则,事件根本不会发送,因为应用程序没有及时注册它。要实现一个协议处理程序,您可以选择(例如,在Safari首选项中)作为“默认浏览器”,并响应HTTP/HTTPS启动,您需要做几件事
这一点我已经知道了,但谢谢!我的意思是,我可以实现什么方法来允许我的应用程序自己打开URL?我的应用程序在运行时已经可以处理打开的url,但只有在其他地方单击url时才会启动。