Fiori-Step10-Descriptor-for-Applications


我们可以把应用的一些配置信息都放到这个manifest.json里面,UI5提供了API来检索相应的配置信息,同时,当我们需要把这个app放到Fiori Launchpad的时候,一些相应的配置信息也会被Fiori Launchpad读到。

  • 新建一个manifest.json文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    {
    "_version": "1.1.0",
    "sap.app": {
    "_version": "1.1.0",
    "id": "sap.ui.demo.wt",
    "type": "application",
    "i18n": "i18n/i18n.properties",
    "title": "{{appTitle}}",
    "description": "{{appDescription}}",
    "applicationVersion": {
    "version": "1.0.0"
    }
    },
    "sap.ui": {
    "_version": "1.1.0",
    "technology": "UI5",
    "deviceTypes": {
    "desktop": true,
    "tablet": true,
    "phone": true
    },
    "supportedThemes": [
    "sap_belize"
    ]
    },
    "sap.ui5": {
    "_version": "1.1.0",
    "rootView": "sap.ui.demo.wt.view.App",
    "dependencies": {
    "minUI5Version": "1.30",
    "libs": {
    "sap.m": {}
    }
    },
    "models": {
    "i18n": {
    "type": "sap.ui.model.resource.ResourceModel",
    "settings": {
    "bundleName": "sap.ui.demo.wt.i18n.i18n"
    }
    }
    }
    }
    }

这里只介绍了一些重要的设置参数,在WEBIDE中可能会由于一些设置没有而出现一些validation error消息

manifest.json文件是一个使用JSON格式来保存应用所需要的全局设置和参数。包括三个由namespaces定义的重要的部分:

  1. sap.app
    (应用级别的设置)

    1
    2
    3
    4
    5
    6
    ·id(必须): 应用组件的namespace,不能超过70个字符,唯一
    ·type:定义我们要配置的类型,这里是:application
    ·i18n:定义Resource bundle 文件的路径
    ·title:应用标题
    ·description:描述
    ·applicationVersion:应用的版本,方便日后升级
  2. sap.ui
    (UI级别的设置)

    1
    2
    3
    ·technology:SAPUI5
    ·deviceTypes:应用支持的设备:desktop,tablet,phone,默认是全部支持
    ·supportedThemes:一个包含了所支持的主题的数组,比如sap_belize
  3. sap.ui5

    1
    2
    3
    ·rootView:如果设置了这个,组件会自动实例化这个view并且把它做为rootView。
    ·dependencies:应用所用到的库
    ·models:这里可以设置所有app启动时就进行实例化的models,比如可以定义local resource bundle,i18n,并且指定路径,这样就不需要在component.js的init中手工加载了

WEBIDE一个非常好的功能就是可以layout维护descrptor

假如我们把上面那些设置都copy到这个文件里再用这个descrptor editor打开,你会发现维护起来非常直观。

这可以节约我们很多代码时间

(原来真的有default model,就是前面step中getModel()没有指定model name那个)

继续…


先在i18n.properties中加入一些文本,方便在descrptor引用,(不知道这里为什么用#做注释)


修改Component.js文件中的metadata部分,这里就可以把rootView这个属性替换为manifast: "json"

在这里执行程序的时候遇到一个坑,可能是我正在编辑manifast文件,在点击执行时执行的Component.js,而不是index.html

搞了半天才发现,在run configuration中增加了一个Web Application才搞定,留意了一下区别,默认的 Sap Fiori Component on Sandbox才是以后我们将会发布在Fiori之上的组件,后面学吧

Jim Guo wechat
ex. subscribe to my blog by scanning my public wechat account