我们试图在自定义函数运行时动态确定执行环境,以便设置一组环境变量。我们有多个执行自定义函数的环境:
- 当地的
- 分期
- 质量保证
- 生产
我们希望避免为每个环境生成单独的包。相反,我们希望生成一个单独的包并确定我们在运行时在哪个环境中执行。例如,这将使我们能够确定支持我们功能的后端 API 服务器的适当 URL。
对于我们的任务窗格加载项,我们只是使用 window.location.hostname 的值来确定当前环境并选择适当的 API 服务器 URL。在 Mac 上的 Excel 中的自定义函数运行时中执行时,这似乎也可以按预期工作。不幸的是,在 Windows 上的 Excel 中执行时,窗口对象在自定义函数运行时中未定义。
- 是否可以在自定义函数运行时中获取通常可以通过 window.location.hostname 访问的主机名?
- 如果没有,我们为每个环境维护一个清单(例如 manifest-local.xml、manifest-staging.xml 等)。是否可以在我的自定义函数逻辑中从应用程序清单中检索值?例如,如果我的清单中有下面的资源部分,我可以在我的自定义函数逻辑中检索 Taskpane.Url 的 DefaultValue 吗?
<Resources>
<bt:Urls>
<bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000" />
... ...
</bt:Urls>
</Resources>
- 如果没有,您是否会推荐另一种方法将指示当前环境的值传递给自定义函数?
提前致谢。