Технические вопросы и ответы QA1722

«Почта Safari [Содержание/Ссылка] Этой страницы» к событиям Mail Client...

Q: Что я должен сделать, чтобы заставить мой почтовый клиент обработать события "Mail Contents of This page" и "Mail Link to This page" Safari?

A: Что я должен сделать, чтобы заставить мой почтовый клиент обработать события "Mail Contents of This page" и "Mail Link to This page" Safari?

1. Добавьте два булевых ключа к Вашему <Info.plist>: MailLinkSupported и MailPageSupported

Рисунок 1  MailLinkSupported и ключи MailPageSupported <в Info.plist>.
<IMAGE>

2. Установите два обработчика AppleEvent:

  Установка перечисления 1 обработчики AppleEvent:

- (void) applicationDidFinishLaunching: (NSNotification *) inNotification {

    NSAppleEventManager *eventManager = [NSAppleEventManager sharedAppleEventManager];

    [eventManager setEventHandler:self
                      andSelector:@selector(handleMailPageEvent:withReplyEvent:)
                    forEventClass:'mail'
                       andEventID:'mlpg'];

    [eventManager setEventHandler:self
                      andSelector:@selector(handleMailLinkEvent:withReplyEvent:)
                    forEventClass:'mail'
                       andEventID:'mllk'];

} // applicationDidFinishLaunching

3. Реализуйте обработчики AppleEvent:

Перечисление 2  Реализовывая обработчики AppleEvent:

- (void) handleMailPageEvent:(NSAppleEventDescriptor *) inEvent
              withReplyEvent:(NSAppleEventDescriptor *) inReplyEvent {

    // Get the subject and address
    NSString *subject = [[inEvent paramDescriptorForKeyword:'urln'] stringValue];
    NSString *address = [[inEvent paramDescriptorForKeyword:'url '] stringValue];

    NSLog(@"subject: \"%@\", address: \"%@\"", subject, address);

    NSData *data = [[inEvent paramDescriptorForKeyword:keyDirectObject] data];
    if (data) {
        // handle data here… (Safari WebArchive)
    } else {
        // Report error.
        NSLog(@"paramDescriptorForKeyword:keyDirectObject.data is NULL.");
    }
} // handleMailPageEvent

- (void) handleMailLinkEvent:(NSAppleEventDescriptor *) inEvent
              withReplyEvent:(NSAppleEventDescriptor *) inReplyEvent {

    // Get the subject and address
    NSString *subject = [[inEvent paramDescriptorForKeyword:'urln'] stringValue];
    NSString *urlString = [[inEvent paramDescriptorForKeyword:keyDirectObject] stringValue];
    NSLog(@"subject: \"%@\", url: <%@>", subject, urlString);
} // handleMailLinkEvent


История версии документа


ДатаПримечания
23.12.2010

Новый документ, что документы, что почтовый клиент должен обработать события "Mail Contents of This page" и "Mail Link to This page" Safari.