• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 使用JS语言开发(传统代码方式)
2
3
4> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
5> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.900 Beta3**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta_openharmony)获取下载链接。
6
7
8## 创建JS工程
9
101. 若首次打开**DevEco Studio**,请点击**Create Project**创建工程。如果已有一个工程,请点击**File** > **New** > **Create Project**。选择模板“**Empty Ability**”,点击**Next**进行下一步配置。
11
12   ![zh-cn_image_0000001223558814](figures/zh-cn_image_0000001223558814.png)
13
142. 进入配置工程界面,**UI Syntax**选择“**JS**”,其他参数保持默认设置即可。
15
16   ![zh-cn_image_0000001223877162](figures/zh-cn_image_0000001223877162.png)
17
183. 点击**Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
19
20
21## JS工程项目文件
22
23- **entry**:OpenHarmony工程模块,编译构建生成一个[HAP](../../glossary.md#hap)包。
24  - **src > main > js** :用于存放js源码。
25  - **src > main > js > MainAbility** :应用/服务的入口。
26  - **src > main > js > MainAbility > i18n** :用于配置不同语言场景资源内容,比如应用文本词条、图片路径等资源。
27  - **src > main > js > MainAbility > pages** :MainAbility包含的页面。
28  - **src > main > js > MainAbility > app.js** :承载Ability生命周期。
29
30  - **src > main > resources** :用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
31  - **src > main > config.json** :模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见[应用包结构配置文件的说明](package-structure.md)。
32  - **build-profile.json5** :当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
33  - **hvigorfile.js** :模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
34
35- **build-profile.json5** :应用级配置信息,包括签名、产品配置等。
36
37- **hvigorfile.js** :应用级编译构建任务脚本。
38
39
40## 构建第一个页面
41
421. 使用文本组件。
43   工程同步完成后,在“**Project**”窗口,点击“**entry > src > main > js > MainAbility > pages> index**”,打开“**index.hml**”文件,设置Text组件内容。“**index.hml**”文件的示例如下:
44
45
46   ```html
47   <!--index.hml-->
48   <div class="container">
49       <text class="title">
50           Hello World
51       </text>
52   </div>
53   ```
54
552. 添加按钮,并绑定onclick方法。
56   在默认页面基础上,我们添加一个button类型的input组件,作为按钮响应用户点击,从而实现跳转到另一个页面。“**index.hml**”文件的示例代码如下:
57
58
59   ```html
60   <!--index.hml-->
61   <div class="container">
62       <text class="title">
63           Hello World
64       </text>
65
66   <!-- 添加按钮,值为Next,并绑定onclick方法-->
67       <input class="btn" type="button" value="Next" onclick="onclick"></input>
68   </div>
69   ```
70
713. 设置页面样式。
72   在“**Project**”窗口,点击“**entry &gt; src &gt; main &gt; js &gt; MainAbility &gt; pages&gt; index**”,打开“**index.css**”文件,可以对页面中文本、按钮设置宽高、字体大小、间距等样式。“**index.css**”文件的示例如下:
73
74
75   ```css
76   .container {
77       display: flex;
78       flex-direction: column;
79       justify-content: center;
80       align-items: center;
81       left: 0px;
82       top: 0px;
83       width: 100%;
84       height: 100%;
85   }
86
87   .title {
88       font-size: 100px;
89       font-weight: bold;
90       text-align: center;
91       width: 100%;
92       margin: 10px;
93   }
94
95   .btn {
96       font-size: 60px;
97       font-weight: bold;
98       text-align: center;
99       width: 40%;
100       height: 5%;
101       margin-top: 20px;
102   }
103   ```
104
1054. 在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。第一个页面效果如下图所示:
106
107
108   ![zh-cn_image_0000001216084724](figures/zh-cn_image_0000001216084724.png)
109
110
111## 构建第二个页面
112
1131. 创建第二个页面。
114   在“**Project**”窗口,打开“**entry &gt; src &gt; main &gt; js &gt; MainAbility**”,右键点击“**pages**”文件夹,选择“**New &gt; Page**”,命名为“**second**”,点击“**Finish**”,即完成第二个页面的创建。可以看到文件目录结构如下:
115
116   ![zh-cn_image_0000001223877210](figures/zh-cn_image_0000001223877210.png)
117
1182. 添加文本及按钮。
119   参照第一个页面,在第二个页面添加文本、按钮及点击按钮绑定页面返回等。“**second.hml**”文件的示例如下:
120
121
122   ```html
123   <!--second.hml-->
124   <div class="container">
125       <text class="title">
126           Hi there
127       </text>
128
129   <!-- 添加按钮,值为Back,并绑定back方法-->
130       <input class="btn" type="button" value="Back" onclick="back"></input>
131   </div>
132   ```
133
1343. 设置页面样式。“**second.css**”文件的示例如下:
135
136   ```css
137   .container {
138       display: flex;
139       flex-direction: column;
140       justify-content: center;
141       align-items: center;
142       left: 0px;
143       top: 0px;
144       width: 100%;
145       height: 100%;
146   }
147
148   .title {
149       font-size: 100px;
150       font-weight: bold;
151       text-align: center;
152       width: 100%;
153       margin: 10px;
154   }
155
156   .btn {
157       font-size: 60px;
158       font-weight: bold;
159       text-align: center;
160       width: 40%;
161       height: 5%;
162       margin-top: 20px;
163   }
164   ```
165
166
167## 实现页面间的跳转
168
169页面间的导航可以通过[页面路由router](../ui/ui-js-building-ui-routes.md)来实现。页面路由router根据页面url找到目标页面,从而实现跳转。使用页面路由请导入router模块。
170
1711. 第一个页面跳转到第二个页面。
172   在第一个页面中,跳转按钮绑定onclick方法,点击按钮时跳转到第二页。“**index.js**”示例如下:
173
174
175   ```js
176   // index.js
177   import router from '@ohos.router';
178
179   export default {
180       onclick: function () {
181           router.push({
182               url: "pages/second/second"
183           })
184       }
185   }
186   ```
187
1882. 第二个页面返回到第一个页面。
189   在第二个页面中,返回按钮绑定back方法,点击按钮时返回到第一页。“**second.js**”示例如下:
190
191
192   ```js
193   // second.js
194   import router from '@ohos.router';
195
196   export default {
197       back: function () {
198           router.back()
199       }
200   }
201   ```
202
2033. 打开index文件夹下的任意一个文件,点击预览器中的 ![zh-cn_image_0000001262339067](figures/zh-cn_image_0000001262339067.png) 按钮进行刷新。效果如下图所示:
204
205   ![zh-cn_image_0000001216269940](figures/zh-cn_image_0000001216269940.png)
206
207
208## 使用真机运行应用
209
2101. 将搭载OpenHarmony标准系统的开发板与电脑连接。
211
2122. 点击**File** &gt; **Project Structure** &gt; **Project** &gt; **Signing Configs**界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
213
214   ![zh-cn_image_0000001223557290](figures/zh-cn_image_0000001223557290.png)
215
2163. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001217047316](figures/zh-cn_image_0000001217047316.png)按钮运行。效果如下图所示:
217
218   ![zh-cn_image_0000001217527892](figures/zh-cn_image_0000001217527892.png)
219
220恭喜您已经使用JS语言开发(传统代码方式)完成了第一个OpenHarmony应用,快来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
221
222## 相关实例
223
224针对使用JS语言(传统代码方式)开发快速入门,有以下相关实例可供参考:
225- [`JsHelloWorld`:你好世界(JS)(API8)](https://gitee.com/openharmony/applications_app_samples/tree/samples_monthly_0730/common/JsHelloWorld)
226