我有一个与我的Cocoa应用程序相关联的协议处理程序。
[[NSAppleEventManager sharedAppleEventManager]
setEventHandler:self
andSelector:@selector(getUrl:withReplyEvent:)
forEventClass:kInternetEventClass andEventID:kAEGetURL];
...
- (void)getUrl:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
#ifdef DEBUG
NSLog(@"%s: %@",__PRETTY_FUNCTION__,event);
#endif
NSURL *url = [NSURL URLWithString:[[event paramDescriptorForKeyword:keyDirectObject] stringValue]];
...
}
谁是推荐人? (如果它从本地机器调用我认为它可以是未定义的,但如果我打电话 来自网站的这个协议......我想知道收到请求的域名。
有可能吗?
是否有解决方案以另一种方式解决此问题?
答案 0 :(得分:1)
NSAppleEventDescriptor *addrDesc = [event
attributeDescriptorForKeyword:keyAddressAttr];
NSData *psnData = [[addrDesc
coerceToDescriptorType:typeProcessSerialNumber] data];
if (psnData)
{
ProcessSerialNumber psn = *(ProcessSerialNumber *) [psnData bytes];
...
}
答案 1 :(得分:0)
尝试检查回复事件的目标。该事件将被发送回原始事件发送给您的任何应用程序,无论它在哪里。
如果您的意思是用户点击了您的应用程序处理的链接,并且您想知道包含该链接的页面的URL:无法执行此操作。