所有特定于应用程序的配置设置现在将进一步放在一个名为manifest的单独描述符文件中。json。这清楚地将应用程序编码从配置设置中分离出来,使我们的应用程序更加灵活。例如,所有SAP Fiori应用程序都是作为组件实现的,并附带一个描述符文件,以便托管在SAP Fiori启动板中。
SAP Fiori launchpad充当应用程序容器并实例化应用程序,而没有用于引导的本地HTML文件。相反,将解析描述符文件,并将组件加载到当前HTML页面。这允许多个应用程序在相同的上下文中显示。每个应用程序都可以定义本地设置,例如语言属性、支持的设备等等。我们还可以使用描述符文件加载额外的资源并实例化像i18n资源包这样的模型。
Preview
An input field and a description displaying the value of the input field (No visual changes to last step)
Coding
You can view and download all files at Walkthrough - Step 10.
谨慎:自动模型实例化仅在SAPUI5 1.30版本中可用。如果使用旧版本,可以在组件的init方法中手动实例化应用程序的资源包和其他Component.js文件,正如我们在步骤9:组件配置Step 9: Component Configuration.。
webapp/manifest.json (New)
{
"_version": "1.8.0",
"sap.app": {
"id": "sap.ui.demo.walkthrough",
"type": "application",
"i18n": "i18n/i18n.properties",
"title": "{{appTitle}}",
"description": "{{appDescription}}",
"applicationVersion": {
"version": "1.0.0"
}
},
"sap.ui": {
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": true
}
},
"sap.ui5": {
"rootView": {
"viewName": "sap.ui.demo.walkthrough.view.App",
"type": "XML",
"async": true,
"id": "app"
},
"dependencies": {
"minUI5Version": "1.30",
"libs": {
"sap.m": {}
}
},
"models": {
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "sap.ui.demo.walkthrough.i18n.i18n"
}
}
}
}
}
请注意:在本教程中,我们只介绍描述符文件最重要的设置和参数。在SAP Web IDE中,您可能会得到验证错误,因为缺少一些设置—您可以在此上下文中忽略这些设置。
manifest.json文件是json格式的配置对象,它包含所有全局应用程序设置和参数。manifest文件被称为应用程序、组件和库的描述符,当用于应用程序时也称为“描述符”或“应用程序描述符”。 它存储在webapp文件夹中,由SAPUI5读取以实例化组件。清单中有三个由名称空间定义的重要部分在manifest.json文件:
▪sap.app
app名称空间包含以下特定于应用程序的属性:
▪id (mandatory):应用程序组件的名称空间,ID不能超过70个字符。它必须是惟一的,并且必须与组件ID/名称空间相对应。
▪类型:定义我们要配置的,这里是:应用程序an application
▪i18n:定义资源包文件的路径
▪标题:应用程序在句柄语法中的标题,引用自应用程序的资源包
▪描述:应用程序在从应用程序资源包引用的车把语法中所做的简短描述文本
▪ applicationVersion:应用程序的版本,以便以后能够方便地更新应用程序
▪sap.ui
ui名称空间提供了以下特定于ui的属性:
技术:该值指定UI技术;在我们的例子中,我们使用SAPUI5
deviceTypes:告知应用程序支持哪些设备:台式机、平板电脑、手机(默认为true)
▪sap.ui5
ui5命名空间添加由SAPUI5自动处理的特定于SAPUI5的配置参数。最重要的参数是:
▪ rootView:如果指定此参数,组件将自动实例化该视图并将其用作该组件的根
▪依赖关系:这里我们声明应用程序中使用的UI库
▪模型:在描述符的这一部分中,我们可以定义在应用程序启动时由SAPUI5自动实例化的模型。现在我们可以定义本地资源包。我们将模型的名称“i18n”定义为键,并通过名称空间指定包文件。与前面的步骤一样,包含翻译文本的文件存储在i18n文件夹中,名为i18n.properties。我们只是在文件的路径前面加上应用程序的名称空间。在这个步骤的后面将删除应用程序组件init方法中的手动实例化。
出于兼容性原因,根对象和每个部分在内部属性_version下声明描述符版本号1.1.0。在描述符的未来版本中可能会添加或更改特性,版本号有助于通过读取描述符的工具识别应用程序设置。
请注意:资源包的属性包含在描述符中的两个大括号中。这不是SAPUI5数据绑定语法,而是在句柄语法中对描述符中的资源包的变量引用。在本教程中构建的应用程序中看不到引用的文本,但是可以由SAP Fiori launchpad之类的应用程序容器读取。
webapp/i18n/i18n.properties
# App Descriptor
appTitle=Hello World
appDescription=A simple walkthrough app that explains the most important concepts of SAPUI5
# Hello Panel
showHelloButtonText=Say Hello
helloMsg=Hello {0}
在资源包中,我们简单地为应用程序添加文本,并添加注释,以便在语义上分隔这些文本。
webapp/Component.js
sap.ui.define([
"sap/ui/core/UIComponent",
"sap/ui/model/json/JSONModel"
], function (UIComponent, JSONModel) {
"use strict";
return UIComponent.extend("sap.ui.demo.walkthrough.Component", {
metadata : {
manifest: "json"
},
init : function () {
// call the init function of the parent
UIComponent.prototype.init.apply(this, arguments);
// set data model
var oData = {
recipient : {
name : "World"
}
};
var oModel = new JSONModel(oData);
this.setModel(oModel);
}
});
});
提示:在以前的SAPUI5版本中,应用程序的其他配置设置,如服务配置、根视图和路由配置,必须添加到组件的元数据Component.js文件。在SAPUI5 1.30版本中,我们建议您在清单中定义这些manifest.json文件描述符。基于旧SAPUI5版本创建的应用程序和示例仍然使用该Component.js文件为这个目的-所以它仍然支持,但不建议。在组件的元数据部分,我们现在用属性键清单和值json替换rootView属性。这定义了对描述符的引用,该描述符将在组件实例化时自动加载和解析。现在我们可以完全删除包含资源包的模型实例化的代码行。它是由SAPUI5在描述符中的配置条目的帮助下自动完成的。我们还可以删除对sap/ui/model/resource/ResourceModel和对应的形式化参数ResourceModel的依赖关系,因为我们不会在匿名回调函数中使用它。
Conventions
▪描述符文件被命名为manifest.json并位于webapp文件夹中。
▪标题和应用程序描述使用可翻译字符串。
Parent topic: Walkthrough
Previous: Step 9: Component Configuration
Next: Step 11: Pages and Panels
Related Information