0

我有一个与我的 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]];
...
}

谁是推荐人?(如果它是从本地机器调用的,我认为它可能是未定义的,但如果我从网站调用此协议......我想知道接收请求的域。

有可能吗?

有没有办法通过另一种方式解决这个任务?

4

2 回答 2

1

来自: http: //www.cocoabuilder.com/archive/cocoa/125741-finding-the-sender-of-an-appleevent-in-cocoa-app-on-10-2-8-or-greater.html

NSAppleEventDescriptor *addrDesc = [event
attributeDescriptorForKeyword:keyAddressAttr];
NSData *psnData = [[addrDesc
coerceToDescriptorType:typeProcessSerialNumber] data];

if (psnData)
{
 ProcessSerialNumber psn = *(ProcessSerialNumber *) [psnData bytes];
 ...
}
于 2010-09-14T22:29:24.033 回答
0

尝试检查回复事件的目标。该事件将被发送回给您发送原始事件的任何应用程序,无论它在哪里。

如果您的意思是用户正在单击您的应用程序处理的链接,并且您想知道包含该链接的页面的 URL:没有办法做到这一点。

于 2010-09-01T12:27:42.177 回答