В Microsoft Team на Mac (возможно, также на других версиях) у вас есть возможность редактировать документ внутри команд. Это откроет экземпляр Word Online.
У нас есть веб-надстройка Office, которая использует API-интерфейс диалога для входа в нашу службу. Мы открываем это, вызывая Office.context.ui.displayDialogAsync(_UrlGoesHere_)
. Однако, когда внутри Команды, этот метод не откроет диалог, а использует поведение Word Online (как если бы вы были в браузере) и запускал совершенно новое окно браузера.
Это означает, что мы теряем связь между addIn и диалоговым окном входа, потому что окно браузера больше не является дочерним элементом панели задач надстройки веб-сайта, поэтому невозможно сделать обратные вызовы в addIn.
Это похоже на неправильное поведение в Word/web-надстройках? Или это должно быть сделано иначе, когда внутри Команды?
Спасибо!
Причина, по которой вы видите поведение Word Online, заключается в том, что вы используете Word Online. Когда вы редактируете документ в Microsoft Teams, вы просто используете Word Online в IFrame.
Имейте в виду, что собственный клиент Microsoft Teams по-прежнему эффективно представляет собой веб-приложение. Команды построены на Electron, который сам построен на Chromium и Node.js.
Вы можете попробовать использовать параметр displayInIframe
API-интерфейса Dialog. Включение этой опции приведет к тому, что диалог будет отображаться в IFrame
наложенном на редактор, а не на открытие нового окна браузера. Я не настроен, чтобы подтвердить, что это будет работать, когда Word Online встроен внутри и IFrame
в Команды, но это, безусловно, стоит проверить:
displayDialogAsync('url', {displayInIframe: true}): void;
displayInIFrame