当前位置: 首页 > Web前端 > HTML

SAPUI5应用程序如何加载自定义主题

时间:2023-03-29 11:12:27 HTML

要加载外部自定义主题,开发人员可以通过在页面中静态声明或使用Core.setThemeRoot()方法来设置此主题。这与对位于不同位置的SAPUI5库使用registerModulePath()非常相似。下面是具体的操作步骤:(1)使用如下代码告诉SAPUI5框架我们自定义主题的地址。sap.ui.getCore().setThemeRoot("my_theme","http://url.to/the/root/dir");SAPUI5然后从此URL加载所有主题资源。比如sap.ui.core库的library.css文件,上面的代码执行后变成:http://url.to/the/root/dir/sap/ui/core/themes/my_theme/library.cssbase目录也可以通过core.applyTheme(...)方法的第二个参数指定。如果主题的某些部分位于不同的位置,您可以使用上面的调用来设置默认值,但通过在数组中将它们指定为第二个参数来覆盖库特定的主题位置:sap.ui.getCore()。setThemeRoot("my_theme",["my.lib.one","my.lib.two"],"http://url.to/the/other/root/dir");以下是主题的不同设置实现方法:(1)在SAPUI5bootstrap脚本的属性中使用与JSON字符串相同的对象结构:(2)通过URL参数指定:http://myserver.com/sap/myapp/?sap-ui-theme=my-theme@/sap/public/bc/themes/~client-111(3)通过全局配置对象指定.在引导脚本之前插入以下代码:","my_second_preconfigured_theme":{"":"http://preconfig.com/ui5-themes","sap.ui.core":"http://core.com/ui5"}}}上面代码实现的效果:从指定位置加载所有库的第一个主题。从指定位置加载sap.ui.core库的第二个主题。对于所有其他库,主题是从默认位置加载的。通过sap-ui-theme/sap-themeURL参数配置带有themeRootURL的主题时,存在一些安全限制。默认情况下,与当前页面不同的绝对URL会被阻止。路径段将相对于当前页面原点值进行解析。根据RFC6454,要通过URL参数允许某些来源来源,可以将标记添加到页面的:通过上面的语句,我们可以加载部署在SAPUI5url参数中的另一个url上的主题:https://myserver.com/sap/myapp/?sap-theme=my_theme@https:/中提供的origin/example.com/custom-themes/标记必须包含与URL参数中提供的来源相同的协议、主机和端口。多个允许的来源可以用逗号分隔。通用通配符*也可用于允许所有来源。但是,这只能与其他安全机制结合使用,例如CSPstyle-src指令。不支持允许子域的通配符。