Надстройки Office365 - Как общаться между надстройками Windows
Я работаю над надстройкой содержимого Officeavascript Javascript для PowerPoint и испытываю проблемы с обменом сообщениями.
В отличие от Word или Excel, вероятно, в одном документе будет использоваться несколько надстроек. Например, один на слайде 3, другой на слайде 5.
У меня есть 2 сценария, которые не работают хорошо.
- Использование веб-клиента Office365 (работает нормально на родном языке) - если что-то изменяется в режиме слайд-шоу, это не отражается автоматически при возврате к этому слайду в режиме дизайнера.
- Webclient и native - если пользователь выходит из одного слайда, я не могу получить надстройки для других слайдов для автоматического выхода из системы.
Что я пробовал до сих пор:
Посмотрел файл Office.js и документацию.
Исследовали основную технологию, поэтому ожидали, что некоторые стандартные методы HTML будут работать.
Пробовал и postMessage и использование события хранилища (которое работало в IE напрямую, но не в PowerPoint).
Я мог бы помешать сердцебиению или веб-сокетам, но предпочел бы избежать ненужного попадания на сервер и хотел бы сделать вещи максимально простыми. В качестве альтернативы я мог бы поместить что-то в localstorage и использовать setInterval для проверки, но это добавило бы ненужную фоновую работу и замедлило бы работу приложения.
Существуют ли "хорошие" способы решения вышеупомянутых проблем или проверка setInterval/localstorage является единственным простым решением на данный момент?
2 ответа
Вы можете попробовать использовать свойство document.settings вместо localStorage. Существует событие settingsChanged, которое может помочь вам сделать то, что вы ищете. Я никогда не использовал его раньше, поэтому дайте нам знать, если это помогает (или нет).
На данный момент событие settingsChanged доступно только для Excel.
Просматривая документацию, кажется, что такого рода вещи могут быть достигнуты с помощью refreshAsync.