# 项目配置

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

# manifest

属性 类型 默认值 必填 描述
package String - 应用包名,确认与原生应用的包名不一致,推荐采用 com.company.module 的格式,如:com.example.demo
name String - 应用名称,6 个汉字以内,与应用商店保存的名称一致,用于在桌面图标、弹窗等处显示应用名称
icon String - 应用图标,提供 192x192 大小的即可
versionName String - 应用版本名称,如:"1.0"
versionCode Integer - 应用版本号,从1自增,推荐每次重新上传包时versionCode+1
minAPILevel Integer 1 支持的最小 API 标准版本号,兼容性检查,避免上线后在低版本平台运行并导致不兼容;如果不填按照内测版本处理
features Array - 接口列表,绝大部分接口都需要在这里声明,否则不能调用,详见每个接口的文档说明
config Object - 系统配置信息,详见下面说明
router Object - 路由信息,详见下面说明
display Object - UI 显示相关配置,详见下面说明
deviceTypeList Array<String> watch 可选值有:watch、tv、car、phone,现只支持watch
permissions Array - 权限申请,示例:[{ "name": "hapjs.permission.LOCATION" }]

# config

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

属性 类型 默认值 描述
logLevel String log 打印日志等级,分为 off、error、warn、info、log、debug
designWidth Integer - 页面设计基准宽度,根据实际设备宽度来缩放元素大小
background Object - 后台运行配置信息,可使用 features 字段申请需要在后台使用的接口(同时仍需在最外层的 features 字段中声明)。可申请的接口为:
system.audio
system.geolocation
system.request 等
详细用法参见 后台运行 脚本

# minAPILevel

支持的最小 API 标准版本号,标识开发者的 rpk 包能兼容运行在最小实现了该版本 API 标准的设备上,其值默认为1。当使用了 1 及以上的 API 标准版本新增特性时,就必须确保 minAPILevel 最低为该版本号,避免上线后在实现了更低版本 API 标准的设备上运行出错。

示例如下:

{
  "minAPILevel": 1
}

# router

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

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

示例代码:

"router": {
  "entry": "Demo",
  "pages": {
    "Demo": {
      "component": "index"
    }
  }
}

# router.pages

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

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

# 示例代码

{
  "package": "com.company.unit",
  "name": "appName",
  "icon": "/Common/icon.png",
  "versionName": "1.0",
  "versionCode": 1,
  "minPlatformVersion": 1000,
  "features": [{ "name": "system.network" }],
  "router": {
    "entry": "Hello",
    "pages": {
      "Hello": {
        "component": "hello",
        "path": "/"
      }
    }
  }
}

# display

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

如果在 display 对象下定义以下属性值,则生效范围为此JS 应用全部页面;

属性 类型 默认值 描述
backgroundColor String #ffffff 窗口背景颜色

# 权限说明

权限名 feature api 描述 权限错误码
hapjs.permission.LOCATION system.geolocation getLocation
subscribe
unsubscribe
地理位置 400: 拒绝授予权限
402: 权限错误(未声明该权限)
hapjs.permission.DEVICE_INFO system.device getSerial
getDeviceId
获取设备信息 400: 拒绝授予权限
402: 权限错误(未声明该权限)