是否可以通过AppleScript事件了解GURL电话的推荐人?

时间:2010-09-01 11:07:32

标签: cocoa macos applescript applescript-objc

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

谁是推荐人? (如果它从本地机器调用我认为它可以是未定义的,但如果我打电话 来自网站的这个协议......我想知道收到请求的域名。

有可能吗?

是否有解决方案以另一种方式解决此问题?

2 个答案:

答案 0 :(得分: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];
 ...
}

答案 1 :(得分:0)

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

如果您的意思是用户点击了您的应用程序处理的链接,并且您想知道包含该链接的页面的URL:无法执行此操作。