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]];
...
}

リファラーは誰ですか?(ローカルマシンから呼び出された場合は未定義になる可能性がありますが、Webサイトからこのプロトコルを呼び出した場合...リクエストの受信元のドメインを知りたいです。

それは可能ですか?

このタスクを別の方法で解決するための解決策はありますか?

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 に答える