В настоящее время я создаю веб-приложение, которое можно загрузить как автономную версию в браузере, так и в виде надстройки Outlook. Чтобы использовать среду Outlook, я загружаю office.js в макет моего веб-приложения. Я хотел бы проверить, загружается ли веб-приложение в Outlook (как надстройка) или как веб-приложение в браузере, чтобы можно было условно скрыть функции, которые требуют запуска приложения в Outlook.
В соответствии с существующим вопросом по теме (см. Здесь: Проверьте, загружен ли Office.js за пределы клиента Office ), office-js-helpers предоставляют такую информацию с помощью
OfficeHelpers.Utilities.host
Это возвращает либо "внешний вид", либо неопределенный в зависимости от контекста, что именно то, что я ищу (с оговоркой, что вы сначала загружаете office.js, а затем еще один сценарий, чтобы проверить, является ли office.jsна самом деле нужно). К сожалению, мне приходится поддерживать старые версии Outlook, для которых приведенное выше решение возвращает неопределенное значение даже при загрузке в outlook (до 2 лет после последней версии - никаких изменений в поле зрения).
Интересно, что сам по себе office.js(или, скорее, его зависимость, o15apptofilemappingtable.js, https://appsforoffice.microsoft.com/lib/1.1/hosted/o15apptofilemappingtable.js) уже содержит строку в минимизированном JavaScript, которая может выяснить, что office.js загружен вне среды Outlook, и выдает предупреждение:
if(d._hostInfo.isRichClient){var e,a,u="Warning: Office.js is loaded outside of Office client",
Опять же, это именно то, что я ищу, но я, кажется, не могу обернуться вокруг того, как я мог бы реализовать такую проверку сам. Я знаю, что вы можете проверить, есть ли Office. js полностью загружается с помощью Office.onReady () (как показано здесь: https://docs.microsoft.com/en-us/office/dev/add-ins/develop/understanding-the-javascript-api-for-office),, но все же я хочу проверить, ДО того, как office.js загружен, действительно ли он необходим (или нет)когда приложение запускается вне среды Outlook).
Кто-то сталкивался с подобным сценарием и может поделиться своимипонимание