Можно ли узнать реферер для вызова GURL, полученного через событие AppleScript? - PullRequest
0 голосов
/ 01 сентября 2010

У меня есть обработчик протокола, связанный с моим приложением Какао.

[[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 ]

1 голос
/ 15 сентября 2010

От: 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];
 ...
}
0 голосов
/ 01 сентября 2010

Попробуйте проверить цель события ответа. Это событие будет отправлено обратно любому приложению, которое отправило вам исходное событие, где бы оно ни было.

Если вы имеете в виду, что пользователь нажимает на ссылку, которую обрабатывает ваше приложение, и вы хотите знать URL-адрес страницы, на которой содержалась ссылка: это невозможно сделать.

...