我想检索1.97.0-SNAPSHOT
控制器内部的 UI5 版本(例如)。最简单的方法是获取 的值sap.ui.version
,但它是一个全局变量,我想避免。
我想,sap.ui.VersionInfo
会是一个正确的选择,但是查看它的API,我找不到任何方法,与UI5版本的检索有关。
我还检查了控制器的内部结构(不是太深)sap.ui.Device
,但没有版本号。
如何在不使用全局变量的情况下检索 UI5 框架版本?
我想检索1.97.0-SNAPSHOT
控制器内部的 UI5 版本(例如)。最简单的方法是获取 的值sap.ui.version
,但它是一个全局变量,我想避免。
我想,sap.ui.VersionInfo
会是一个正确的选择,但是查看它的API,我找不到任何方法,与UI5版本的检索有关。
我还检查了控制器的内部结构(不是太深)sap.ui.Device
,但没有版本号。
如何在不使用全局变量的情况下检索 UI5 框架版本?
如果您使用的是OpenUI5,访问版本字符串 viasap.ui.version
是在使用全局引用时仍然允许的例外情况之一(请参阅“不要使用对全局名称的引用”)。但是您也可以要求sap/ui/Global
然后通过 .myRequiredGlobal.version
但是,在SAPUI5的情况下,补丁版本并不总是与 SAPUI5 内核(即 OpenUI5)的版本相同。要可靠地获得正确的 SAPUI5 版本,需要模块sap/ui/VersionInfo
. 它的方法load()
将返回一个用对象解析的承诺 -与 https://<host>/resources/sap-ui-version.json
- 包含有关当前框架的所有信息,包括其版本。
// VersionInfo required from "sap/ui/VersionInfo"
// VersionUtil required from "sap/base/util/Version"
// Within an async function:
const { version } = await VersionInfo.load(); // version === "1.94.1" !== sap.ui.version (1.94.0)
const versionUtil = new VersionUtil(version);
如您所见,也可以将检索到的版本字符串与提供诸如, , , ,等方法的模块结合起来。sap/base/util/Version
getMajor()
getMinor()
getPatch()
compareTo
inRange
sap/ui/VersionInfo
在独立的 UI5 应用程序中使用模块时(例如,使用 构建ui5 build self-contained -a
),生成的最高version
值resources/sap-ui-version.json
是应用程序版本而不是框架的版本。在撰写本文时,应该使用独立应用程序来sap.ui.version
代替,但是,如上所述,在 SAPUI5 的情况下,它不会报告确切的补丁级别。