• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# js标签配置
2
3js标签中包含了实例名称、页面路由和窗口样式信息。
4
5
6| 标签     | 类型     | 默认值     | 必填   | 描述                              |
7| ------ | ------ | ------- | ---- | ------------------------------- |
8| name   | string | default | 是    | 标识JS实例的名字。                      |
9| pages  | Array  | -       | 是    | 路由信息,详见“**[pages](#pages)**”。   |
10| window | Object | -       | 否    | 窗口信息,详见“**[window](#window)**”。 |
11
12
13> **说明:**
14> name、pages和window等标签配置需在配置文件(config.json)中的“js”标签中完成设置。
15
16
17## pages
18
19定义每个页面的路由信息,每个页面由页面路径和页面名组成,页面的文件名就是页面名。比如:
20
21```json
22{
23    ...
24    "pages": [
25        "pages/index/index",
26        "pages/detail/detail"
27    ]
28    ...
29}
30```
31
32> **说明:**
33>
34> - pages列表中第一个页面是应用的首页,即entry入口。
35>
36>
37> - 页面文件名不能使用组件名称,比如:text.hmlbutton.hml等。
38
39## window
40
41window用于定义与显示窗口相关的配置。对于屏幕适配问题,有2种配置方法:
42
43- 指定designWidth(屏幕逻辑宽度),所有与大小相关的样式(例如width、font-size)均以designWidth和实际屏幕宽度的比例进行缩放,例如在designWidth为720时,如果设置width为100px时,在实际宽度为1440物理像素的屏幕上,width实际渲染像素为200物理像素。
44
45- 设置autoDesignWidth为true,此时designWidth字段将会被忽略,渲染组件和布局时按屏幕密度进行缩放。屏幕逻辑宽度由设备宽度和屏幕密度自动计算得出,在不同设备上可能不同,请使用相对布局来适配多种设备。例如:在466\*466分辨率,320dpi的设备上,屏幕密度为2(以160dpi为基准),1px等于渲染出的2物理像素。
46
47  > **说明:**
48  > 1. 组件样式中<length>类型的默认值,按屏幕密度进行计算和绘制,如:在屏幕密度为2(以160dpi为基准)的设备上,默认<length>为1px时,设备上实际渲染出2物理像素。
49  >
50  > 2. autoDesignWidth、designWidth的设置不影响默认值计算方式和绘制结果。
51
52| 属性              | 类型      | 必填   | 缺省值      | 描述                                       |
53| --------------- | ------- | ---- | -------- | ---------------------------------------- |
54| designWidth     | number  | 否    | 720<br/> | 页面显示设计时的参考值,实际显示效果基于设备宽度与参考值之间的比例进行缩放。   |
55| autoDesignWidth | boolean | 否    | false    | 页面设计基准宽度是否自动计算,当设为true时,designWidth将会被忽略,设计基准宽度由设备宽度与屏幕密度计算得出。 |
56
57示例如下:
58```json
59{
60    ...
61    "window": {
62        "designWidth": 720,
63        "autoDesignWidth": false
64    }
65    ...
66}
67```
68
69
70## 示例
71
72```json
73{
74  "app": {
75    "bundleName": "com.example.player",
76    "version": {
77        "code": 1,
78        "name": "1.0"
79    },
80    "vendor": "example"
81  }
82  "module": {
83      ...
84      "js": [
85      {
86          "name": "default",
87          "pages": [
88              "pages/index/index",
89              "pages/detail/detail"
90          ],
91          "window": {
92              "designWidth": 720,
93              "autoDesignWidth": false
94          }
95      }
96      ],
97      "abilities": [
98      {
99          ...
100      }
101    ]
102  }
103}
104```
105