manifest 文件

manifest.json 文件中包含了应用描述、接口声明、页面路由信息

manifest

属性类型默认值必填描述
packageString-应用包名,确认与原生应用的包名不一致,推荐采用 com.company.module 的格式,如:com.example.demo
nameString-应用名称,6 个汉字以内,与应用商店保存的名称一致,用于在桌面图标、弹窗等处显示应用名称
iconString-应用图标,提供 192x192 大小的即可
versionNameString-应用版本名称,如:"1.0"
versionCodeInteger-应用版本号,从1自增,推荐每次重新上传包时versionCode+1
minPlatformVersionInteger-支持的最小平台版本号,兼容性检查,避免上线后在低版本平台运行并导致不兼容;如果不填按照内测版本处理
featuresArray-接口列表,绝大部分接口都需要在这里声明,否则不能调用,详见每个接口的文档说明
configObject-系统配置信息,详见下面说明
routerObject-路由信息,详见下面说明
displayObject-UI 显示相关配置,详见下面说明
subpackages 1040+Object-定义并启用分包加载,详见下面说明

config

用于定义系统配置和全局数据。

属性类型默认值描述
logLevelStringlog打印日志等级,分为 off,error,warn,info,log,debug
designWidthInteger750页面设计基准宽度,根据实际设备宽度来缩放元素大小
dataObject-全局数据对象,属性名不能以$或_开头,在页面中可通过 this 进行访问;如果全局数据属性与页面的数据属性重名,则页面初始化时,全局数据会覆盖页面中对应的属性值
background 1050+Object-后台运行配置信息,可使用 features 字段申请需要在后台使用的接口,可申请的接口为:system.audiosystem.geolocationsystem.recordsystem.request等。详细用法参见后台运行 脚本

router

用于定义页面的组成和相关配置信息,如果页面没有配置路由信息,则在编译打包时跳过。

属性类型默认值描述
entryString-首页名称;使用分包功能时,建议将首页定义在基础包中
pagesObject-页面配置列表,key 值为页面名称(对应页面目录名,例如 Hello 对应'Hello'目录),value 为页面详细配置 page,详见下面说明

router.page

用于定义单个页面路由信息。

属性类型默认值必填描述
componentString-页面对应的组件名,与 ux 文件名保持一致,例如'hello' 对应 'hello.ux'
pathString/<页面名称>页面路径,例如“/user”,不填则默认为/<页面名称>。path 必须唯一,不能和其他 page 的 path 相同。下面 page 的 path 因为缺失,会被设置为“/Index”:"Index": {"component": "index"}
filterObject-声明页面可以处理某种请求
launchMode 1050+Stringstandard声明页面的启动模式,支持"singleTask","standard"两种页面启动模式。标识为"singleTask"模式时每次打开目标页面都会打开已有的目标页面并回调onRefresh生命周期函数,清除该页面上打开的其他页面,没有打开过此页面时会创建新的目标页面实例。标识为"standard"模式时会每次打开新的目标页面(多次打开目标页面地址时会存在多个相同页面)首页仅支持"singleTask"模式。

router.page.filter

声明页面可以处理某种请求,页面可以从$page 获取打开页面的参数,参见script 脚本。filter 的结构如下:

  1. "filter": {
  2. "<action>": {
  3. "uri": "<pattern>"
  4. }
  5. }
属性类型默认值必填描述
actionString-请求的动作,目前仅支持 view 这一种
uriPattern-请求的数据的匹配规则。必须是正则表达式。如https?://.*可以匹配所有 http 和 https 类型的网址

可以处理所有 http 和 https 请求的 filter 定义如下:

  1. "filter": {
  2. "view": {
  3. "uri": "https?://.*"
  4. }
  5. }

display

用于定义与 UI 显示相关的配置。

