API надстроек Outlook не запускает событие ItemChange в Firefox / Chrome - PullRequest
0 голосов
/ 15 мая 2018

Мы включили закрепление панели задач в нашем манифесте для надстройки Outlook и заметили, что теперь она доступна в онлайн-приложении Outlook Office в дополнение к клиенту Windows Outlook 2016.

Однако событие ItemChange, похоже, не вызывается последовательно при переключении почтовых отправлений (я не могу различить рифму или причину, по которой его увольняют).

Мы слушаем это событие, используя addHandlerAsync метод .Это ошибка?

1 Ответ

0 голосов
/ 13 августа 2019

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

Вот код, который я использую.

Office.onReady(function() {
    //console.log('In Office.onReady');

    if(!Office.context.mailbox) {
        console.log('Run inside Outlook to be able to use it.');
        return;
    }
    console.log('Running in Office Add-in');

    // Set up ItemChanged event
    Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, selectedMailItemChanged);
    console.log('Item Change event registered.');

    doSomething(Office.context.mailbox.item);
    //console.log('Page initialized');
});

function selectedMailItemChanged(eventArgs) {
    console.log('Another email message selected');

    if(Office.context.mailbox.item != null) {
        doSomething(Office.context.mailbox.item);
    }
    else {
        console.log('No email is selected.');
        Office.context.mailbox.removeHandlerAsync(Office.EventType.ItemChanged, {handler: selectedMailItemChanged}, function(result) {
            console.log('Item Change event unregistered.');
            Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, selectedMailItemChanged);
            console.log('Item Change event re-registered.');
        });
    }
}

function doSomething(item) {
    // do something.
}

Однако в другой, более сложной ситуации, это не такработать как положено.У меня есть две страницы в моей надстройке.Панель навигации позволяет перейти на любую из страниц.Мне нужно событие изменения элемента на обеих этих страницах.Когда я перехожу на другую страницу, тот же код обработки события изменения элемента перестает работать на этой другой странице.Если я перезагружаю OWA и продолжаю работать на одной странице надстройки, обработка события изменения элемента работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...