Как можно настраивать функции по среде в среде выполнения пользовательских функций? - PullRequest
0 голосов
/ 07 мая 2020

Мы пытаемся определить среду выполнения динамически в среде выполнения пользовательских функций, чтобы установить группу переменных среды. У нас есть несколько сред, в которых выполняются наши пользовательские функции:

  • local
  • staging
  • qa
  • production

Мы не хотели бы создавать отдельные пакеты для каждой среды. Вместо этого мы хотели бы создать единый пакет и определить, в какой среде мы выполняем во время выполнения. Это позволит нам определить соответствующий URL-адрес для внутреннего сервера API, который, например, поддерживает наши функции.

Для нашей надстройки панели задач мы просто использовали значение window.location.hostname для определения текущего среды и выберите соответствующий URL-адрес сервера API. Это также работает должным образом при выполнении в среде выполнения пользовательских функций в Excel на Ma c. К сожалению, при выполнении в Excel на Windows объект окна не определен в среде выполнения пользовательских функций.

  1. Возможно ли получить имя хоста, которое обычно доступно через window.location.hostname внутри среда выполнения пользовательских функций?
  2. Если нет, мы поддерживаем манифест для каждой среды (например, manifest-local. xml, manifest-staging. xml, et c). Можно ли получить значения из манифеста приложения в моей пользовательской функции logi c? Например, если в моем манифесте есть раздел «Ресурсы» ниже, могу ли я получить значение DefaultValue для Taskpane.Url в моем пользовательском журнале функций c?
<Resources>
  <bt:Urls>
    <bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000" />
    ... ...
  </bt:Urls>
</Resources>
Если нет, то есть ли другой способ передать значение, которое указывало бы на текущую среду в пользовательской функции?

Заранее спасибо.

1 Ответ

0 голосов
/ 07 мая 2020

Вы не должны разворачиваться на платформе (win32, ma c, онлайн, ...) или хосте (Excel, Word, ...). Вам следует ориентироваться только на тот факт, поддерживается ли версия API, т.е. вы должны использовать этот API только для поворота вашего лог. c: https://docs.microsoft.com/en-us/javascript/api/office-runtime/officeruntime.apiinformation?view=common-js.

Если вы обнаружите несоответствие между одними и теми же версиями Ma c и Win32, пожалуйста, сообщите об этом через Send a Smile / Frown в любом продукте Office (Excel, Word, ...).

Что касается вашего наблюдения window объект - в Win32 пользовательские функции выполняются в более легкой, ReactNative, среде выполнения, которая (я не удивлен) не имеет объекта window. В Ma c пользовательские функции выполняются в элементе управления браузера, где вы, естественно, найдете все возможности браузера.

В Excel есть функция Preview , которая, помимо других преимуществ, позволяет вам для выполнения пользовательских функций в элементе управления браузера. См. Эту статью: https://docs.microsoft.com/en-us/office/dev/add-ins/excel/configure-your-add-in-to-use-a-shared-runtime

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