属性类型默认值描述
backgroundColorString#ffffff窗口背景颜色
fullScreenBooleanfalse是否是全屏模式,默认不会同时作用于 titleBar,titleBar 需要继续通过 titleBar 控制
titleBarBooleantrue是否显示 titleBar
titleBarBackgroundColorString-标题栏背景色
titleBarTextColorString-标题栏文字颜色
titleBarTextString-标题栏文字(也可通过页面跳转传递参数(titleBarText)设置)
menuBooleanfalse是否显示标题栏右上角菜单按钮,点击菜单按钮调用页面生命周期 onMenuPress 方法,如果该方法未实现则显示系统默认菜单
windowSoftInputMode 1030+adjustPan | adjustResizeadjustPan软键盘弹出时为保证输入框可见,页面的调整方式。 adjustPan:上移页面; adjustResize:压缩页面显示区域,当页面全屏时,此设置不生效
pagesObject-各个页面的显示样式,key 为页面名(与路由中的页面名保持一致),value 为窗口显示样式,页面样式覆盖 default 样式。
orientation 1040+Stringportrait页面显示横屏还是竖屏portrait:竖屏landscape:横屏
statusBarImmersive 1050+Booleanfalse是否显示沉浸式状态栏
statusBarTextStyle 1050+light | dark | autoauto状态栏文字样式,有亮,暗和自动 当为自动时会根据状态栏背景色调整
statusBarBackgroundColor 1050+String-状态栏背景色,默认值同标题栏背景色
statusBarBackgroundOpacity 1050+float(0-1.0)false状态栏背景色不透明度,默认值同标题栏背景色不透明度

subpackages 1040+

用于定义分包的相关配置。分包的详细使用方法参见分包加载

属性类型含义描述
nameString分包名称分包的名称,用于区分不同分包。只能是字母数字和下划线,不允许包含其他符号,"base"作为基础包的保留名称(无需为基础包定义分包配置)
resourceString资源目录分包资源根目录,相对于源码目录"src"的相对路径。只能是字母数字以及"_"、"-"、"/"组成,第一个字符不允许为"-"和"/",不允许包含其他符号。编译时会把该目录下的所有资源都打包到这个分包中去

示例:

  1. {
  2. "package": "com.company.unit",
  3. "name": "appName",
  4. "icon": "/Common/icon.png",
  5. "versionName": "1.0",
  6. "versionCode": 1,
  7. "minPlatformVersion": 1000,
  8. "features": [{ "name": "system.network" }],
  9. "permissions": [{ "origin": "*" }],
  10. "config": {
  11. "logLevel": "off",
  12. "background": {
  13. "features":[
  14. "system.audio",
  15. "system.record",
  16. "system.request",
  17. "system.geolocation"
  18. ]
  19. }
  20. },
  21. "router": {
  22. "entry": "Hello",
  23. "pages": {
  24. "Hello": {
  25. "component": "hello",
  26. "path": "/",
  27. "filter": {
  28. "view": {
  29. "uri": "https?://.*"
  30. }
  31. }
  32. },
  33. "PackageA/Page1": {
  34. "component": "page1"
  35. },
  36. "PackageA/Page2": {
  37. "component": "page2"
  38. }
  39. }
  40. },
  41. "display": {
  42. "backgroundColor": "#ffffff",
  43. "fullScreen": false,
  44. "titleBar": true,
  45. "titleBarBackgroundColor": "#000000",
  46. "titleBarTextColor": "#fffff",
  47. "statusBarImmersive": false,
  48. "statusBarTextStyle": "auto",
  49. "statusBarBackgroundColor": "#000000",
  50. "pages": {
  51. "Hello": {
  52. "backgroundColor": "#eeeeee",
  53. "fullScreen": true,
  54. "titleBarBackgroundColor": "#0000ff",
  55. "titleBarText": "Hello",
  56. "orientation": "landscape"
  57. }
  58. }
  59. },
  60. "subpackages": [
  61. {
  62. "name": "pkgA",
  63. "resource": "PackageA"
  64. }
  65. ]
  66. }