您可以在引导程序中、使用 URL 参数或使用方法 sap.ui.getCore.applyTheme 等多种方式,来定义 SAP UI5 应用程序使用哪个主题。
初始主题可以硬编码在应用程序中(在加载 SAPUI5 的引导程序的脚本标签中)或在加载 SAPUI5 之前定义的 JS 配置对象中,例如:
<script id="sap-ui-bootstrap" type="text/javascript" src="resources/sap-ui-core.js" data-sap-ui-theme="sap_belize"> </script>
这种方式的优先级最低。
启动 SAPUI5 应用程序时可以使用 URL 参数(例如:html?sap-ui-theme=sap_belize)来设置或覆盖初始主题。
如果您使用 UI 主题设计器来定义自己的自定义主题,则可以将自定义主题的位置作为服务器相对路径附加到 sap-ui-theme 参数中,并用 @ 符号分隔:
http://myserver.com/sap/myapp/?sap-ui-theme=my-theme@/sap/public/bc/themes/~client-111
尽管可以指定完整的 URL,但框架将仅使用 URL 的路径信息来防止基于 CSS 的攻击,否则这些攻击可能会通过从恶意服务器引用 CSS 来实现。 例如,在更复杂的环境中,如果 UI 主题设计器的基础结构在单独的服务器上运行,则可以使用 Web 调度程序将两个服务器合并到一个命名空间中,或者您应该使用 sap 方法设置完整的 URL。 ui.getCore.applyTheme 用于自定义应用程序,如下所述。
第三种方式是,您可以使用 sap.ui.getCore.applyTheme 方法动态切换主题。 应用程序状态不会丢失,并且没有服务器往返(除了加载 CSS,如果没有缓存)。仅交换样式表。