diff --git a/en/application-dev/application-dev-website.md b/en/application-dev/application-dev-website.md
index f2367108230f24f71b60d0570855d9c251fb5b7f..9220e1592f5251d39254f00413166c0ab99f112e 100644
--- a/en/application-dev/application-dev-website.md
+++ b/en/application-dev/application-dev-website.md
@@ -1,15 +1,5 @@
- [Application Development Overview](application-dev-guide.md)
- Quick Start
- - Getting Started with Application Development
- - DevEco Studio (OpenHarmony) User Guide
- - [Overview](quick-start/deveco-studio-overview.md)
- - [Version Change History](quick-start/deveco-studio-release-notes.md)
- - [Configuring the OpenHarmony SDK](quick-start/configuring-openharmony-sdk.md)
- - Creating an OpenHarmony Project
- - [Using the Project Wizard to Create a Project](quick-start/use-wizard-to-create-project.md)
- - [Importing a Sample to Create a Project](quick-start/import-sample-to-create-project.md)
- - [Configuring the OpenHarmony App Signature](quick-start/configuring-openharmony-app-signature.md)
- - [Installing and Running Your OpenHarmony App](quick-start/installing-openharmony-app.md)
- [Directory Structure](quick-start/package-structure.md)
- [Resource File Categories](quick-start/basic-resource-file-categories.md)
- Development
@@ -24,7 +14,7 @@
- Other
- [Ability Assistant Usage](ability/ability-assistant-guidelines.md)
- - [UI]](ui/Readme-EN.md)
+ - [UI](ui/Readme-EN.md)
- JavaScript-based Web-Like Development Paradigm
- [Overview](ui/ui-js-overview.md)
- Framework
@@ -213,13 +203,7 @@
- [Overview of Distributed Call Chain Tracing](dfx/hitracechain-overview.md)
- [Development of Distributed Call Chain Tracing](dfx/hitracechain-guidelines.md)
- Tools
- - DevEco Studio (OpenHarmony) User Guide
- - [Overview](quick-start/deveco-studio-overview.md)
- - [Version Change History](quick-start/deveco-studio-release-notes.md)
- - [Configuring the OpenHarmony SDK](quick-start/configuring-openharmony-sdk.md)
- - [Creating an OpenHarmony Project](quick-start/create-openharmony-project.md)
- - [Configuring the OpenHarmony App Signature](quick-start/configuring-openharmony-app-signature.md)
- - [Installing and Running Your OpenHarmony App](quick-start/installing-openharmony-app.md)
+ - [DevEco Studio (OpenHarmony) User Guide](quick-start/deveco-studio-user-guide-for-openharmony.md)
- Hands-On Tutorials
- [Samples](https://gitee.com/openharmony/app_samples/blob/master/README.md)
- API References
diff --git a/en/application-dev/quick-start/Readme-EN.md b/en/application-dev/quick-start/Readme-EN.md
index cb35fe17513b8b7111db96b57c7fa00605121b1f..9b03c6bfe510907ad8c1fe9a054cad3bf26ae919 100644
--- a/en/application-dev/quick-start/Readme-EN.md
+++ b/en/application-dev/quick-start/Readme-EN.md
@@ -1,14 +1,6 @@
# Basics
-- [DevEco Studio \(OpenHarmony\) User Guide](deveco-studio-user-guide-for-openharmony.md)
- - [Overview](deveco-studio-overview.md)
- - [Version Change History](deveco-studio-release-notes.md)
- - [Configuring the OpenHarmony SDK](configuring-openharmony-sdk.md)
- - [Creating an OpenHarmony Project](create-openharmony-project.md)
- - [Using the Project Wizard to Create a Project](use-wizard-to-create-project.md)
- - [Importing a Sample to Create a Project](import-sample-to-create-project.md)
-
- - [Configuring the OpenHarmony App Signature](configuring-openharmony-app-signature.md)
- - [Installing and Running Your OpenHarmony App](installing-openharmony-app.md)
-- [Directory Structure](package-structure.md)
+- Development Fundamentals
+ - [Directory Structure](package-structure.md)
+ - [Resource File](basic-resource-file-categories.md)
diff --git a/en/application-dev/quick-start/configuring-openharmony-app-signature.md b/en/application-dev/quick-start/configuring-openharmony-app-signature.md
deleted file mode 100644
index d2d7da5cb09c862978fac8648d46a62baf5e6953..0000000000000000000000000000000000000000
--- a/en/application-dev/quick-start/configuring-openharmony-app-signature.md
+++ /dev/null
@@ -1,178 +0,0 @@
-# Configuring the OpenHarmony App Signature
-
-- [Generating a Key Store and CSR](#section153146467405)
- - [In DevEco Studio](#section1298903211472)
- - [In a Command-Line Tool](#section1276462024811)
-
-- [Generating an App Certificate](#section136609429562)
-- [Generating the App Profile](#section2048641015325)
-- [Configuring App Signature Information](#section10152423193310)
-
-Before running and debugging the OpenHarmony app on a real device, you need to sign the app. This section describes how to configure the signature of an OpenHarmony app. Operation instructions are the same in _HUAWEI DevEco Studio User Guide_ except this section. For details, see [HUAWEI DevEco Studio User Guide](https://developer.harmonyos.com/en/docs/documentation/doc-guides/tools_overview-0000001053582387). See the following figure for the process of configuring app signature information.
-
-![](figures/en-us_image_0000001113808114.png)
-
-## Generating a Key Store and CSR
-
-OpenHarmony uses digital certificates \(.cer\) and **Profile** files \(.p7b\) to ensure app integrity. Before applying for these files, you need to generate a key store \(.p12\) and a certificate signing request \(.csr\). You can do so in DevEco Studio or a command-line tool.
-
-### In DevEco Studio
-
-1. On the menu bar, choose **Build** \> **Generate Key and CSR**.
-
- >![](../public_sys-resources/icon-note.gif) **NOTE:**
- >If you have a local key, click **Skip** in the **Generate Key** window and use the key to generate a CSR file.
-
-2. In **Key Store File**, click **Choose Existing** to select an existing key store \(.p12 file that contains a key\) or **New** to create one. The following describes how to create a key store.
-
- ![](figures/en-us_image_0000001119560738.png)
-
-3. In the **Create Key Store** dialog box, set the following parameters and click **OK**.
-
- - **Key Store File**: Select the path for storing the key store.
- - **Password**: Set the key store password, which must contain at least 8 characters that include two types of the following: uppercase letters, lowercase letters, digits, and special characters. Do not lose the password as it will be used later in configuring the signature.
- - **Confirm Password**: Enter the key store password again.
-
- ![](figures/en-us_image_0000001152674854.png)
-
-4. In the **Generate Key** window, set the following parameters and click **Next**.
-
- - **Alias**: Enter the alias of the key, which is used to identify the key name. Do not lose the alias as it will be used later in configuring the signature.
- - **Password**: password of the key, which is automatically filled in and the same as the keystore password.
- - **Validity**: Specify the certificate validity period. A validity period of 25 years or longer is recommended to cover the entire lifecycle of your app/service.
- - **Certificate**: Enter basic certificate information.
-
- ![](figures/en-us_image_0000001117639668.png)
-
-5. In the **Generate CSR** window, select the key and set the storage path of the CSR file.
-
- ![](figures/en-us_image_0000001117479776.png)
-
-6. Click **OK**. You can then obtain the generated keystore file \(.p12\) and CSR file \(.csr\) from the storage path.
-
- ![](figures/en-us_image_0000001163839541.png)
-
-
-### In a Command-Line Tool
-
-Use the Keytool in the Open JDK to generate a CSR.
-
-1. Run the Keytool as an administrator.
-
- ![](figures/en-us_image_0000001248045243.png)
-
-2. Switch to the directory where the Keytool is located.
-
- ![](figures/en-us_image_0000001247125297.png)
-
-3. Run the following command to generate a key store. This example creates a key store named **ide\_demo\_app.p12** and saves it to the root directory of the D drive.
-
- ```
- keytool -genkeypair -alias "ide_demo_app" -keyalg EC -sigalg SHA256withECDSA -dname "C=CN,O=Organization,OU=Unit,CN=ide_demo_app" -keystore d:\\idedemokey.p12 -storetype pkcs12 -validity 9125 -storepass 123456Abc -keypass 123456Abc
- ```
-
- Parameters in the key store:
-
- >![](../public_sys-resources/icon-note.gif) **NOTE:**
- >Record the values of **alias**, **storepass**, and **keypass**, which will be used in [Configuring App Signature Information](#section10152423193310).
-
- - **alias**: alias of the key, which is used to identify the key name.
- - **sigalg**: signature algorithm, which is automatically set to **SHA256withECDSA** and cannot be changed.
- - **dname**:
- - **C**: country/region code, such as **CN**.
- - **O**: organization name, such as **Organization**.
- - **OU**: organization unit name, such as **Unit**.
- - **CN**: your first name and last name. Set this parameter to be the same as **alias**.
-
- - **validity**: certificate validity period. It is recommended that you set this parameter to **9125** \(25 years\).
- - **storepass**: key store password, which must contain at least 8 characters that include two types of the following: uppercase letters, lowercase letters, digits, and special characters. Do not lose the password as it will be used later in configuring the signature.
- - **keypass**: password of the key. The value must be the same as that of **storepass**.
-
-4. Run the following command. After the command is executed, enter the **storepass** to generate a CSR in .csr format.
-
- ```
- keytool -certreq -alias "ide_demo_app" -keystore d:\\idedemokey.p12 -storetype pkcs12 -file d:\\idedemokey.csr
- ```
-
- Parameters in the CSR:
-
- - **alias**: The value must be the same as the alias set in 3.
- - **file**: name of the generated CSR. The file name extension is .csr.
-
-
-## Generating an App Certificate
-
-Use the CSR generated in [Generating a Key Store and CSR](#section153146467405) to generate the digital certificate required for app signing. The method is as follows:
-
-Go to the **Sdk\\toolchains\\lib** directory where the OpenHarmony SDK is saved \(see [Configuring the OpenHarmony SDK](configuring-openharmony-sdk.md) for details\) in the DevEco Studio installation directory, and run the following command in the CLI. If the **keytool** command cannot be executed, add the JDK environment variables to the system environment variables. You only need to modify the input and output to quickly generate a certificate. That is, modify **-infile** to specify the path of the CSR and **-outfile** to specify the name and path of the output certificate.
-
-```
-keytool -gencert -alias "OpenHarmony Application CA" -infile myApplication_ohos.csr -outfile myApplication_ohos.cer -keystore OpenHarmony.p12 -sigalg SHA384withECDSA -storepass 123456 -ext KeyUsage:"critical=digitalSignature" -validity 3650 -rfc
-```
-
-Refer to the following descriptions about the parameters in the command:
-
-- **alias**: alias of the CA private key used for issuing certificates. The CA private key of the OpenHarmony community is stored in the **OpenHarmony.p12** key store file. This parameter cannot be modified.
-- **infile**: path of the CSR file.
-- **outfile**: name and path of the certificate chain file.
-- **keystore**: path of the CA key store for issuing certificates. The name of the OpenHarmony key store file is **OpenHarmony.p12**. The file is stored in **Sdk\\toolchains\\lib** of the OpenHarmony SDK. This parameter cannot be modified. Note that the **OpenHarmony.p12** file is not the .p12 file generated in [Generating a Key Store and CSR](#section153146467405).
-- **sigalg**: certificate signature algorithm. This parameter cannot be modified.
-- **storepass**: key store password. The password is **123456** and cannot be changed.
-- **ext**: certificate extension. This parameter cannot be modified.
-- **validity**: certificate validity period, which is user-defined.
-- **rfc**: specifies the output file format. This parameter cannot be modified.
-
-## Generating the App Profile
-
-The profile contains the following information about the OpenHarmony app: bundle name, digital certificate information, certificate permissions that can be applied for by the app, and devices where the app can be debugged \(the device list will be empty if the app type is Release\). Each app package must contain a profile file.
-
-Go to the **Sdk\\toolchains\\lib** directory, open the command-line tool, and run the following command.
-
-```
-java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --out myApplication_ohos_Provision.p7b --keystore OpenHarmony.p12 --storepass 123456 --alias "OpenHarmony Application Profile Release" --sigAlg SHA256withECDSA --cert OpenHarmonyProfileRelease.pem --validity 365 --developer-id ohosdeveloper --bundle-name app bundle name --permission restricted permission name (optional) --permission restricted permission name (optional) --distribution-certificate myApplication_ohos.cer
-```
-
-Refer to the following descriptions about the parameters in the command:
-
-- **provisionsigtool**: tool for generating the profile which is stored in **Sdk\\toolchains\\lib** of the OpenHarmony SDK.
-- **in**: path of the profile template which is stored in **Sdk\\toolchains\\lib** of the OpenHarmony SDK. This parameter cannot be modified.
-- **out**: name and path of the profile.
-- **keystore**: path of the key store for issuing certificates. The name of the OpenHarmony key store file is **OpenHarmony.p12**. The file is stored in **Sdk\\toolchains\\lib** of the OpenHarmony SDK. This parameter cannot be modified.
-- **storepass**: key store password. The password is **123456** and cannot be changed.
-- **alias**: alias of the private key used for app signing. The CA private key of the OpenHarmony community is stored in the **OpenHarmony.p12** key store file. This parameter cannot be modified.
-- **sigalg**: certificate signature algorithm. This parameter cannot be modified.
-- **cert**: path of the certificate of the signature profile. The file is stored in **Sdk\\toolchains\\lib** of the OpenHarmony SDK. This parameter cannot be modified.
-- **validity**: certificate validity period, which is user-defined.
-- **developer-id**: developer ID, which is a user-defined character string.
-- **bundle-name**: app bundle name.
-- **permission** \(optional\): If permissions are not required, this field can be left empty. You can add multiple restricted permissions in the following way: ohos.permission.READ\_CONTACTS, ohos.permission.WRITE\_CONTACTS.
-- **distribution-certificate**: certificate generated in [Generating an App Certificate](#section136609429562).
-
-## Configuring App Signature Information
-
-Before debugging on a real device, use the private key file \(.p12\), certificate file \(.cer\), and profile file \(.p7b\) to sign the target module.
-
-Go to **File** \> **Project Structure** \> **Project** \> **Signing Configs** \> **debug**, deselect **Automatically generate signing**, and configure the signature information of the specified module.
-
-- **Store File**: Select the key store file with the file name extension .p12, which is generated in [Generating a Key Store and CSR](#section153146467405).
-- **Store Password**: Enter the key store password, which is the same as the key store password entered in [Generating a Key Store and CSR](#section153146467405).
-- **Key Alias**: Enter the alias of the key, which is the same as the alias entered in [Generating a Key Store and CSR](#section153146467405).
-- **Key Password**: Enter the key password, which is the same as the value of **Store Password**.
-- **Sign Alg**: Specify the signature algorithm, which has a fixed value of **SHA256withECDSA**.
-- **Profile File**: Select the .p7b profile file generated in [Generating the App Profile](#section2048641015325).
-- **Certpath File**: Select the .cer debug certificate generated in [Generating an App Certificate](#section136609429562).
-
-![](figures/en-us_image_0000001155643492.png)
-
-Click **OK** to save your configurations. Then you can view the signature configuration information in **build.gradle** of the project.
-
-![](figures/en-us_image_0000001202722349.png)
-
-By default, the type of a HAP package compiled using DevEco Studio is set to **debug**. For a release type, click the **OhosBuild Variants** tab in the lower left corner of the project and set the type to **release**. For details about how to compile and build the HAP, see [HUAWEI DevEco Studio User Guide](https://developer.harmonyos.com/en/docs/documentation/doc-guides/build_hap-0000001053342418).
-
-![](figures/en-us_image_0000001115066116.png)
-
-After the compilation is complete, you can obtain the HAP package of your OpenHarmony app from the **build** directory of the project.
-
-![](figures/en-us_image_0000001163918627.png)
-
diff --git a/en/application-dev/quick-start/configuring-openharmony-sdk.md b/en/application-dev/quick-start/configuring-openharmony-sdk.md
deleted file mode 100644
index fa4b76112a1e0055332535e019d9178f8ab4ffe3..0000000000000000000000000000000000000000
--- a/en/application-dev/quick-start/configuring-openharmony-sdk.md
+++ /dev/null
@@ -1,195 +0,0 @@
-# Configuring the OpenHarmony SDK
-
-- [Prerequisites](#section164161442154812)
-- [Configuring the SDK Information](#section1265592425017)
-- [References](#section0384143616409)
- - [Setting Up the DevEco Studio Proxy](#section10129720184214)
- - [Setting Up the npm Proxy](#section19984059114316)
- - [Setting Up the Gradle Proxy](#section164211820465)
-
-
-To set up the OpenHarmony app development environment, configure the corresponding SDK information in DevEco Studio first.
-
->![](../public_sys-resources/icon-note.gif) **NOTE:**
->The OpenHarmony SDK is not applicable to HarmonyOS app development, with some necessary toolchains removed.
-
-## Prerequisites
-
-[DevEco Studio 3.0 Beta1](https://developer.harmonyos.com/cn/develop/deveco-studio#download) or later has been downloaded and installed.
-
-## Configuring the SDK Information
-
-DevEco Studio manages SDKs and toolchains using SDK Manager. OpenHarmony contains the following SDK packages:
-
-
-
Type
-
-
Package Name
-
-
Description
-
-
-
-
SDK
-
-
JS
-
-
SDK for JS.
-
-
-
eTS
-
-
SDK for Extended TypeScript (eTS).
-
-
-
SDK Tool
-
-
Toolchains
-
-
Includes compiling, packaging, signing, database management, and other tools that are required to develop OpenHarmony apps.
-
-
-
Previewer
-
-
OpenHarmony app previewer, which can be used to view the UI layout during app development.
-
-
-
-
-
-1. Open DevEco Studio. If this is the first time you are using it, select **Do not import settings** and click **OK**.
-2. Follow the wizard to set **npm registry**. DevEco Studio has been preconfigured with the corresponding registry. Click **Start using DevEco Studio** to go to the next step.
-
- >![](../public_sys-resources/icon-note.gif) **NOTE:**
- >If the **Set up HTTP Proxy** page is displayed, it indicates that your network requires a proxy. In this case, set up the DevEco Studio proxy, npm proxy, and Gradle proxy according to [References](#section0384143616409), and then download the OpenHarmony SDK.
-
- ![](figures/en-us_image_0000001163314102.png)
-
-3. Follow the wizard to download the SDK. By default, the OpenHarmony SDK will be downloaded. You can download the SDK to the default **user** directory or a local path that does not contain any Chinese characters. Then click **Next**.
-
- ![](figures/en-us_image_0000001208394019.png)
-
- >![](../public_sys-resources/icon-note.gif) **NOTE:**
- >If you are not using DevEco Studio for the first time, the SDK download page may not be displayed. In this case, go to **Configure** \(or ![](figures/en-us_image_0000001208274069.png)\) \> **Settings** \> **SDK Manager** \> **OpenHarmony SDK** and click **OpenHarmony SDK Location** to download the SDK.
-
-4. On the **Settings Confirmation** page, click **Next**. When the **License Agreement** dialog box appears, click **Accept**.
-
- ![](figures/en-us_image_0000001163472654.png)
-
-5. After the OpenHarmony SDK and tools are downloaded, click **Finish** to access the DevEco Studio welcome page.
-
- ![](figures/en-us_image_0000001163632602.png)
-
-
-## References
-
-Setting up the development environment requires that your network can directly access the Internet.
-
-Generally, only some enterprise networks rather than personal area networks or home networks require a proxy to access the Internet.
-
-If you are using DevEco Studio for the first time and the **Set up HTTP Proxy** page is displayed, it indicates that your network requires a proxy. In this case, set up the DevEco Studio proxy, npm proxy, and Gradle proxy.
-
-![](figures/en-us_image_0000001166582138.png)
-
-### Setting Up the DevEco Studio Proxy
-
-1. Start DevEco Studio. On the **Set up HTTP Proxy** page that is displayed, select **Manual proxy configuration** and set the HTTP proxy.
-
- >![](../public_sys-resources/icon-note.gif) **NOTE:**
- >If this is not the first time you are using DevEco Studio:
- >- On the welcome page, choose **Configure** \(or ![](figures/en-us_image_0000001212142015.png)\)** \> Settings \> Appearance & Behavior \> System Settings \> HTTP Proxy** to access the HTTP Proxy settings. \(For macOS, choose **Configure \> Preferences \> Appearance & Behavior \> System Settings \> HTTP Proxy**.\)
- >- When on a project page, choose **File \> Settings \> Appearance & Behavior \> System Settings \> HTTP Proxy** to access the HTTP Proxy settings. \(For macOS, choose **DevEco Studio \> Preferences \> Appearance & Behavior \> System Settings \> HTTP Proxy**.\)
-
- - **HTTP** parameters: **If you are not sure about the information, contact your network administrator.**
- - **Host name**: Enter the host name or IP address of the proxy server.
- - **Port number**: Enter the port number of the proxy server.
- - **No proxy for**: Enter the URLs or IP addresses which the PC can directly connect to without a proxy server. Use commas \(,\) to separate URLs and IP addresses.
-
- - **Proxy authentication** parameters: Set the parameters only when the proxy server requires authentication.
- - **Login**: Enter the user name used to access the proxy server.
- - **Password**: Enter the password used to access the proxy server.
- - **Remember**: Select this option to remember the password.
-
- ![](figures/en-us_image_0000001212062065.png)
-
-2. When you have finished, click **Check connection** and enter a URL to check the network connectivity. If the message "Connection successful" is displayed, it indicates that the proxy was set up successfully.
-3. Click **Next: Configure npm** to set up the npm proxy. For details, see [Setting Up the npm Proxy](#section19984059114316).
-
-### Setting Up the npm Proxy
-
-Follow the configuration wizard of DevEco Studio to configure the npm proxy information, which will be written into the **.npmrc** file in the **users/**_user name_ directory.
-
->![](../public_sys-resources/icon-note.gif) **NOTE:**
->The configuration wizard is displayed only the first time you install DevEco Studio. If the wizard is not displayed, manually add the proxy information to the **.npmrc** file in the **users/**_user name_ directory.
-
-- **npm registry**: Set the address of the npm registry. You are advised to select this option.
-- **HTTP proxy**: Proxy server information. By default, the value is the same as that of **HTTP proxy** of DevEco Studio.
-- **Enable Https Proxy**: Indicates whether to configure HTTPS proxy. You are advised to select this option.
-
-![](figures/en-us_image_0000001164577336.png)
-
-Click **Start using DevEco Studio**.
-
-If your proxy server requires the user name and password for authentication, set the user name and password as follows. If your proxy server does not require authentication, skip this step and follow the instructions in [Configuring the SDK Information](#section1265592425017).
-
-![](figures/en-us_image_0000001209817299.png)
-
-1. Go to the **Users** directory and open the **.npmrc** file.
-2. Modify the npm proxy information. Add the **user** and **password** fields to **proxy** and **https-proxy**. Note that the values may vary depending on the proxy. The following is an example:
-
- ```
- proxy=http://user:password@proxy.server.com:80
- https-proxy=http://user:password@proxy.server.com:80
- ```
-
- >![](../public_sys-resources/icon-note.gif) **NOTE:**
- >If the password contains special characters, such as @, \#, and \*, the configuration may not take effect. You are advised to replace the special characters with ASCII codes and add "%" before the ASCII codes. Refer to the following for the mapping between common symbols and ASCII codes.
- >- !: %21
- >- @: %40
- >- \#: %23
- >- ¥: %24
- >- &: %26
- >- \*: %2A
-
-3. After the proxy is configured, open the CLI and run the following command to check whether the network is normal.
-
- ```
- npm info express
- ```
-
- If the following information is displayed after running the command, it indicates that the proxy has been set up successfully.
-
- ![](figures/en-us_image_0000001164417356.png)
-
-4. When you are done, follow the instructions in [Configuring the SDK Information](#section1265592425017).
-
-### Setting Up the Gradle Proxy
-
-1. Open **This PC**, and enter **%userprofile%** in the address box to access the user profile. \(For macOS, choose **Go** \> **Home**.\)
-
- ![](figures/en-us_image_0000001166740700.png)
-
-2. Create a **.gradle** folder if there is none.
-
- >![](../public_sys-resources/icon-note.gif) **NOTE:**
- >Before creating a **.gradle** folder in macOS, set the system to show hidden files.
-
-3. Open the **.gradle** folder, create a **gradle** file, and change the file name extension to .properties.
-4. Add the following script to the **gradle.properties** file and save the file:
-
- Modify the host name, port number, user name, password, and proxy exceptions \(**nonProxyHosts**\) based on the actual condition. Separate values for **nonProxyHosts** with a vertical bar \(|\).
-
- ```
- systemProp.http.proxyHost=proxy.server.com
- systemProp.http.proxyPort=8080
- systemProp.http.nonProxyHosts=*.company.com|10.*|100.*
- systemProp.http.proxyUser=userId
- systemProp.http.proxyPassword=password
- systemProp.https.proxyHost=proxy.server.com
- systemProp.https.proxyPort=8080
- systemProp.https.nonProxyHosts=*.company.com|10.*|100.*
- systemProp.https.proxyUser=userId
- systemProp.https.proxyPassword=password
- ```
-
-
diff --git a/en/application-dev/quick-start/create-openharmony-project.md b/en/application-dev/quick-start/create-openharmony-project.md
deleted file mode 100644
index dcc274abe55e41f628a507fd3c57bbb02612e845..0000000000000000000000000000000000000000
--- a/en/application-dev/quick-start/create-openharmony-project.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Creating an OpenHarmony Project
-
-- **[Using the Project Wizard to Create a Project](use-wizard-to-create-project.md)**
-
-- **[Importing a Sample to Create a Project](import-sample-to-create-project.md)**
-
-
diff --git a/en/application-dev/quick-start/deveco-studio-overview.md b/en/application-dev/quick-start/deveco-studio-overview.md
deleted file mode 100644
index b3b27928b539baebc573322dab9c3d20a26442d4..0000000000000000000000000000000000000000
--- a/en/application-dev/quick-start/deveco-studio-overview.md
+++ /dev/null
@@ -1,93 +0,0 @@
-# Overview
-
-- [About the Document](#section189422248491)
-- [Restrictions](#section65191625782)
-- [DevEco Studio Evolution Roadmap](#section187875207166)
-
-## About the Document
-
-DevEco Studio is an integrated development environment \(IDE\) of HarmonyOS apps. As HarmonyOS is developed based on OpenHarmony, DevEco Studio can also be used to develop OpenHarmony apps.
-
-The process of developing an OpenHarmony app using DevEco Studio is the same as that of developing a HarmonyOS app. This document describes the differences between OpenHarmony and HarmonyOS app development.
-
-- **Environment setup**: You need to manually install the OpenHarmony SDK for the OpenHarmony app development. For details, see [Configuring the OpenHarmony SDK](configuring-openharmony-sdk.md).
-- **Creating an OpenHarmony project**: Create a project by using the project wizard or by importing a sample project. For details, see [Using the Project Wizard to Create a Project](use-wizard-to-create-project.md).
-- **Signature configuration for debugging**: To run an OpenHarmony app on a real device, you need to sign the app first. For instructions, see [Configuring the OpenHarmony App Signature](configuring-openharmony-app-signature.md).
-- **App running on a real device**: Push the OpenHarmony HAP package to the real device for installation. For details, see [Installing and Running Your OpenHarmony App](installing-openharmony-app.md).
-
-For details about how to use DevEco Studio, see [HUAWEI DevEco Studio User Guide](https://developer.harmonyos.com/en/docs/documentation/doc-guides/tools_overview-0000001053582387).
-
-## Restrictions
-
-- OpenHarmony supports only app development in eTS and JS.
-- Developing OpenHarmony apps in DevEco Studio is supported on Windows.
-
-DevEco Studio serves as a development tool for both OpenHarmony and HarmonyOS apps. Refer to the following table for descriptions about the functions not supported for OpenHarmony.
-
-
-
Feature
-
-
HarmonyOS
-
-
OpenHarmony
-
-
-
-
Service widgets
-
-
√
-
-
X
-
-
-
Automatic signing
-
-
√
-
-
X
-
-
-
Remote emulator
-
-
√
-
-
X
-
-
-
Local emulator
-
-
√
-
-
X
-
-
-
Using DevEco Studio for log viewing and optimization
-
-
√
-
-
X
-
-
-
Cloud testing
-
-
√
-
-
X
-
-
-
Security testing
-
-
√
-
-
X
-
-
-
-
-
-## DevEco Studio Evolution Roadmap
-
-Refer to the following figure for when the HUAWEI DevEco Studio support for OpenHarmony app development is available in different phases.
-
-![](figures/en-us_image_0000001210018359.png)
-
diff --git a/en/application-dev/quick-start/deveco-studio-release-notes.md b/en/application-dev/quick-start/deveco-studio-release-notes.md
deleted file mode 100644
index 267eadfc90914db13d9edd4dc2391f0ba0dea243..0000000000000000000000000000000000000000
--- a/en/application-dev/quick-start/deveco-studio-release-notes.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# Version Change History
-
-- [V3.0 Beta2 \(2021-12-31\)](#section18825185716537)
- - [Version Compatibility](#section8155205312218)
- - [Version Change History](#section1655415918226)
-
-- [V3.0 Beta1 \(2021-09-29\)](#section21092033115018)
-
-## V3.0 Beta2 \(2021-12-31\)
-
-### Version Compatibility
-
-DevEco Studio 3.0 Beta2 is compatible with the module versions listed below.
-
-
-
Module
-
-
Version
-
-
Description
-
-
-
-
Gradle
-
-
7.3 (7.2 at minimum)
-
-
DevEco Studio has Gradle 7.3 preinstalled. No separate installation is required.
-
-
-
JDK
-
-
11.0.x
-
-
DevEco Studio has JDK 11 preinstalled. No separate installation is required.
-
-
-
OpenHarmony SDK
-
-
3.1.0.0 (API Version 8 Beta)
-
-
This version is compatible with SDKs of earlier versions.
-
-
-
Toolchinas
-
-
3.1.0.0
-
-
Update them to the latest version.
-
-
-
hap plug-in
-
-
3.0.5.2
-
-
-
decctest plug-in
-
-
1.2.7.2
-
-
-
-
-
-### Version Change History
-
-
-
New Features
-
Introduced the Chinese UI. By default, the UI is displayed in English. To enable the Chinese UI, go to Settings, choose Plugins > installed, and select Chinese (Simplified). Then, restart DevEco Studio for the settings to take effect.
Introduced support for OpenHarmony apps and services, with various debugging features, from breakpoint management and variable observation to stepping.
-
-
Enhanced Features
-
Updated the OpenHarmony SDK to 3.1.0.0, whose API version is API 8 Beta and corresponding compilation and building plugin is 3.0.5.2.
Added an ability template that supports low-code development: [Standard]Empty Ability.
Added eTS component preview: allows previewing of eTS components; requires compileSdkVersion 8 or later.
Added eTS livee preview: allows viewing of the attribute changes in real time as you make them; requires compileSdkVersion 8 or later.
-
-
-
-
-## V3.0 Beta1 \(2021-09-29\)
-
-
-
New Features
Added support for OpenHarmony SDK management. You can use SDK Manager to download and manage OpenHarmony SDKs.
Allowed for building of a single module during HAP compilation and building to accelerate building for multi-module projects; allowed for one-click re-building of HAPs, by automatically conducting the Clean Project operation before a HAP build.
-
-
Enhanced Features
Updated the compilation and building plugin to version 3.0.3.2.
Improved the JSON editor, which now enables quick rectification of resource index errors and instant access to resource values.
Provided Ohos and Project (default) views for projects, which you can switch between easily.
Enabled OpenHarmony projects to support Ark build.
Moved the supportSystem "standard" field, which is exclusive to OpenHarmony projects, from the module-level build.gradle file to the project-level build.gradle file.
-
-
-
-
-
diff --git a/en/application-dev/quick-start/deveco-studio-user-guide-for-openharmony.md b/en/application-dev/quick-start/deveco-studio-user-guide-for-openharmony.md
index 0ea1419dd6fd0c0f323e0b8264802d28149c91b7..3051831470bdb57400a00583c97913cbfda2523f 100644
--- a/en/application-dev/quick-start/deveco-studio-user-guide-for-openharmony.md
+++ b/en/application-dev/quick-start/deveco-studio-user-guide-for-openharmony.md
@@ -1,15 +1,2 @@
-# DevEco Studio \(OpenHarmony\) User Guide
-
-- **[Overview](deveco-studio-overview.md)**
-
-- **[Version Change History](deveco-studio-release-notes.md)**
-
-- **[Configuring the OpenHarmony SDK](configuring-openharmony-sdk.md)**
-
-- **[Creating an OpenHarmony Project](create-openharmony-project.md)**
-
-- **[Configuring the OpenHarmony App Signature](configuring-openharmony-app-signature.md)**
-
-- **[Installing and Running Your OpenHarmony App](installing-openharmony-app.md)**
-
+# DevEco Studio \(OpenHarmony\) User Guide
diff --git a/en/application-dev/quick-start/import-sample-to-create-project.md b/en/application-dev/quick-start/import-sample-to-create-project.md
deleted file mode 100644
index b05970a735b5a22a45f5717436f9261e721e91dc..0000000000000000000000000000000000000000
--- a/en/application-dev/quick-start/import-sample-to-create-project.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# Importing a Sample to Create a Project
-
->![](../public_sys-resources/icon-note.gif) **NOTE:**
->This feature applies to OpenHarmony projects created using DevEco Studio 2.1 Release or later.
-
-After the OpenHarmony SDK is configured, you can get started to develop your app by **importing a sample project**.
-
-1. On the DevEco Studio welcome page, select **Configure** or click the ![](figures/en-us_image_0000001118018452.png) icon, and choose **Settings** \> **Version Control** \> **Git**. Then click **Test** to check whether the Git tool has been installed.
- - If the tool has been installed, import a sample by following the instructions in Step 2.
-
- ![](figures/en-us_image_0000001118018088.png)
-
- - If the tool hasn't been installed, click **Download and Install**. DevEco Studio will automatically download and install it. Then import a sample by following the instructions in Step 2.
-
- ![](figures/en-us_image_0000001164498191.png)
-
-2. On the DevEco Studio welcome page, click **Import Sample** to import a sample project.
-
- ![](figures/en-us_image_0000001208006117.png)
-
-3. Choose **OpenHarmony Samples** \> **common** \> **JsHelloWorld** \> **Next**.
-
- ![](figures/en-us_image_0000001152459178.png)
-
-4. Configure **App Name** and **Project Location** and click **Finish**. Wait until the sample project is imported.
-
- ![](figures/en-us_image_0000001207744539.png)
-
-5. When the project is successfully synced, start developing your OpenHarmony app.
-
- ![](figures/en-us_image_0000001163915523.png)
-
-
diff --git a/en/application-dev/quick-start/installing-openharmony-app.md b/en/application-dev/quick-start/installing-openharmony-app.md
deleted file mode 100644
index 79277bcccc4d9c24b3786b7d71b78c8e01dade63..0000000000000000000000000000000000000000
--- a/en/application-dev/quick-start/installing-openharmony-app.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# Installing and Running Your OpenHarmony App
-
-You can install your OpenHarmony app in either of the following methods:
-
-- DevEco Studio: Connect your device where the app is stored to DevEco Studio, and then click ![](figures/en-us_image_0000001239855207.png) to install the app.
-- hdc: Run commands to install the app.
-
- You can manually obtain the hdc tool from the open-source repository. Then, run the tool commands to install an HAP file on the device.
-
- The tool commands are as follows:
-
- - App installation
-
- **install \[-r/-d/-g\] _package_**
-
- Example:
-
- ```
- hdc_std install E:\hwadmin.hap
- ```
-
- - Log capturing
-
- **hilog**
-
- Example:
-
- ```
- hdc_std hilog
- ```
-
- For details about how to use hdc and the command format, see [hdc\_std Usage Guidelines](https://gitee.com/openharmony/docs/blob/master/en/device-dev/subsystems/subsys-toolchain-hdc-guide.md).
-
diff --git a/en/application-dev/quick-start/use-wizard-to-create-project.md b/en/application-dev/quick-start/use-wizard-to-create-project.md
deleted file mode 100644
index ad79e3e8cb207af84457352188a15ce4c4ea898b..0000000000000000000000000000000000000000
--- a/en/application-dev/quick-start/use-wizard-to-create-project.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Using the Project Wizard to Create a Project
-
-- [Prerequisites](#section13642104391619)
-- [Procedure](#section132671712101714)
-
-If you are using DevEco Studio 2.2 Beta1 or later, you can use the project wizard to create a project. If you are using DevEco Studio 2.1 Release, create a project by following instructions in [Importing a Sample to Create a Project](import-sample-to-create-project.md).
-
-## Prerequisites
-
-The OpenHarmony SDK has been installed. For details, see [Configuring the OpenHarmony SDK](configuring-openharmony-sdk.md).
-
-## Procedure
-
-1. Open the project wizard using either of the following methods:
- - If no project is open, select **Create Project** on the welcome page.
- - If a project is already open, choose **File** \> **New** \> **New Project** on the menu bar.
-
-2. Select the **\[Standard\]Empty Ability** template and click **Next**.
-
- ![](figures/en-us_image_0000001162463400.png)
-
-3. Click **Next** and configure the project.
- - **Project name**: customized project name.
- - **Project type**: project type, which can be an [atomic service](https://developer.harmonyos.com/en/docs/documentation/doc-guides/atomic-service-definition-0000001090840664) or an ordinary app that requires download before use.
-
- >![](../public_sys-resources/icon-note.gif) **NOTE:**
- >If you're creating an atomic service:
- >- There is no app icon on the home screen while running or debugging an atomic service. Use the debugging and running functions of DevEco Studio as an alternative.
- >- Atomic services are installation free. This is done by automatically adding the **installationFree** field to the **config.json** file, with its value set to **true**.
- >- If the value of the **installationFree** field of the entry module is set to **true**, the value of the **installationFree** field of all the related HAP modules is **true** by default. If the** installationFree field** of the entry module is set to **false**, the **installationFree** field of all the related HAP modules can be set to **true** or **false**.
- >- When compiling and building an app, make sure that the size of each HAP package does not exceed 10 MB.
-
- - **Bundle name**: bundle name. By default, this name will also be used as your app ID. Your app must have a unique ID to be released. If **Project type** is set to **Atomic service**, the **Bundle name** must end with **.hmservice**.
- - **Save location**: local path for storing the project file.
- - **Development mode**: development mode. The **Super Visual** option is available if the project template supports low-code development.
- - **Language**: supported programming language.
- - **Compatible API version**: earliest SDK version compatible with your app.
-
- >![](../public_sys-resources/icon-note.gif) **NOTE:**
- >If **compileSdkVersion 7** or later is configured for the OpenHarmony project, the corresponding module will be compiled using ArkCompiler by default. To use a compiler other than ArkCompiler, add the **arkEnable false** field to the **ohos** closure in the module-level **build.gradle** file.
-
- - **Device Type**: device type supported by the project template.
-
- ![](figures/en-us_image_0000001196050928.png)
-
-4. Click **Finish**. DevEco Studio will automatically generate the sample code and resources that match your project type. Wait until the project is created.
-
diff --git a/en/application-dev/reference/apis/Readme-EN.md b/en/application-dev/reference/apis/Readme-EN.md
index 8deb55f2e962ec65a9fc44f4b260d71c1d34f158..b302ec9db1c0567260fad639920f668574ed373a 100644
--- a/en/application-dev/reference/apis/Readme-EN.md
+++ b/en/application-dev/reference/apis/Readme-EN.md
@@ -58,6 +58,7 @@
- [WLAN](js-apis-wifi.md)
- [Bluetooth](js-apis-bluetooth.md)
- [RPC](js-apis-rpc.md)
+ - [Upload and Download](js-apis-request.md)
- Device Management
- [Sensor](js-apis-sensor.md)
- [Vibrator](js-apis-vibrator.md)
@@ -80,6 +81,8 @@
- [Page Routing](js-apis-basic-features-routes.md)
- [Timer](js-apis-basic-features-timer.md)
- [Setting the System Time](js-apis-system-time.md)
+ - [Wallpaper](js-apis-wallpaper.md)
+ - [Pasteboard](js-apis-pasteboard.md)
- [Animation](js-apis-basic-features-animator.md)
- [WebGL](js-apis-webgl.md)
- [WebGL2](js-apis-webgl2.md)
diff --git a/en/application-dev/reference/apis/js-apis-pasteboard.md b/en/application-dev/reference/apis/js-apis-pasteboard.md
new file mode 100644
index 0000000000000000000000000000000000000000..f6bfa278469a5c930c2140078ceee5f0613ec56b
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-pasteboard.md
@@ -0,0 +1,1047 @@
+# Pasteboard
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **Note:**
+> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+
+## Modules to Import
+
+
+```
+import pasteboard from '@ohos.pasteboard';
+```
+
+
+## Attributes
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+| Name | Type | Readable | Writable | Description |
+| -------- | -------- | -------- | -------- | -------- |
+| MAX_RECORD_NUM7+ | number | Yes | No | Maximum number of records allowed in a **PasteData** object. |
+| MIMETYPE_TEXT_HTML7+ | string | Yes | No | MIME type of the HTML text. |
+| MIMETYPE_TEXT_WANT7+ | string | Yes | No | MIME type of the Want text. |
+| MIMETYPE_TEXT_PLAIN7+ | string | Yes | No | MIME type of the plain text. |
+| MIMETYPE_TEXT_URI7+ | string | Yes | No | MIME type of the URI text. |
+
+
+## pasteboard.createPlainTextData
+
+createPlainTextData(text:string): PasteData
+
+Creates a **PasteData** object for plain text.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | text | string | Yes | Plain text. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [PasteData](#pastedata) | **PasteData** object with the specified content. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("content");
+ ```
+
+
+## pasteboard.createHtmlData7+
+
+createHtmlData(htmlText:string): PasteData
+
+Creates a **PasteData** object for HTML text.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | htmlText | string | Yes | HTML text. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [PasteData](#pastedata) | **PasteData** object with the specified content. |
+
+- Example
+
+ ```
+ var html = "\n" + "\n" + "\n" + "\n" + "HTML-PASTEBOARD_HTML\n" + "\n" + "\n" + "
HEAD
\n" + " \n" + "\n" + "";
+ var pasteData = pasteboard.createHtmlData(html);
+ ```
+
+
+## pasteboard.createWantData7+
+
+createWantData(want:Want): PasteData
+
+Creates a **PasteData** object for Want text.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | want | [Want](js-apis-featureAbility.md#want) | Yes | Want text. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [PasteData](#pastedata) | **PasteData** object with the specified content. |
+
+- Example
+
+ ```
+ var object = {
+ bundleName: "com.example.aafwk.test",
+ abilityName: "com.example.aafwk.test.TwoAbility"
+ };
+ var pasteData = pasteboard.createWantData(object);
+ ```
+
+
+## pasteboard.createUriData7+
+
+createUriData(uri:string): PasteData
+
+Creates a **PasteData** object for URI text.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | uri | string | Yes | URI text. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [PasteData](#pastedata) | **PasteData** object with the specified content. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createUriData("dataability:///com.example.myapplication1?user.txt");
+ ```
+
+
+## pasteboard.createPlainTextRecord7+
+
+createPlainTextRecord(text:string): PasteDataRecord
+
+Creates a **PasteDataRecord** object of the plain text type.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | text | string | Yes | Plain text. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [PasteDataRecord](#pastedatarecord7) | New plain text record. |
+
+- Example
+
+ ```
+ var record = pasteboard.createPlainTextRecord("hello");
+ ```
+
+
+## pasteboard.createHtmlTextRecord7+
+
+createHtmlTextRecord(htmlText:string): PasteDataRecord
+
+Creates a **PasteDataRecord** object of the HTML text type.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | htmlText | string | Yes | HTML text. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [PasteDataRecord](#pastedatarecord7) | New HTML record. |
+
+- Example
+
+ ```
+ var html = "\n" + "\n" + "\n" + "\n" + "HTML-PASTEBOARD_HTML\n" + "\n" + "\n" + "
HEAD
\n" + " \n" + "\n" + "";
+ var record = pasteboard.createHtmlTextRecord(html);
+ ```
+
+
+## pasteboard.createWantRecord7+
+
+createWantRecord(want:Want): PasteDataRecord
+
+Creates a **PasteDataRecord** object of the Want text type.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | want | [Want](js-apis-featureAbility.md#want) | Yes | Want text. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [PasteDataRecord](#pastedatarecord7) | New Want record. |
+
+- Example
+
+ ```
+ var object = {
+ bundleName: "com.example.aafwk.test",
+ abilityName: "com.example.aafwk.test.TwoAbility"
+ };
+ var record = pasteboard.createWantRecord(object);
+ ```
+
+
+## pasteboard.createUriRecord7+
+
+createUriRecord(uri:string): PasteDataRecord
+
+Creates a **PasteDataRecord** object of the URI text type.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | uri | string | Yes | URI text. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [PasteDataRecord](#pastedatarecord7) | New URI record. |
+
+- Example
+
+ ```
+ var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1?user.txt");
+ ```
+
+
+## PasteDataProperty7+
+
+Defines the properties of all data records on the pasteboard, including the timestamp, data type, and additional data.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+| Name | Type | Readable | Writable | Description |
+| -------- | -------- | -------- | -------- | -------- |
+| additions | {[key: string]: object} | Yes | Yes | Additional property data. |
+| mimeTypes | Array<string> | Yes | No | Non-repeating data types of the data records on the pasteboard. |
+| tag | string | Yes | Yes | User-defined tag. |
+| timestamp | number | Yes | No | Timestamp at which the data is written to the pasteboard, in milliseconds. |
+| localOnly | boolean | Yes | Yes | Whether local access only is set for the pasteboard. - The default value is **true**. - **true**: The **PasteData** is set for local access only. - **false**: The **PasteData** can be shared between devices. |
+
+
+## PasteDataRecord7+
+
+A data record is an abstract definition of the content on the pasteboard. The pasteboard content consists of one or more plain text, HTML, URI, or Want records.
+
+
+### Attributes
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+| Name | Type | Readable | Writable | Description |
+| -------- | -------- | -------- | -------- | -------- |
+| htmlText7+ | string | Yes | No | HTML text. |
+| want7+ | [Want](js-apis-featureAbility.md#want) | Yes | No | Want text. |
+| mimeType7+ | string | Yes | No | Data type. |
+| plainText7+ | string | Yes | No | Plain text. |
+| uri7+ | string | Yes | No | URI text. |
+
+
+### convertToText7+
+
+convertToText(): Promise<string>
+
+Forcibly converts the content in this **PasteData** object to the plain text. This method uses a promise to return the result.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<void> | Promise used to return the result. If the operation is successful, the plain text content after conversion is returned. Otherwise, error information is returned. |
+
+- Example
+
+ ```
+ var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1?user.txt");
+ record.convertToText().then((data) => {
+ console.info('convertToText success data : ' + JSON.stringify(data));
+ }).catch((error) => {
+ console.error('convertToText failed because ' + JSON.stringify(error));
+ });
+ ```
+
+
+### convertToText7+
+
+convertToText(callback: AsyncCallback<string>): void
+
+Forcibly converts the content in this **PasteData** object to the plain text. This method uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<string> | Yes | Callback used to return the result. If this callback is successful, the plain text content after conversion is returned. Otherwise, error information is returned. |
+
+- Example
+
+ ```
+ var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1?user.txt");
+ record.convertToText((err, data) => {
+ if (err) {
+ console.error('convertToText failed because ' + JSON.stringify(err));
+ return;
+ }
+ console.info('convertToText success data : ' + JSON.stringify(data));
+ });
+ ```
+
+
+## PasteData
+
+Before calling any **PasteData** method, you must obtain a **PasteData** object.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+
+### getPrimaryText
+
+
+getPrimaryText(): string
+
+
+Obtains the plain text of the primary record.
+
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+
+- Parameters
+ None
+
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | string | Plain text. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var plainText = pasteData.getPrimaryText();
+ ```
+
+
+### getPrimaryHtml7+
+
+getPrimaryHtml(): string
+
+Obtains the HTML text of the primary record.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | string | HTML text. |
+
+- Example
+
+ ```
+ var html = "\n" + "\n" + "\n" + "\n" + "HTML-PASTEBOARD_HTML\n" + "\n" + "\n" + "
HEAD
\n" + " \n" + "\n" + "";
+ var pasteData = pasteboard.createHtmlData(html);
+ var htmlText = pasteData.getPrimaryHtml();
+ ```
+
+
+### getPrimaryWant7+
+
+getPrimaryWant(): Want
+
+Obtains the **Want** object of the primary record.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [Want](js-apis-featureAbility.md#want) | Want object. |
+
+- Example
+
+ ```
+ var object = {
+ bundleName: "com.example.aafwk.test",
+ abilityName: "com.example.aafwk.test.TwoAbility"
+ };
+ var pasteData = pasteboard.createWantData(object);
+ var want = pasteData.getPrimaryWant();
+ ```
+
+
+### getPrimaryUri7+
+
+getPrimaryUri(): string
+
+Obtains the URI text of the primary record.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | string | URI text. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createUriData("dataability:///com.example.myapplication1?user.txt");
+ var uri = pasteData.getPrimaryUri();
+ ```
+
+
+### addTextRecord7+
+
+addTextRecord(text: string): void
+
+Adds a plain text record to this pasteboard, and adds **MIME_TEXT_PLAIN** to **mimeTypes** in [PasteDataProperty](#pastedataproperty7). The parameters cannot be empty. Otherwise, the operation fails.
+
+The pasteboard supports a maximum number of 128 data records.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | text | string | Yes | Plain text. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ pasteData.addTextRecord("good");
+ ```
+
+
+### addHtmlRecord7+
+
+addHtmlRecord(htmlText: string): void
+
+Adds an HTML text record to this pasteboard, and adds **MIMETYPE_TEXT_HTML** to **mimeTypes** in [PasteDataProperty](#pastedataproperty7). The parameters cannot be empty. Otherwise, the operation fails.
+
+The pasteboard supports a maximum number of 128 data records.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | htmlText | string | Yes | HTML text. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var html = "\n" + "\n" + "\n" + "\n" + "HTML-PASTEBOARD_HTML\n" + "\n" + "\n" + "
HEAD
\n" + " \n" + "\n" + "";
+ pasteData.addHtmlRecord(html);
+ ```
+
+
+### addWantRecord7+
+
+addWantRecord(want: Want): void
+
+Adds a Want text record to this pasteboard, and adds **MIMETYPE_TEXT_WANT** to **mimeTypes** in [PasteDataProperty](#pastedataproperty7). The parameters cannot be empty. Otherwise, the operation fails.
+
+The pasteboard supports a maximum number of 128 data records.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | want | [Want](js-apis-featureAbility.md#want) | Yes | Want object. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var object = {
+ bundleName: "com.example.aafwk.test",
+ abilityName: "com.example.aafwk.test.TwoAbility"
+ };
+ pasteData.addWantRecord(object);
+ ```
+
+
+### addUriRecord7+
+
+addUriRecord(uri: string): void
+
+Adds a URI text record to this pasteboard, and adds **MIMETYPE_TEXT_URI** to **mimeTypes** in [PasteDataProperty](#pastedataproperty7). The parameters cannot be empty. Otherwise, the operation fails.
+
+The pasteboard supports a maximum number of 128 data records.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | uri | string | Yes | URI text. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ pasteData.addUriRecord("dataability:///com.example.myapplication1?user.txt");
+ ```
+
+
+### addRecord7+
+
+addRecord(record: PasteDataRecord): void
+
+Adds a data record to this pasteboard, and adds its type to **mimeTypes** in [PasteDataProperty](#pastedataproperty7). The parameters cannot be empty. Otherwise, the operation fails.
+
+The pasteboard supports a maximum number of 128 data records.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | record | [PasteDataRecord](#pastedatarecord7) | Yes | Record to add. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createUriData("dataability:///com.example.myapplication1?user.txt");
+ var textRecord = pasteboard.createPlainTextRecord("hello");
+ var html = "\n" + "\n" + "\n" + "\n" + "HTML-PASTEBOARD_HTML\n" + "\n" + "\n" + "
HEAD
\n" + " \n" + "\n" + "";
+ var htmlRecord = pasteboard.createHtmlTextRecord(html);
+ pasteData.addRecord(textRecord);
+ pasteData.addRecord(htmlRecord);
+ ```
+
+
+### getMimeTypes7+
+
+getMimeTypes(): Array<string>
+
+Obtains **mimeTypes** in [PasteDataProperty](#pastedataproperty7) from this pasteboard. If the pasteboard is empty, the returned list is also empty.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Array<string> | List of non-duplicate MIME types. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var types = pasteData.getMimeTypes();
+ ```
+
+
+### getPrimaryMimeType7+
+
+getPrimaryMimeType(): string
+
+Obtains the data type of the primary record.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | string | Data type of the primary record. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var type = pasteData.getPrimaryMimeType();
+ ```
+
+
+### getProperty7+
+
+getProperty(): PasteDataProperty
+
+Obtains the property description object.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [PasteDataProperty](#pastedataproperty7) | Property description object. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var property = pasteData.getProperty();
+ ```
+
+
+### getRecordAt7+
+
+getRecordAt(index: number): PasteDataRecord
+
+Obtains the record with the specified index.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | index | number | Yes | Index of the specified record. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [PasteDataRecord](#pastedatarecord7) | Record with the specified index. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var record = pasteData.getRecordAt(0);
+ ```
+
+
+### getRecordCount7+
+
+getRecordCount(): number
+
+Obtains the number of data records in this pasteboard.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | number | Number of records. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var count = pasteData.getRecordCount();
+ ```
+
+
+### getTag7+
+
+getTag(): string
+
+Obtains the user-defined tag content. If the tag content is not set, null is returned.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | string | User-defined tag content if obtained and null if no tag is set. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var tag = pasteData.getTag();
+ ```
+
+
+### hasMimeType7+
+
+hasMimeType(mimeType: string): boolean
+
+Checks whether the content of this pasteboard contains the specified data type.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | mimeType | string | Yes | Type of the data to query. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | boolean | Returns **true** if the specified data type exists; returns **false** otherwise. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var hasType = pasteData.hasMimeType(pasteboard.MIMETYPE_TEXT_PLAIN);
+ ```
+
+
+### removeRecordAt7+
+
+removeRecordAt(index: number): boolean
+
+Removes the data record with a specified index from this pasteboard.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | index | number | Yes | Specified index. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | boolean | Returns **true** if the operation is successful; returns **false** otherwise. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var isRemove = pasteData.removeRecordAt(0);
+ ```
+
+
+### replaceRecordAt7+
+
+replaceRecordAt(index: number, record: PasteDataRecord): boolean
+
+Replaces the data record with a specified index in this pasteboard.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | index | number | Yes | Specified index. |
+ | record | [PasteDataRecord](#pastedatarecord7) | Yes | New record. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | boolean | Returns **true** if the operation is successful; returns **false** otherwise. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("hello");
+ var record = pasteboard.createUriRecord("dataability:///com.example.myapplication1?user.txt");
+ var isReplace = pasteData.replaceRecordAt(0, record);
+ ```
+
+
+## pasteboard.getSystemPasteboard
+
+getSystemPasteboard(): SystemPasteboard
+
+Obtains the system pasteboard.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | [SystemPasteboard](#systempasteboard) | System pasteboard. |
+
+- Example
+
+ ```
+ var systemPasteboard = pasteboard.getSystemPasteboard();
+ ```
+
+
+## SystemPasteboard
+
+ Before calling any **SystemPasteboard** method, you must obtain a **SystemPasteboard** object using [getSystemPasteboard](#pasteboardgetsystempasteboard).
+
+```
+var systemPasteboard = pasteboard.getSystemPasteboard();
+```
+
+
+### setPasteData
+
+setPasteData(data:PasteData, callback:AsyncCallback<void>): void
+
+Writes data to a pasteboard. This method uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | data | [PasteData](#pastedata) | Yes | **PasteData** object. |
+ | callback | AsyncCallback<void> | Yes | Callback used to return the data write result. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("content");
+ var systemPasteboard = pasteboard.getSystemPasteboard();
+ systemPasteboard.setPasteData(pasteData, (error, data) => {
+ if (error) {
+ console.error('Failed to setPasteData. Cause: ' + error.message);
+ return;
+ }
+ console.info('setPasteData successfully.');
+ });
+ ```
+
+
+### setPasteData
+
+setPasteData(data:PasteData): Promise<void>
+
+Writes data to a pasteboard. This method uses a promise to return the result.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Description |
+ | -------- | -------- | -------- |
+ | data | [PasteData](#pastedata) | **PasteData** object. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<void> | Promise used to return the data write result. |
+
+- Example
+
+ ```
+ var pasteData = pasteboard.createPlainTextData("content");
+ var systemPasteboard = pasteboard.getSystemPasteboard();
+ systemPasteboard.setPasteData(pasteData).then((data) => {
+ console.info('setPasteData success.');
+ }).catch((error) => {
+ console.error('Failed to setPasteData. Cause: ' + error.message);
+ });
+ ```
+
+
+### getPasteData
+
+getPasteData( callback:AsyncCallback<PasteData>): void
+
+Reads the system pasteboard content. This method uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<[PasteData](#pastedata)> | Yes | Callback used to return the system pasteboard data. |
+
+- Example
+
+ ```
+ var systemPasteboard = pasteboard.getSystemPasteboard();
+ systemPasteboard.getPasteData((error, pasteData) => {
+ if (error) {
+ console.error('Failed to getPasteData. Cause: ' + error.message);
+ return;
+ }
+ var text = pasteData.getPrimaryText();
+ });
+ ```
+
+
+### getPasteData
+
+getPasteData(): Promise<PasteData>
+
+Reads the system pasteboard content. This method uses a promise to return the result.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<[PasteData](#pastedata)> | Promise used to return the system pasteboard data. |
+
+- Example
+
+ ```
+ var systemPasteboard = pasteboard.getSystemPasteboard();
+ systemPasteboard.getPasteData().then((pasteData) => {
+ var text = pasteData.getPrimaryText();
+ }).catch((error) => {
+ console.error('Failed to getPasteData. Cause: ' + error.message);
+ })
+ ```
+
+
+### on('update')7+
+
+on(type: 'update', callback: () =>void ): void
+
+Subscribes to the content change event of the system pasteboard. If the pasteboard content changes, the callback is triggered.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Data type. The value **update** indicates the pasteboard content has changed. |
+ | callback | function | Yes | Callback invoked when the pasteboard content changes. |
+
+- Example
+
+ ```
+ var systemPasteboard = pasteboard.getSystemPasteboard();
+ var listener = ()=>{
+ console.info('The system pasteboard has changed');
+ };
+ systemPasteboard.on('update', listener);
+ ```
+
+
+### off('update')7+
+
+off(type: 'update', callback? : () =>void ): void
+
+Unsubscribes from the system pasteboard content change event.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Data type. The value **update** indicates the pasteboard content has changed. |
+ | callback | function | No | Callback invoked when the pasteboard content changes. |
+
+- Example
+
+ ```
+ systemPasteboard.off('update', listener);
+ ```
+
+
+### hasPasteData7+
+
+hasPasteData(callback: AsyncCallback<boolean>): void
+
+Checks whether the system pasteboard contains content. This method uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<boolean> | Yes | Returns **true** if the pasteboard contains content; returns **false** otherwise. |
+
+- Example
+
+ ```
+ systemPasteboard.hasPasteData((err, data) => {
+ if (err) {
+ console.error('failed to hasPasteData because ' + JSON.stringify(err));
+ return;
+ }
+ console.info('success hasPasteData : ' + JSON.stringify(data));
+ });
+ ```
+
+
+### hasPasteData7+
+
+hasPasteData(): Promise<boolean>
+
+Checks whether the system pasteboard contains content. This method uses a promise to return the result.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<boolean> | Returns **true** if the pasteboard contains content; returns **false** otherwise. |
+
+- Example
+
+ ```
+ systemPasteboard.hasPasteData().then((data) => {
+ console.info('Operation succeeded. ' + JSON.stringify(data));
+ }).catch((error) => {
+ console.error('failed to hasPasteData because ' + JSON.stringify(error));
+ });
+ ```
+
+
+### clear7+
+
+clear(callback: AsyncCallback<void>): void
+
+Clears the system pasteboard content. This method uses an asynchronous callback to return the result.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<void> | Yes | Callback used to return the result. |
+
+- Example
+
+ ```
+ systemPasteboard.clear((err, data) => {
+ if (err) {
+ console.error('failed to clear because ' + JSON.stringify(err));
+ return;
+ }
+ console.info('success clear');
+ });
+ ```
+
+
+### clear7+
+
+clear(): Promise<void>
+
+Clears the system pasteboard content. This method uses a promise to return the result.
+
+**System capability**: SystemCapability.MiscServices.Pasteboard
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<void> | Promise used to return the result. |
+
+- Example
+
+ ```
+ systemPasteboard.clear().then((data) => {
+ console.info('success clear');
+ }).catch((error) => {
+ console.error('failed to clear because ' + JSON.stringify(error));
+ });
+ ```
diff --git a/en/application-dev/reference/apis/js-apis-request.md b/en/application-dev/reference/apis/js-apis-request.md
new file mode 100644
index 0000000000000000000000000000000000000000..0a8f08d0210217fcf972ce30e1bdabdcc8e1ac10
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-request.md
@@ -0,0 +1,971 @@
+# Upload and Download
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **Note:**
+> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+
+## Modules to Import
+
+
+```
+import request from '@ohos.request';
+```
+
+
+## Constraints
+
+- HTTPS is supported by default. To support HTTP, you need to add **network** to the **config.json** file and set the **cleartextTraffic** attribute to **true**.
+
+ ```
+ "deviceConfig": {
+ "default": {
+ "network": {
+ "cleartextTraffic": true
+ }
+ ...
+ }
+ }
+ ```
+
+
+## Constants
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+| Name | Type | Readable | Writable | Description |
+| -------- | -------- | -------- | -------- | -------- |
+| NETWORK_MOBILE | number | Yes | No | Whether download is allowed when the cellular network is used. |
+| NETWORK_WIFI | number | Yes | No | Whether download is allowed when the WLAN is used. |
+| ERROR_CANNOT_RESUME7+ | number | Yes | No | Failure to resume the download due to an error. |
+| ERROR_DEVICE_NOT_FOUND7+ | number | Yes | No | Failure to find a storage device such as an SD card. |
+| ERROR_FILE_ALREADY_EXISTS7+ | number | Yes | No | Failure to download the file because it already exists. |
+| ERROR_FILE_ERROR7+ | number | Yes | No | File operation failure. |
+| ERROR_HTTP_DATA_ERROR7+ | number | Yes | No | HTTP transmission failure. |
+| ERROR_INSUFFICIENT_SPACE7+ | number | Yes | No | Insufficient storage space. |
+| ERROR_TOO_MANY_REDIRECTS7+ | number | Yes | No | Error caused by too many network redirections. |
+| ERROR_UNHANDLED_HTTP_CODE7+ | number | Yes | No | Unidentified HTTP code. |
+| ERROR_UNKNOWN7+ | number | Yes | No | Unknown error. |
+| PAUSED_QUEUED_FOR_WIFI7+ | number | Yes | No | Download paused and queuing for WLAN connection, because the file size exceeds the maximum value allowed by a cellular network session. |
+| PAUSED_UNKNOWN7+ | number | Yes | No | Download paused due to unknown reasons. |
+| PAUSED_WAITING_FOR_NETWORK7+ | number | Yes | No | Download paused due to a network connection problem, for example, network disconnection. |
+| PAUSED_WAITING_TO_RETRY7+ | number | Yes | No | Download paused and then retried. |
+| SESSION_FAILED7+ | number | Yes | No | Download failure without retry. |
+| SESSION_PAUSED7+ | number | Yes | No | Download paused. |
+| SESSION_PENDING7+ | number | Yes | No | Download pending. |
+| SESSION_RUNNING7+ | number | Yes | No | Download in progress. |
+| SESSION_SUCCESSFUL7+ | number | Yes | No | Successful download. |
+
+
+## request.upload
+
+upload(config: UploadConfig): Promise<UploadTask>
+
+Uploads files. This method uses a promise to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Upload
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | config | [UploadConfig](#uploadconfig) | Yes | Configurations of the upload. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<[UploadTask](#uploadtask)> | Promise used to return the **UploadTask** object. |
+
+- Example
+
+ ```
+ request.upload({ url: 'https://patch' }).then((data) => {
+ uploadTask = data;
+ }).catch((err) => {
+ console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
+ })
+ ```
+
+
+## request.upload
+
+upload(config: UploadConfig, callback: AsyncCallback<UploadTask>): void
+
+Uploads files. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Upload
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | config | [UploadConfig](#uploadconfig) | Yes | Configurations of the upload. |
+ | callback | AsyncCallback<[UploadTask](#uploadtask)> | No | Callback used to return the **UploadTask** object. |
+
+- Example
+
+ ```
+ request.upload({ url: 'https://patch' }, (err, data) => {
+ if (err) {
+ console.error('Failed to request the upload. Cause: ' + JSON.stringify(err));
+ return;
+ }
+ uploadTask = data;
+ });
+ ```
+
+
+## UploadTask
+
+Implements file uploads. Before using a method of this class, you must obtain an **UploadTask** object.
+
+
+### on('progress')
+
+on(type: 'progress', callback:(uploadedSize: number, totalSize: number) => void): void
+
+Subscribes to the upload progress event. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Upload
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Type of the event to subscribe to. The value is **progress** (upload progress). |
+ | callback | function | Yes | Callback for the upload progress event. |
+
+ Parameters of the callback function
+
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | uploadedSize | number | Yes | Size of the uploaded files, in KB. |
+ | totalSize | number | Yes | Total size of the files to upload, in KB. |
+
+- Example
+
+ ```
+ uploadTask.on('progress', function callback(uploadedSize, totalSize) {
+ console.info("upload totalSize:" + totalSize + " uploadedSize:" + uploadedSize);
+ }
+ );
+ ```
+
+
+### on('headerReceive')7+
+
+on(type: 'headerReceive', callback: (header: object) => void): void
+
+Subscribes to the **headerReceive** event, which is triggered when an HTTP response header is received. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Upload
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Type of the event to subscribe to. The value is **headerReceive** (response header). |
+ | callback | function | Yes | Callback for the HTTP Response Header event. |
+
+ Parameters of the callback function
+
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | header | object | Yes | HTTP Response Header. |
+
+- Example
+
+ ```
+ uploadTask.on('headerReceive', function callback(headers){
+ console.info("upOnHeader headers:" + JSON.stringify(headers));
+ }
+ );
+ ```
+
+
+### off('progress')
+
+off(type: 'progress', callback?: (uploadedSize: number, totalSize: number) => void): void
+
+Unsubscribes from the upload progress event. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Upload
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Type of the event to unsubscribe from. The value is **progress** (upload progress). |
+ | callback | function | No | Callback for the upload progress event. |
+
+ Parameters of the callback function
+
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | uploadedSize | number | Yes | Size of the uploaded files, in KB. |
+ | totalSize | number | Yes | Total size of the files to upload, in KB. |
+
+- Example
+
+ ```
+ uploadTask.off('progress', function callback(uploadedSize, totalSize) {
+ console.info('uploadedSize: ' + uploadedSize, 'totalSize: ' + totalSize);
+ }
+ );
+ ```
+
+
+### off('headerReceive')7+
+
+off(type: 'headerReceive', callback?: (header: object) => void): void
+
+Unsubscribes from the **headerReceive** event. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Upload
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Type of the event to unsubscribe from. The value is **headerReceive** (response header). |
+ | callback | function | No | Callback for the HTTP Response Header event. |
+
+ Parameters of the callback function
+
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | header | object | Yes | HTTP Response Header. |
+
+- Example
+
+ ```
+ uploadTask.off('headerReceive', function callback(headers) {
+ console.info("upOnHeader headers:" + JSON.stringify(headers));
+ }
+ );
+ ```
+
+
+### remove
+
+remove(): Promise<boolean>
+
+Removes this upload task. This method uses a promise to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Upload
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<boolean> | Promise used to return the task removal result. If **true** is returned, the task is removed. If **false** is returned, the task fails to be removed. |
+
+- Example
+
+ ```
+ uploadTask.remove().then((result) => {
+ if (result) {
+ console.info('Upload task removed successfully. ');
+ } else {
+ console.error('Failed to remove the upload task. ');
+ }
+ }).catch((err) => {
+ console.error('Failed to remove the upload task. Cause: ' + JSON.stringify(err));
+ });
+ ```
+
+
+### remove
+
+remove(callback: AsyncCallback<boolean>): void
+
+Removes this upload task. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Upload
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<boolean> | Yes | Callback used to return the result. |
+
+- Example
+
+ ```
+ uploadTask.remove((err, result) => {
+ if (err) {
+ console.error('Failed to remove the upload task. Cause: ' + JSON.stringify(err));
+ return;
+ }
+ if (result) {
+ console.info('Upload task removed successfully.');
+ } else {
+ console.error('Failed to remove the upload task.');
+ }
+ });
+ ```
+
+
+## UploadConfig
+
+**System capability**: SystemCapability.MiscServices.Upload
+
+| Name | Type | Mandatory | Description |
+| -------- | -------- | -------- | -------- |
+| url | string | Yes | Resource URL. |
+| header | object | No | HTTP or HTTPS header added to an upload request. |
+| method | string | No | Request methods available: **POST** and **PUT**. The default value is **POST**. |
+| files | Array<[File](#file)> | Yes | List of files to upload, which is submitted through **multipart/form-data**. |
+| data | Array<[RequestData](#requestdata)> | No | Form data in the request body. |
+
+
+## File
+
+**System capability**: SystemCapability.MiscServices.Upload
+
+| Name | Type | Mandatory | Description |
+| -------- | -------- | -------- | -------- |
+| filename | string | No | File name in the header when **multipart** is used. |
+| name | string | No | Name of a form item when **multipart** is used. The default value is **file**. |
+| uri | string | Yes | Local path for storing files. The **dataability** and **internal** protocol types are supported. However, the **internal** protocol type supports only temporary directories. The following is an example: dataability:///com.domainname.dataability.persondata/person/10/file.txt internal://cache/path/to/file.txt |
+| type | string | No | Type of the file content. By default, the type is obtained based on the extension of the file name or URI. |
+
+
+## RequestData
+
+**System capability**: SystemCapability.MiscServices.Upload
+
+| Name | Type | Mandatory | Description |
+| -------- | -------- | -------- | -------- |
+| name | string | Yes | Name of a form element. |
+| value | string | Yes | Value of a form element. |
+
+
+## request.download
+
+download(config: DownloadConfig): Promise<DownloadTask>
+
+Downloads files. This method uses a promise to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | config | [DownloadConfig](#downloadconfig) | Yes | Configurations of the download. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<[DownloadTask](#downloadtask)> | Promise used to return the result. |
+
+- Example
+
+ ```
+ request.download({ url: 'https://xxxx/xxxx.hap' }).then((data) => {
+ downloadTask = data;
+ }).catch((err) => {
+ console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
+ })
+ ```
+
+
+## request.download
+
+download(config: DownloadConfig, callback: AsyncCallback<DownloadTask>): void
+
+Downloads files. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | config | [DownloadConfig](#downloadconfig) | Yes | Configurations of the download. |
+ | callback | AsyncCallback<[DownloadTask](#downloadtask)> | No | Callback used to return the result. |
+
+- Example
+
+ ```
+ request.download({ url: 'https://xxxx/xxxxx.hap',
+ filePath: 'xxx/xxxxx.hap'}, (err, data) => {
+ if (err) {
+ console.error('Failed to request the download. Cause: ' + JSON.stringify(err));
+ return;
+ }
+ downloadTask = data;
+ });
+ ```
+
+
+## DownloadTask
+
+Implements file downloads.
+
+
+### on('progress')
+
+on(type: 'progress', callback:(receivedSize: number, totalSize: number) => void): void
+
+Subscribes to the download progress event. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Type of the event to subscribe to. The value is **progress** (download progress). |
+ | callback | function | Yes | Callback for the download progress event. |
+
+ Parameters of the callback function
+
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | receivedSize | number | Yes | Size of the downloaded files, in KB. |
+ | totalSize | number | Yes | Total size of the files to download, in KB. |
+
+- Example
+
+ ```
+ request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
+ if (err) {
+ console.error('Failed to request download. Cause:' + err);
+ return;
+ }
+ downloadTask = data;
+ downloadTask.on('progress', function download_callback(receivedSize, totalSize) {
+ console.info("download receivedSize:" + receivedSize + " totalSize:" + totalSize);
+ }
+ );
+ });
+ ```
+
+
+### off('progress')
+
+off(type: 'progress', callback?: (receivedSize: number, totalSize: number) => void): void
+
+Unsubscribes from the download progress event. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Type of the event to unsubscribe from. The value is **progress** (download progress). |
+ | callback | function | No | Callback for the download progress event. |
+
+ Parameters of the callback function
+
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | receivedSize | number | Yes | Size of the downloaded files, in KB. |
+ | totalSize | number | Yes | Total size of the files to download, in KB. |
+
+- Example
+
+ ```
+ request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
+ if (err) {
+ console.error('Failed to request download. Cause:' + err);
+ return;
+ }
+ downloadTask = data;
+ downloadTask .off('progress', function download_callback(receivedSize, totalSize) {
+ console.info("download receivedSize:" + receivedSize + " totalSize:" + totalSize);
+ }
+ );
+ });
+ ```
+
+
+### on('complete'|'pause'|'remove')7+
+
+on(type: 'complete'|'pause'|'remove', callback:() => void): void
+
+Subscribes to a download event. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Event type. - **complete**: download task completion event. - **pause**: download task pause event. - **remove**: download task removal event. |
+ | callback | function | Yes | Callback used to return the result. |
+
+- Example
+
+ ```
+ request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
+ if (err) {
+ console.error('Failed to request download. Cause:' + err);
+ return;
+ }
+ downloadTask= data;
+ downloadTask.on('complete', function callback() {
+ console.info('Download task completed.');
+ }
+ );
+ });
+ ```
+
+
+### off('complete'|'pause'|'remove')7+
+
+off(type: 'complete'|'pause'|'remove', callback?:() => void): void
+
+Unsubscribes from the download event. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Event type. - **complete**: download task completion event. - **pause**: download task pause event. - **remove**: download task removal event. |
+ | callback | function | No | Callback used to return the result. |
+
+- Example
+
+ ```
+ request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
+ if (err) {
+ console.error('Failed to request download. Cause:' + JSON.stringify(err));
+ return;
+ }
+ downloadTask = data;
+ downloadTask.off('complete', function callback() {
+ console.info('Download task completed.');
+ }
+ );
+ });
+ ```
+
+
+### on('fail')7+
+
+on(type: 'fail', callback: (err: number) => void): void
+
+Subscribes to the download task failure event. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Type of the subscribed event. The value is **fail** (download failure). |
+ | callback | function | Yes | Callback for the download task failure event. |
+
+ Parameters of the callback function
+
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | err | number | Yes | Error code of the download failure. For details about the error cause, see [ERROR_*](#constants). |
+
+- Example
+
+ ```
+ request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
+ if (err) {
+ console.error('Failed to request download. Cause:' + err);
+ return;
+ }
+ downloadTask = data;
+ downloadTask.on('fail', function callBack(err) {
+ console.info('Download task failed. Cause:' + err);
+ }
+ );
+ });
+ ```
+
+
+### off('fail')7+
+
+off(type: 'fail', callback?: (err: number) => void): void
+
+Unsubscribes from the download task failure event. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Type of the event to unsubscribe from. The value is **fail** (download failure). |
+ | callback | function | No | Callback for the download task failure event. |
+
+ Parameters of the callback function
+
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | err | number | Yes | Error code of the download failure. For details about the error cause, see [ERROR_*](#constants). |
+
+- Example
+
+ ```
+ request.download({ url: 'https://xxxx/xxxx.hap' }, (err, data)=> {
+ if (err) {
+ console.error('Failed to request download. Cause:' + err);
+ return;
+ }
+ downloadTask = data;
+ downloadTask.off('fail', function callBack(err) {
+ console.info('Download task failed. Cause:' + err);
+ }
+ );
+ });
+ ```
+
+
+### remove
+
+remove(): Promise<boolean>
+
+Removes this download task. This method uses a promise to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<boolean> | Promise used to return the task removal result. |
+
+- Example
+
+ ```
+ downloadTask.remove().then((result) => {
+ if (result) {
+ console.info('Download task removed.');
+ } else {
+ console.error('Failed to remove the download task.');
+ }
+ }).catch ((err) => {
+ console.error('Failed to remove the download task.');
+ });
+ ```
+
+
+### remove
+
+remove(callback: AsyncCallback<boolean>): void
+
+Removes this download task. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<boolean> | Yes | Callback used to return the task removal result. |
+
+- Example
+
+ ```
+ downloadTask.remove((err, result)=>{
+ if(err) {
+ console.error('Failed to remove the download task.');
+ return;
+ }
+ if (result) {
+ console.info('Download task removed.');
+ } else {
+ console.error('Failed to remove the download task.');
+ }
+ });
+ ```
+
+
+### query7+
+
+query(): Promise<DownloadInfo>
+
+Queries this download task. This method uses a promise to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<[DownloadInfo](#downloadinfo7)> | Promise used to return the download task information. |
+
+- Example
+
+ ```
+ downloadTask.query().then((downloadInfo) => {
+ console.info('Download task queried. Data:' + JSON.stringify(downloadInfo))
+ }) .catch((err) => {
+ console.error('Failed to query the download task. Cause:' + err)
+ });
+ ```
+
+
+### query7+
+
+query(callback: AsyncCallback<DownloadInfo>): void
+
+Queries this download task. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<[DownloadInfo](#downloadinfo7)> | Yes | Callback used to return the download task information. |
+
+- Example
+
+ ```
+ downloadTask.query((err, downloadInfo)=>{
+ if(err) {
+ console.error('Failed to query the download mimeType. Cause:' + JSON.stringify(err));
+ } else {
+ console.info('download query success. data:'+ JSON.stringify(downloadInfo));
+ }
+ });
+ ```
+
+
+### queryMimeType7+
+
+queryMimeType(): Promise<string>
+
+Queries **MimeType** of this download task. This method uses a promise to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<string> | Promise used to return **MimeType** of the download task. |
+
+- Example
+
+ ```
+ downloadTask.queryMimeType().then((data) => {
+ console.info('Download task queried. Data:' + JSON.stringify(data));
+ }).catch((err) => {
+ console.error('Failed to query the download MimeType. Cause:' + JSON.stringify(err))
+ });
+ ```
+
+
+### queryMimeType7+
+
+queryMimeType(callback: AsyncCallback<string>): void;
+
+Queries **MimeType** of this download task. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<string> | Yes | Callback used to return **MimeType** of the download task. |
+
+- Example
+
+ ```
+ downloadTask.queryMimeType((err, data)=>{
+ if(err) {
+ console.error('Failed to query the download mimeType. Cause:' + JSON.stringify(err));
+ } else {
+ console.info('Download task queried. data:' + JSON.stringify(data));
+ }
+ });
+ ```
+
+
+### pause7+
+
+pause(): Promise<void>
+
+Pauses this download task. This method uses a promise to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<void> | Promise used to return the download task pause result. |
+
+- Example
+
+ ```
+ downloadTask.pause().then((result) => {
+ if (result) {
+ console.info('Download task paused. ');
+ } else {
+ console.error('Failed to pause the download task. Cause:' + JSON.stringify(result));
+ }
+ }).catch((err) => {
+ console.error('Failed to pause the download task. Cause:' + JSON.stringify(err));
+ });
+ ```
+
+
+### pause7+
+
+pause(callback: AsyncCallback<void>): void
+
+Pauses this download task. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<void> | Yes | Callback used to return the result. |
+
+- Example
+
+ ```
+ downloadTask.pause((err, result)=>{
+ if(err) {
+ console.error('Failed to pause the download task. Cause:' + JSON.stringify(err));
+ return;
+ }
+ if (result) {
+ console.info('Download task paused. ');
+ } else {
+ console.error('Failed to pause the download task. Cause:' + JSON.stringify(result));
+ }
+ });
+ ```
+
+
+### resume7+
+
+resume(): Promise<void>
+
+Resumes this download task. This method uses a promise to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<void> | Promise used to return the result. |
+
+- Example
+
+ ```
+ downloadTask.resume().then((result) => {
+ if (result) {
+ console.info('Download task resumed.')
+ } else {
+ console.error('Failed to resume the download task. ');
+ }
+ console.info('Download task resumed.')
+ }).catch((err) => {
+ console.error('Failed to resume the download task. Cause:' + err);
+ });
+ ```
+
+
+### resume7+
+
+resume(callback: AsyncCallback<void>): void
+
+Resumes this download task. This method uses an asynchronous callback to return the result.
+
+**Required permission**: ohos.permission.INTERNET
+
+**System capability**: SystemCapability.MiscServices.Download
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<void> | Yes | Callback used to return the result. |
+
+- Example
+
+ ```
+ downloadTask.resume((err, result)=>{
+ if (err) {
+ console.error('Failed to resume the download task. Cause:' + err);
+ return;
+ }
+ if (result) {
+ console.info('Download task resumed.');
+ } else {
+ console.error('Failed to resume the download task.');
+ }
+ });
+ ```
+
+
+## DownloadConfig
+
+**System capability**: SystemCapability.MiscServices.Download
+
+| Name | Type | Mandatory | Description |
+| -------- | -------- | -------- | -------- |
+| url | string | Yes | Resource URL. |
+| header | object | No | HTTP or HTTPS header added to a download request. |
+| enableMetered | boolean | No | Download allowed in metered connections. |
+| enableRoaming | boolean | No | Download allowed on a roaming network. |
+| description | string | No | Description of the download session. |
+| filePath7+ | string | No | Download path. (The default path is [ERROR:Invalid link:en-us_topic_0000001135742582.xml#xref8132147102215,link:en-us_topic_0000001127125012.xml#section1856519365229](en-us_topic_0000001127125012.xml#section1856519365229)). - filePath:'workspace/test.txt': The **workspace** directory is created in the default path to store files. - filePath:'test.txt': Files are stored in the default path. - filePath:'workspace/': The **workspace** directory is created in the default path to store files. |
+| networkType | number | No | Network type allowed for download. |
+| title | string | No | Title of the download session. |
+
+
+## DownloadInfo7+
+
+**System capability**: SystemCapability.MiscServices.Download
+
+| Name | Type | Mandatory | Description |
+| -------- | -------- | -------- | -------- |
+| downloadId | number | Yes | ID of the downloaded file. |
+| failedReason | number | No | Download failure cause, which can be any constant of [ERROR_*](#constants). |
+| fileName | string | Yes | Name of the downloaded file. |
+| filePath | string | Yes | URI of the saved file. |
+| pausedReason | number | No | Reason for session pause, which can be any constant of [PAUSED_*](#constants). |
+| status | number | Yes | Download status code, which can be any constant of [SESSION_*](#constants). |
+| targetURI | string | Yes | URI of the downloaded file. |
+| downloadTitle | string | Yes | Title of the downloaded file. |
+| downloadTotalBytes | number | Yes | Total size of the downloaded file (int bytes). |
+| description | string | Yes | Description of the file to download. |
+| downloadedBytes | number | Yes | Size of the files downloaded (int bytes). |
diff --git a/en/application-dev/reference/apis/js-apis-wallpaper.md b/en/application-dev/reference/apis/js-apis-wallpaper.md
new file mode 100644
index 0000000000000000000000000000000000000000..8f0d4aaae67090bf9335b223e6882852397a4a23
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-wallpaper.md
@@ -0,0 +1,628 @@
+# Wallpaper
+
+
+> ![icon-note.gif](public_sys-resources/icon-note.gif) **Note:**
+> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+
+## Modules to Import
+
+
+```
+import wallpaper from '@ohos.wallpaper';
+```
+
+
+## WallpaperType
+
+Defines the wallpaper type.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+| Name | Description |
+| -------- | -------- |
+| WALLPAPER_LOCKSCREEN | Lock screen wallpaper. |
+| WALLPAPER_SYSTEM | Home screen wallpaper. |
+
+
+## wallpaper.getColors
+
+getColors(wallpaperType: WallpaperType, callback: AsyncCallback<Array<RgbaColor>>): void
+
+Obtains the main color information of the wallpaper of a specified type.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | wallpaperType | [WallpaperType](#wallpapertype) | Yes | Wallpaper type. |
+ | callback | AsyncCallback<Array<[RgbaColor](#rgbacolor)>> | Yes | Callback used to return the main color information of the wallpaper. |
+
+- Example
+
+ ```
+ wallpaper.getColors(wallpaper.WallpaperType.WALLPAPER_SYSTEM, (error, data) => {
+ if (error) {
+ console.error(`failed to getColors because: ` + JSON.stringify(error));
+ return;
+ }
+ console.log(`success to getColors.`);
+ });
+ ```
+
+
+## wallpaper.getColors
+
+getColors(wallpaperType: WallpaperType): Promise<Array<RgbaColor>>
+
+Obtains the main color information of the wallpaper of a specified type.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | wallpaperType | [WallpaperType](#wallpapertype) | Yes | Wallpaper type. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<Array<[RgbaColor](#rgbacolor)>> | Promise used to return the main color information of the wallpaper. |
+
+- Example
+
+ ```
+ wallpaper.getColors(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => {
+ console.log(`success to getColors.`);
+ }).catch((error) => {
+ console.error(`failed to getColors because: ` + JSON.stringify(error));
+ });
+ ```
+
+
+## wallpaper.getId
+
+getId(wallpaperType: WallpaperType, callback: AsyncCallback<number>): void
+
+Obtains the ID of the wallpaper of the specified type.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | wallpaperType | [WallpaperType](#wallpapertype) | Yes | Wallpaper type. |
+ | callback | AsyncCallback<number> | Yes | Callback used to return the wallpaper ID. If the wallpaper of the specified type is configured, a number greater than or equal to **0** is returned. Otherwise, **-1** is returned. The value ranges from -1 to 2^31-1. |
+
+- Example
+
+ ```
+ wallpaper.getId(wallpaper.WallpaperType.WALLPAPER_SYSTEM, (error, data) => {
+ if (error) {
+ console.error(`failed to getId because: ` + JSON.stringify(error));
+ return;
+ }
+ console.log(`success to getId: ` + JSON.stringify(data));
+ });
+ ```
+
+
+## wallpaper.getId
+
+getId(wallpaperType: WallpaperType): Promise<number>
+
+Obtains the ID of the wallpaper of the specified type.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | wallpaperType | [WallpaperType](#wallpapertype) | Yes | Wallpaper type. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<number> | Promise used to return the wallpaper ID. If this type of wallpaper is configured, a number greater than or equal to **0** is returned. Otherwise, **-1** is returned. The value ranges from -1 to 2^31-1. |
+
+- Example
+
+ ```
+ wallpaper.getId(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => {
+ console.log(`success to getId: ` + JSON.stringify(data));
+ }).catch((error) => {
+ console.error(`failed to getId because: ` + JSON.stringify(error));
+ });
+ ```
+
+
+## wallpaper.getMinHeight
+
+getMinHeight(callback: AsyncCallback<number>): void
+
+Obtains the minimum height of the wallpaper.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<number> | Yes | Callback used to return the minimum wallpaper height, in pixels. If the return value is **0**, no wallpaper is set. In this case, the default height should be used instead. |
+
+- Example
+
+ ```
+ wallpaper.getMinHeight((error, data) => {
+ if (error) {
+ console.error(`failed to getMinHeight because: ` + JSON.stringify(error));
+ return;
+ }
+ console.log(`success to getMinHeight: ` + JSON.stringify(data));
+ });
+ ```
+
+
+## wallpaper.getMinHeight
+
+getMinHeight(): Promise<number>
+
+Obtains the minimum height of the wallpaper.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<number> | Promise used to return the minimum wallpaper height, in pixels. If the return value is **0**, no wallpaper is set. In this case, the default height should be used instead. |
+
+- Example
+
+ ```
+ wallpaper.getMinHeight().then((data) => {
+ console.log(`success to getMinHeight: ` + JSON.stringify(data));
+ }).catch((error) => {
+ console.error(`failed to getMinHeight because: ` + JSON.stringify(error));
+ });
+ ```
+
+
+## wallpaper.getMinWidth
+
+getMinWidth(callback: AsyncCallback<number>): void
+
+Obtains the minimum width of the wallpaper.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<number> | Yes | Callback used to return the minimum wallpaper width, in pixels. If the return value is **0**, no wallpaper is set. In this case, the default width should be used instead. |
+
+- Example
+
+ ```
+ wallpaper.getMinWidth((error, data) => {
+ if (error) {
+ console.error(`failed to getMinWidth because: ` + JSON.stringify(error));
+ return;
+ }
+ console.log(`success to getMinWidth: ` + JSON.stringify(data));
+ });
+ ```
+
+
+## wallpaper.getMinWidth
+
+getMinWidth(): Promise<number>
+
+Obtains the minimum width of the wallpaper.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<number> | Promised used to return the minimum wallpaper width, in pixels. If the return value is **0**, no wallpaper is set. In this case, the default width should be used instead. |
+
+- Example
+
+ ```
+ wallpaper.getMinWidth().then((data) => {
+ console.log(`success to getMinWidth: ` + JSON.stringify(data));
+ }).catch((error) => {
+ console.error(`failed to getMinWidth because: ` + JSON.stringify(error));
+ });
+ ```
+
+
+## wallpaper.isChangePermitted
+
+isChangePermitted(callback: AsyncCallback<boolean>): void
+
+Checks whether to allow the application to change the wallpaper for the current user.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<boolean> | Yes | Callback used to return the queried result. Returns **true** if it is allowed; returns **false** otherwise. |
+
+- Example
+
+ ```
+ wallpaper.isChangePermitted((error, data) => {
+ if (error) {
+ console.error(`failed to isChangePermitted because: ` + JSON.stringify(error));
+ return;
+ }
+ console.log(`success to isChangePermitted: ` + JSON.stringify(data));
+ });
+ ```
+
+
+## wallpaper.isChangePermitted
+
+isChangePermitted(): Promise<boolean>
+
+Checks whether to allow the application to change the wallpaper for the current user.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<boolean> | Promise used to return whether to allow the application to change the wallpaper for the current user. Returns **true** if it is allowed; returns **false** otherwise. |
+
+- Example
+
+ ```
+ wallpaper.isChangePermitted().then((data) => {
+ console.log(`success to isChangePermitted: ` + JSON.stringify(data));
+ }).catch((error) => {
+ console.error(`failed to isChangePermitted because: ` + JSON.stringify(error));
+ });
+ ```
+
+
+## wallpaper.isOperationAllowed
+
+isOperationAllowed(callback: AsyncCallback<boolean>): void
+
+Checks whether the user is allowed to set wallpapers.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | callback | AsyncCallback<boolean> | Yes | Callback used to return whether the user is allowed to set wallpapers. Returns **true** if it is allowed; returns **false** otherwise. |
+
+- Example
+
+ ```
+ wallpaper.isOperationAllowed((error, data) => {
+ if (error) {
+ console.error(`failed to isOperationAllowed because: ` + JSON.stringify(error));
+ return;
+ }
+ console.log(`success to isOperationAllowed: ` + JSON.stringify(data));
+ });
+ ```
+
+
+## wallpaper.isOperationAllowed
+
+isOperationAllowed(): Promise<boolean>
+
+Checks whether the user is allowed to set wallpapers.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<boolean> | Promise used to return whether the user is allowed to set wallpapers. Returns **true** if it is allowed; returns **false** otherwise. |
+
+- Example
+
+ ```
+ wallpaper.isOperationAllowed().then((data) => {
+ console.log(`success to isOperationAllowed: ` + JSON.stringify(data));
+ }).catch((error) => {
+ console.error(`failed to isOperationAllowed because: ` + JSON.stringify(error));
+ });
+ ```
+
+
+## wallpaper.reset
+
+reset(wallpaperType: WallpaperType, callback: AsyncCallback<void>): void
+
+Removes a wallpaper of the specified type and restores the default one.
+
+**Required permission**: ohos.permission.SET_WALLPAPER
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | wallpaperType | [WallpaperType](#wallpapertype) | Yes | Wallpaper type. |
+ | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, the result of removal is returned. Otherwise, error information is returned. |
+
+- Example
+
+ ```
+ wallpaper.reset(wallpaper.WallpaperType.WALLPAPER_SYSTEM, (error, data) => {
+ if (error) {
+ console.error(`failed to reset because: ` + JSON.stringify(error));
+ return;
+ }
+ console.log(`success to reset.`);
+ });
+ ```
+
+
+## wallpaper.reset
+
+reset(wallpaperType: WallpaperType): Promise<void>
+
+Removes a wallpaper of the specified type and restores the default one.
+
+**Required permission**: ohos.permission.SET_WALLPAPER
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | wallpaperType | [WallpaperType](#wallpapertype) | Yes | Wallpaper type. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<void> | Promise used to return the result. If the operation is successful, the result of removal is returned. Otherwise, error information is returned. |
+
+- Example
+
+ ```
+ wallpaper.reset(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => {
+ console.log(`success to reset.`);
+ }).catch((error) => {
+ console.error(`failed to reset because: ` + JSON.stringify(error));
+ });
+ ```
+
+
+## wallpaper.setWallpaper
+
+setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback<void>): void
+
+Sets a specified source as the wallpaper of a specified type.
+
+**Required permission**: ohos.permission.SET_WALLPAPER
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | source | string \| [PixelMap](js-apis-image.md#pixelmap7) | Yes | Uri path of the JPEG or PNG file, or bitmap of the PNG file. |
+ | wallpaperType | [WallpaperType](#wallpapertype) | Yes | Wallpaper type. |
+ | callback | AsyncCallback<void> | Yes | Callback used to return the result. If the operation is successful, the setting result is returned. Otherwise, error information is returned. |
+
+- Example
+
+ ```
+ //The source type is string.
+ let wallpaperPath = "/data/data/ohos.acts.aafwk.plrdtest.form/files/Cup_ic.jpg";
+ wallpaper.setWallpaper(wallpaperPath, wallpaper.WallpaperType.WALLPAPER_SYSTEM, (error, data) => {
+ if (error) {
+ console.error(`failed to setWallpaper because: ` + JSON.stringify(error));
+ return;
+ }
+ console.log(`success to setWallpaper.`);
+ });
+
+ //The source type is image.PixelMap.
+ import image from '@ohos.multimedia.image';
+ let imageSource = image.createImageSource("file://" + wallpaperPath);
+ let opts = {
+ "desiredSize": {
+ "height": 3648,
+ "width": 2736
+ }
+ };
+ imageSource.createPixelMap(opts).then((pixelMap) => {
+ wallpaper.setWallpaper(pixelMap, wallpaper.WallpaperType.WALLPAPER_SYSTEM, (error, data) => {
+ if (error) {
+ console.error(`failed to setWallpaper because: ` + JSON.stringify(error));
+ return;
+ }
+ console.log(`success to setWallpaper.`);
+ });
+ }).catch((error) => {
+ console.error(`failed to createPixelMap because: ` + JSON.stringify(error));
+ });
+ ```
+
+
+## wallpaper.setWallpaper
+
+setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise<void>
+
+Sets a specified source as the wallpaper of a specified type.
+
+**Required permission**: ohos.permission.SET_WALLPAPER
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | source | string \| [PixelMap](js-apis-image.md#pixelmap7) | Yes | Uri path of the JPEG or PNG file, or bitmap of the PNG file. |
+ | wallpaperType | [WallpaperType](#wallpapertype) | Yes | Wallpaper type. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<void> | Promise used to return the result. If the operation is successful, the setting result is returned. Otherwise, error information is returned. |
+
+- Example
+
+ ```
+ //The source type is string.
+ let wallpaperPath = "/data/data/ohos.acts.aafwk.plrdtest.form/files/Cup_ic.jpg";
+ wallpaper.setWallpaper(wallpaperPath, wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => {
+ console.log(`success to setWallpaper.`);
+ }).catch((error) => {
+ console.error(`failed to setWallpaper because: ` + JSON.stringify(error));
+ });
+
+ //The source type is image.PixelMap.
+ import image from '@ohos.multimedia.image';
+ let imageSource = image.createImageSource("file://" + wallpaperPath);
+ let opts = {
+ "desiredSize": {
+ "height": 3648,
+ "width": 2736
+ }
+ };
+ imageSource.createPixelMap(opts).then((pixelMap) => {
+ wallpaper.setWallpaper(pixelMap, wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => {
+ console.log(`success to setWallpaper.`);
+ }).catch((error) => {
+ console.error(`failed to setWallpaper because: ` + JSON.stringify(error));
+ });
+ }).catch((error) => {
+ console.error(`failed to createPixelMap because: ` + JSON.stringify(error));
+ });
+ ```
+
+## wallpaper.getFile8+
+
+getFile(wallpaperType: WallpaperType, callback: AsyncCallback<number>): void
+
+Obtains the wallpaper of the specified type.
+
+**Required permissions**: ohos.permission.GET_WALLPAPER and ohos.permission.READ_USER_STORAGE
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | wallpaperType | [WallpaperType](#wallpapertype) | Yes | Wallpaper type. |
+ | callback | AsyncCallback<number> | Yes | Callback used to return the result. If the operation is successful, the file descriptor ID to the wallpaper is returned. Otherwise, error information is returned. |
+
+- Example
+
+ ```
+ wallpaper.getFile(wallpaper.WallpaperType.WALLPAPER_SYSTEM, (error, data) => {
+ if (error) {
+ console.error(`failed to getFile because: ` + JSON.stringify(error));
+ return;
+ }
+ console.log(`success to getFile: ` + JSON.stringify(data));
+ });
+ ```
+
+## wallpaper.getFile8+
+
+getFile(wallpaperType: WallpaperType): Promise<number>
+
+Obtains the wallpaper of the specified type.
+
+**Required permissions**: ohos.permission.GET_WALLPAPER and ohos.permission.READ_USER_STORAGE
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | wallpaperType | [WallpaperType](#wallpapertype) | Yes | Wallpaper type. |
+
+- Return values
+ | Type | Description |
+ | -------- | -------- |
+ | Promise<number> | Promise used to return the result. If the operation is successful, the file descriptor ID to the wallpaper is returned. Otherwise, error information is returned. |
+
+- Example
+
+ ```
+ wallpaper.getFile(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => {
+ console.log(`success to getFile: ` + JSON.stringify(data));
+ }).catch((error) => {
+ console.error(`failed to getFile because: ` + JSON.stringify(error));
+ });
+ ```
+
+
+## wallpaper.on('colorChange')
+
+on(type: 'colorChange', callback: (colors: Array<RgbaColor>, wallpaperType: WallpaperType) => void): void
+
+Subscribes to the wallpaper color change event.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Type of the event to subscribe to. The value **colorChange** indicates subscribing to the wallpaper color change event. |
+ | callback | function | Yes | Callback triggered when the wallpaper color changes. The wallpaper type and main colors are returned. - colors Main color information of the wallpaper. For details, see [RgbaColor](#rgbacolor). - wallpaperType Wallpaper type. |
+
+- Example
+
+ ```
+ let listener = (colors, wallpaperType) => {
+ console.log(`wallpaper color changed.`);
+ };
+ wallpaper.on('colorChange', listener);
+ ```
+
+
+## wallpaper.off('colorChange')
+
+off(type: 'colorChange', callback?: (colors: Array<RgbaColor>, wallpaperType: WallpaperType) => void): void
+
+Unsubscribes from the wallpaper color change event.
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+- Parameters
+ | Name | Type | Mandatory | Description |
+ | -------- | -------- | -------- | -------- |
+ | type | string | Yes | Type of the event to unsubscribe from. The value **colorChange** indicates unsubscribing from the wallpaper color change event. |
+ | callback | function | No | Callback for the wallpaper color change event. If this parameter is not specified, all callbacks corresponding to the wallpaper color change event are invoked. - colors Main color information of the wallpaper. For details, see [RgbaColor](#rgbacolor). - wallpaperType Wallpaper type. |
+
+- Example
+
+ ```
+ let listener = (colors, wallpaperType) => {
+ console.log(`wallpaper color changed.`);
+ };
+ wallpaper.on('colorChange', listener);
+ // Unsubscribe from the listener.
+ wallpaper.off('colorChange', listener);
+ //Unsubscribe from all subscriptions of the colorChange type.
+ wallpaper.off('colorChange');
+ ```
+
+
+## RgbaColor
+
+**System capability**: SystemCapability.MiscServices.Wallpaper
+
+| Name | Type | Readable | Writable | Description |
+| -------- | -------- | -------- | -------- | -------- |
+| red | number | Yes | Yes | Red color. The value ranges from 0 to 255. |
+| green | number | Yes | Yes | Green color. The value ranges from 0 to 255. |
+| blue | number | Yes | Yes | Blue color. The value ranges from 0 to 255. |
+| alpha | number | Yes | Yes | Alpha value. The value ranges from 0 to 255. |
diff --git a/en/application-dev/ui/ui-ts-creating-project.md b/en/application-dev/ui/ui-ts-creating-project.md
index 06eaa9f60525e7638535adc21a0239733e1eb557..940bf1824a3bc1fa8b9c815608a04efe0c93bc7f 100644
--- a/en/application-dev/ui/ui-ts-creating-project.md
+++ b/en/application-dev/ui/ui-ts-creating-project.md
@@ -61,7 +61,7 @@ Before creating a project, you need to install DevEco Studio. For details, see
![](figures/en-us_image_0000001148858818.png)
- Before the installation, you must configure an application signature. For details, see [Configuring the OpenHarmony App Signature](../quick-start/configuring-openharmony-app-signature.md). After the installation is complete, click the **Run** icon on the screen to open the application. **Hello World** is displayed in the center of the screen.
+ Before the installation, you must configure an application signature. For details, see [Configuring the OpenHarmony App Signature](https://developer.harmonyos.com/en/docs/documentation/doc-guides/ohos-debugging-and-running-0000001263040487#section17660437768). After the installation is complete, click the **Run** icon on the screen to open the application. **Hello World** is displayed in the center of the screen.
![](figures/en-us_image_0000001158896538.png)
diff --git a/en/application-dev/webgl/figures/en-us_image_0000001238544451.png b/en/application-dev/webgl/figures/en-us_image_0000001238544451.png
index 9d953fc57d179bd67edebd43c2a247585bad7bbe..dd22fb9659c6290be58c58e3e6b35c0c15bad800 100644
Binary files a/en/application-dev/webgl/figures/en-us_image_0000001238544451.png and b/en/application-dev/webgl/figures/en-us_image_0000001238544451.png differ
diff --git a/en/application-dev/website.md b/en/application-dev/website.md
index 71699978011412397074ac275ab88d6143835626..118397bc0da2152831574ac94bf2b6d4285dc8f5 100644
--- a/en/application-dev/website.md
+++ b/en/application-dev/website.md
@@ -2,17 +2,8 @@
- [Application Development Overview](application-dev-guide.md)
- Quick Start
- - [Getting Started with Application Development](quick-start/Readme-EN.md)
- - DevEco Studio (OpenHarmony) User Guide
- - [Overview](quick-start/deveco-studio-overview.md)
- - [Version Change History](quick-start/deveco-studio-release-notes.md)
- - [Configuring the OpenHarmony SDK](quick-start/configuring-openharmony-sdk.md)
- - [Creating an OpenHarmony Project](quick-start/create-openharmony-project.md)
- - [Using the Project Wizard to Create a Project](quick-start/use-wizard-to-create-project.md)
- - [Importing a Sample to Create a Project](quick-start/import-sample-to-create-project.md)
- - [Configuring the OpenHarmony App Signature](quick-start/configuring-openharmony-app-signature.md)
- - [Installing and Running Your OpenHarmony App](quick-start/installing-openharmony-app.md)
- [Directory Structure](quick-start/package-structure.md)
+ - [Resource File Categories](quick-start/basic-resource-file-categories.md)
- Development
- UI
- JavaScript-based Web-Like Development Paradigm
@@ -175,13 +166,7 @@
- [Overview of Application Event Logging](dfx/hiappevent-overview.md)
- [Development Guidelines on Application Event Logging](dfx/hiappevent-guidelines.md)
- Tools
- - DevEco Studio (OpenHarmony) User Guide
- - [Overview](quick-start/deveco-studio-overview.md)
- - [Version Change History](quick-start/deveco-studio-release-notes.md)
- - [Configuring the OpenHarmony SDK](quick-start/configuring-openharmony-sdk.md)
- - [Creating an OpenHarmony Project](quick-start/create-openharmony-project.md)
- - [Configuring the OpenHarmony App Signature](quick-start/configuring-openharmony-app-signature.md)
- - [Installing and Running Your OpenHarmony App](quick-start/installing-openharmony-app.md)
+ - [DevEco Studio (OpenHarmony) User Guide](quick-start/deveco-studio-user-guide-for-openharmony.md)
- Hands-On Tutorials
- [Samples](https://gitee.com/openharmony/app_samples/blob/master/README.md)
- API References
diff --git a/zh-cn/application-dev/application-dev-guide.md b/zh-cn/application-dev/application-dev-guide.md
index 6676f769e4211306992c7581004c2a851a11bb9e..6f477fc5b33200a042f8b9bfd8866c76fc5b1e0a 100644
--- a/zh-cn/application-dev/application-dev-guide.md
+++ b/zh-cn/application-dev/application-dev-guide.md
@@ -39,7 +39,7 @@
### 工具
DevEco Studio工具是OpenHarmony应用开发的推荐IDE工具。
-在[工具](quick-start/deveco-studio-user-guide-for-openharmony.md)部分,讲解了DevEco Studio工具的详细用法,包括使用该工具进行工程创建、应用签名、应用调试、应用安装运行的指导。
+在[工具](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-deveco-studio-overview-0000001263280421)部分,讲解了DevEco Studio工具的详细用法,包括使用该工具进行工程创建、应用签名、应用调试、应用安装运行的指导。
### 示例教程
diff --git a/zh-cn/application-dev/application-dev-website.md b/zh-cn/application-dev/application-dev-website.md
index 207bf47591d88f88ddf0a5f7fe0d3ee0a6f174e2..6f486280b668ed389dfa09443b8b6629689c87ee 100644
--- a/zh-cn/application-dev/application-dev-website.md
+++ b/zh-cn/application-dev/application-dev-website.md
@@ -1,22 +1,17 @@
- [应用开发导读](application-dev-guide.md)
+
- 快速开始
- - 应用开发快速入门
- - DevEco Studio(OpenHarmony)使用指南
- - [概述](quick-start/deveco-studio-overview.md)
- - [版本变更说明](quick-start/deveco-studio-release-notes.md)
- - [配置OpenHarmony SDK](quick-start/configuring-openharmony-sdk.md)
- - 创建OpenHarmony工程
- - [使用工程向导创建新工程](quick-start/use-wizard-to-create-project.md)
- - [通过导入Sample方式创建新工程](quick-start/import-sample-to-create-project.md)
- - [配置OpenHarmony应用签名信息](quick-start/configuring-openharmony-app-signature.md)
- - [安装运行OpenHarmony应用](quick-start/installing-openharmony-app.md)
- - 快速入门
- - [前言](quick-start/start-overview.md)
- - [使用eTS语言开发](quick-start/start-with-ets.md)
- - [使用JS语言开发(传统代码方式)](quick-start/start-with-js.md)
- - [使用JS语言开发(低代码方式)](quick-start/start-with-js-low-code.md)
- - [应用开发包结构说明](quick-start/package-structure.md)
- - [资源文件的分类](quick-start/basic-resource-file-categories.md)
+
+ - 快速入门
+ - [前言](quick-start/start-overview.md)
+ - [使用eTS语言开发](quick-start/start-with-ets.md)
+ - [使用JS语言开发(传统代码方式)](quick-start/start-with-js.md)
+ - [使用JS语言开发(低代码方式)](quick-start/start-with-js-low-code.md)
+
+ - 开发基础知识
+ - [应用开发包结构说明](quick-start/package-structure.md)
+ - [资源文件的分类](quick-start/basic-resource-file-categories.md)
+
- 开发
- [Ability开发](ability/Readme-CN.md)
- [Ability框架概述](ability/ability-brief.md)
@@ -264,17 +259,14 @@
- [国际化开发概述](internationalization/international-overview.md)
- [Intl开发指导](internationalization/intl-guidelines.md)
- [I18n开发指导](internationalization/i18n-guidelines.md)
+
- 工具
- - DevEco Studio(OpenHarmony)使用指南
- - [概述](quick-start/deveco-studio-overview.md)
- - [版本变更说明](quick-start/deveco-studio-release-notes.md)
- - [配置OpenHarmony SDK](quick-start/configuring-openharmony-sdk.md)
- - [创建OpenHarmony工程](quick-start/create-openharmony-project.md)
- - [配置OpenHarmony应用签名信息](quick-start/configuring-openharmony-app-signature.md)
- - [安装运行OpenHarmony应用](quick-start/installing-openharmony-app.md)
+ - [DevEco Studio(OpenHarmony)使用指南](quick-start/deveco-studio-user-guide-for-openharmony.md)
+
- 示例教程
- [示例代码](https://gitee.com/openharmony/app_samples/blob/master/README_zh.md)
- [Codelabs](https://gitee.com/openharmony/codelabs/blob/master/README.md)
+
- API参考
- 组件参考(基于JS扩展的类Web开发范式)
- 组件
@@ -507,8 +499,6 @@
- [矩阵变换](reference/arkui-ts/ts-matrix-transformation.md)
- [插值计算](reference/arkui-ts/ts-interpolation-calculation.md)
- 全局UI方法
- - [图片缓存](reference/arkui-ts/ts-methods-image-cache.md)
- - [媒体查询](reference/arkui-ts/ts-methods-media-query.md)
- 弹窗
- [警告弹窗](reference/arkui-ts/ts-methods-alert-dialog-box.md)
- [列表选择弹窗](reference/arkui-ts/ts-methods-action-sheet.md)
@@ -595,13 +585,13 @@
- [位置服务](reference/apis/js-apis-geolocation.md)
- 基本功能
- [应用上下文](reference/apis/js-apis-system-app.md)
- - [日志打印](reference/apis/js-apis-basic-features-logs.md)
+ - [日志打印](reference/apis/js-apis-logs.md)
- [页面路由](reference/apis/js-apis-system-router.md)
- [弹窗](reference/apis/js-apis-system-prompt.md)
- [应用配置](reference/apis/js-apis-system-configuration.md)
- - [定时器](reference/apis/js-apis-basic-features-timer.md)
+ - [定时器](reference/apis/js-apis-timer.md)
- [设置系统时间](reference/apis/js-apis-system-time.md)
- - [动画](reference/apis/js-apis-basic-features-animator.md)
+ - [动画](reference/apis/js-apis-animator.md)
- [WebGL](reference/apis/js-apis-webgl.md)
- [WebGL2](reference/apis/js-apis-webgl2.md)
- [屏幕截图](reference/apis/js-apis-screenshot.md)
diff --git a/zh-cn/application-dev/quick-start/Readme-CN.md b/zh-cn/application-dev/quick-start/Readme-CN.md
index c3104c0b74b7176584af8df66611c0f6938931db..2dcdc3532f57f468f899c784f951318bf2c01c92 100755
--- a/zh-cn/application-dev/quick-start/Readme-CN.md
+++ b/zh-cn/application-dev/quick-start/Readme-CN.md
@@ -1,19 +1,11 @@
# 入门
-- DevEco Studio(OpenHarmony)使用指南
- - [概述](deveco-studio-overview.md)
- - [版本变更说明](deveco-studio-release-notes.md)
- - [配置OpenHarmony SDK](configuring-openharmony-sdk.md)
- - 创建OpenHarmony工程
- - [使用工程向导创建新工程](use-wizard-to-create-project.md)
- - [通过导入Sample方式创建新工程](import-sample-to-create-project.md)
- - [配置OpenHarmony应用签名信息](configuring-openharmony-app-signature.md)
- - [安装运行OpenHarmony应用](installing-openharmony-app.md)
- 快速入门
- [前言](start-overview.md)
- [使用eTS语言开发](start-with-ets.md)
- [使用JS语言开发(传统代码方式)](start-with-js.md)
- [使用JS语言开发(低代码方式)](start-with-js-low-code.md)
-- [包结构说明](package-structure.md)
-- [资源文件的分类](basic-resource-file-categories.md)
+- 开发基础知识
+ - [包结构说明](package-structure.md)
+ - [资源文件的分类](basic-resource-file-categories.md)
diff --git a/zh-cn/application-dev/quick-start/configuring-openharmony-app-signature.md b/zh-cn/application-dev/quick-start/configuring-openharmony-app-signature.md
deleted file mode 100644
index dd3b698de6e88b9ffe0da2977e055878e8166ada..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/quick-start/configuring-openharmony-app-signature.md
+++ /dev/null
@@ -1,190 +0,0 @@
-# 配置OpenHarmony应用签名信息
-
-
-使用真机设备运行和调试OpenHarmony应用前,需要对应用进行签名才能正常运行。该指导用于OpenHarmony应用的签名配置。除此章节以外,DevEco Studio的其余操作指导无差别,具体请访问[HUAWEI DevEco Studio使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387)。配置应用签名信息的流程如下图所示。
-
-
-![zh-cn_image_0000001113808114](figures/zh-cn_image_0000001113808114.png)
-
-
-## 生成密钥和证书请求文件
-
-OpenHarmony应用通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用的完整性,需要通过DevEco Studio来生成密钥文件(.p12文件)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥文件和证书请求文件。
-
-
-### 使用DevEco Studio生成
-
-1. 在主菜单栏点击**Build > Generate Keyand CSR**。
- > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
- > 如果本地已有对应的密钥,无需新生成密钥,可以在**Generate Key**界面中点击下方的Skip跳过密钥生成过程,直接使用已有密钥生成证书请求文件。
-
-2. 在**Key Store File**中,可以点击**Choose Existing**选择已有的密钥库文件(存储有密钥的.p12文件);如果没有密钥库文件,点击**New**进行创建。下面以新创建密钥库文件为例进行说明。
- ![zh-cn_image_0000001119560738](figures/zh-cn_image_0000001119560738.png)
-
-3. 在**Create Key Store**窗口中,填写密钥库信息后,点击**OK**。
- - **Key Store File**:选择密钥库文件存储路径。
- - **Password**:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
- - **Confirm Password**:再次输入密钥库密码。
-
- ![zh-cn_image_0000001152674854](figures/zh-cn_image_0000001152674854.png)
-
-4. 在**Generate Key**界面中,继续填写密钥信息后,点击**Next**。
- - **Alias**:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
- - **Password**:密钥对应的密码,与密钥库密码保持一致,无需手动输入。
- - **Validity**:证书有效期,建议设置为25年及以上,覆盖应用/服务的完整生命周期。
- - **Certificate**:输入证书基本信息,如组织、城市或地区、国家码等。
-
- ![zh-cn_image_0000001117639668](figures/zh-cn_image_0000001117639668.png)
-
-5. 在**Generate CSR**界面,选择密钥和设置CSR文件存储路径。
- ![zh-cn_image_0000001117479776](figures/zh-cn_image_0000001117479776.png)
-
-6. 点击**OK**按钮,创建CSR文件成功,可以在存储路径下获取生成的密钥库文件(.p12)和证书请求文件(.csr)。
- ![zh-cn_image_0000001163839541](figures/zh-cn_image_0000001163839541.png)
-
-
-### 使用命令行工具生成
-
-使用Open JDK携带的Keytool工具生成证书请求文件。
-
-1. 使用管理员身份运行命令行工具。
-
- ![zh-cn_image_0000001248045243](figures/zh-cn_image_0000001248045243.png)
-
-2. 切换到keytool工具所在路径,实际路径请根据安装目录进行修改。
- ![zh-cn_image_0000001247125297](figures/zh-cn_image_0000001247125297.png)
-
-3. 执行如下命令,生成公私钥文件。例如,生成的密钥库名称为ide_demo_app.p12,存储到D盘根目录下。
- ```
- keytool -genkeypair -alias "ide_demo_app" -keyalg EC -sigalg SHA256withECDSA -dname "C=CN,O=Organization,OU=Unit,CN=ide_demo_app" -keystore d:\\idedemokey.p12 -storetype pkcs12 -validity 9125 -storepass 123456Abc -keypass 123456Abc
- ```
-
- 生成公私钥文件的参数说明如下:
-
- > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
- > 请记录**下alias、storepass**和**keypass**的值,在后续[配置应用签名信息](#配置应用签名信息)操作会使用到。
-
- - **alias**:密钥的别名信息,用于标识密钥名称。
- - **sigalg**:签名算法,固定为**SHA256withECDSA**。
- - **dname**:按照操作界面提示进行输入。
- - C:国家/地区代码,如CN。
- - O:组织名称,如Organization。
- - OU:组织单位名称,如Unit。
- - CN:名字与姓氏,建议与别名一致。
- - **validity**:证书有效期,建议设置为9125(25年)。
- - **storepass**:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
- - **keypass**:设置密钥的密码,请与**storepass**保持一致。
-
-4. 执行如下命令,执行后需要输入**storepass**密码,生成证书请求文件,后缀格式为.csr。
- ```
- keytool -certreq -alias "ide_demo_app" -keystore d:\\idedemokey.p12 -storetype pkcs12 -file d:\\idedemokey.csr
- ```
-
- 生成证书请求文件的参数说明如下:
-
- - **alias**:与3中输入的alias保持一致。
- - **file**:生成的证书请求文件名称,后缀为.csr。
-
-
-## 生成应用证书文件
-
-使用[生成密钥和证书请求文件](#生成密钥和证书请求文件)中生成的证书请求文件,来生成应用签名所需的数字证书文件。生成方法如下:
-
-进入DevEco Studio安装目录的**Sdk\toolchains\lib**文件夹下(该SDK目录只能是OpenHarmony SDK,配置方法可参考[配置OpenHarmony SDK](../quick-start/configuring-openharmony-sdk.md)),打开命令行工具,执行如下命令(如果keytool命令不能执行,请在系统环境变量中添加JDK的环境变量)。其中,只需要修改输入和输出即可快速生成证书文件,即修改**-infile**指定证书请求文件csr文件路径,**-outfile**指定输出证书文件名及路径。
-
-```
-keytool -gencert -alias "OpenHarmony Application CA" -infile myApplication_ohos.csr -outfile myApplication_ohos.cer -keystore OpenHarmony.p12 -sigalg SHA384withECDSA -storepass 123456 -ext KeyUsage:"critical=digitalSignature" -validity 3650 -rfc
-```
-
-关于该命令的参数说明如下:
-
-- **alias**:用于签发证书的CA私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
-
-- **infile**:证书请求(CSR)文件的路径。
-
-- **outfile**:输出证书链文件名及路径。
-
-- **keystore**:签发证书的CA密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中**Sdk\toolchains\lib**路径下,该参数不能修改。请注意,该OpenHarmony.p12文件并不是[生成密钥和证书请求文件](#生成密钥和证书请求文件)中生成的.p12文件。
-
-- **sigalg**:证书签名算法,该参数不能修改。
-
-- **storepass**:密钥库密码,密码为123456,该参数不能修改。
-
-- **ext**:证书扩展项,该参数不能修改。
-
-- **validity**:证书有效期,自定义天数。
-
-- **rfc**:输出文件格式指定,该参数不能修改。
-
-
-## 生成应用Profile文件
-
-Profile文件包含OpenHarmony应用的包名、数字证书信息、描述应用允许申请的证书权限列表,以及允许应用调试的设备列表(如果应用类型为Release类型,则设备列表为空)等内容,每个应用包中均必须包含一个Profile文件。
-
-进入**Sdk\toolchains\lib**目录下,打开命令行工具,执行如下命令。
-
-```
-java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --out myApplication_ohos_Provision.p7b --keystore OpenHarmony.p12 --storepass 123456 --alias "OpenHarmony Application Profile Release" --sigAlg SHA256withECDSA --cert OpenHarmonyProfileRelease.pem --validity 365 --developer-id ohosdeveloper --bundle-name 包名 --permission 受限权限名(可选) --permission 受限权限名(可选) --distribution-certificate myApplication_ohos.cer
-```
-
-关于该命令的参数说明如下:
-
-- **provisionsigtool**:Profile文件生成工具,文件在OpenHarmony SDK的**Sdk\toolchains\lib**路径下。
-
-- **in**:Profile模板文件所在路径,文件在OpenHarmony SDK中**Sdk\toolchains\lib**路径下,该参数不能修改。
-
-- **out**:输出的Profile文件名和路径。
-
-- **keystore**:签发证书的密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中**Sdk\toolchains\lib**路径下,该参数不能修改。
-
-- **storepass**:密钥库密码,密码为123456,该参数不能修改。
-
-- **alias**:用于签名Profile私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
-
-- **sigalg**:证书签名算法,该参数不能修改。
-
-- **cert**:签名Profile的证书文件路径,文件在OpenHarmony SDK中**Sdk\toolchains\lib**路径下,该参数不能修改。
-
-- **validity**:证书有效期,自定义天数。
-
-- **developer-id**:开发者标识符,自定义一个字符串。
-
-- **bundle-name**:填写应用包名。
-
-- **permission**:可选字段,如果不需要,则可以不用填写此字段;如果需要添加多个受限权限,则如示例所示重复输入。受限权限列表如下:ohos.permission.READ_CONTACTS、ohos.permission.WRITE_CONTACTS。
-
-- **distribution-certificate**:[生成应用证书文件](#生成应用证书文件)中生成的证书文件。
-
-
-## 配置应用签名信息
-
-在真机设备上调试前,需要使用到制作的私钥(.p12)文件、证书(.cer)文件和Profile(.p7b)文件对调试的模块进行签名。
-
-打开**File > Project Structure**,点击**Project > Signing Configs > debug**窗口中,去除勾选“Automatically generate signing”,然后配置指定模块的调试签名信息。
-- **Store File**:选择密钥库文件,文件后缀为.p12,该文件为[生成密钥和证书请求文件](#生成密钥和证书请求文件)中生成的.p12文件。
-
-- **Store Password**:输入密钥库密码,该密码为[生成密钥和证书请求文件](#生成密钥和证书请求文件)中填写的密钥库密码保持一致。
-
-- **Key Alias**:输入密钥的别名信息,与[生成密钥和证书请求文件](#生成密钥和证书请求文件)中填写的别名保持一致。
-
-- **Key Password**:输入密钥的密码,与**Store Password**保持一致。
-
-- **Sign Alg**:签名算法,固定为SHA256withECDSA。
-
-- **Profile File**:选择[生成应用Profile文件](#生成应用profile文件)中生成的Profile文件,文件后缀为.p7b。
-
-- **Certpath File**:选择[生成应用证书文件](#生成应用证书文件)中生成的数字证书文件,文件后缀为.cer。
-
-![zh-cn_image_0000001155643492](figures/zh-cn_image_0000001155643492.png)
-
-设置完签名信息后,点击**OK**进行保存,然后可以在工程下的build.gradle中查看签名的配置信息。
-
-![zh-cn_image_0000001202722349](figures/zh-cn_image_0000001202722349.png)
-
-默认情况下,DevEco Studio编译hap包的类型为debug类型,如果需要编译release类型的hap包,请打开工程左下角的OhosBuild Variants,设置模块的编译构建类型为release。关于编译构建hap的详细说明请参考[HUAWEI DevEco Studio使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/build_hap-0000001053342418)。
-
-![zh-cn_image_0000001115066116](figures/zh-cn_image_0000001115066116.png)
-
-编译完成后,OpenHarmony应用的Hap包可以从工程的bulid目录下获取。
-
-![zh-cn_image_0000001163918627](figures/zh-cn_image_0000001163918627.png)
diff --git a/zh-cn/application-dev/quick-start/configuring-openharmony-sdk.md b/zh-cn/application-dev/quick-start/configuring-openharmony-sdk.md
deleted file mode 100644
index 435b9d34c56f93e4d2e80cf877f11ab3a2e760aa..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/quick-start/configuring-openharmony-sdk.md
+++ /dev/null
@@ -1,165 +0,0 @@
-# 配置OpenHarmony SDK
-
-
-在设置OpenHarmony应用开发环境时,需要开发者在DevEco Studio中配置对应的SDK信息。
-
-
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 请注意,OpenHarmony SDK版本精简了部分工具链,因此不适用于HarmonyOS应用开发。
-
-
-## 前提条件
-
-已下载并安装好DevEco Studio 3.0 Beta1及以上版本,点击[链接下载](https://developer.harmonyos.com/cn/develop/deveco-studio#download)。
-
-
-## 配置SDK信息
-
-DevEco Studio通过SDK Manager统一管理SDK及工具链,OpenHarmony包含如下SDK包:
-
-| 类别 | 包名 | 说明 |
-| -------- | -------- | -------- |
-| SDK | JS | JS语言SDK包。 |
-| eTS | eTS(Extended TypeScript) SDK包。 |
-| SDK Tool | Toolchains | SDK工具链,OpenHarmony应用开发必备工具集,包括编译、打包、签名、数据库管理等工具的集合。 |
-| Previewer | OpenHarmony应用预览器,可以在应用开发过程中查看界面UI布局效果。 |
-
-1. 运行已安装的DevEco Studio,首次使用,请选择**Do not import settings**,点击OK。
-
-2. 进入配置向导页面,设置**npm registry**,DevEco Studio已预置对应的仓,直接点击**Start using DevEco Studio**进入下一步。
- > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
- > 如果配置向导界面出现的是设置**Set up HTTP Proxy**界面,说明网络受限,请根据[参考信息](#参考信息)配置DevEco Studio代理、NPM代理和Gradle代理后,再下载OpenHarmony SDK。
-
- ![zh-cn_image_0000001163314102](figures/zh-cn_image_0000001163314102.png)
-
-3. DevEco Studio向导指引开发者下载SDK,默认下载OpenHarmony SDK。SDK下载到user目录下,也可以指定对应的存储路径,SDK存储路径不支持中文字符,然后点击**Next**。
- ![zh-cn_image_0000001208394019](figures/zh-cn_image_0000001208394019.png)
-
- > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
- > 如果不是首次安装DevEco Studio,可能无法查看进入该界面,可通过欢迎页的**Configure (或**![zh-cn_image_0000001208274069](figures/zh-cn_image_0000001208274069.png)**图标)> Settings > SDK Manager > OpenHarmony SDK**界面,点击**OpenHarmony SDK Location**加载SDK。
-
-4. 在弹出的SDK下载信息页面,点击**Next**,并在弹出的**License Agreement**窗口,点击**Accept**开始下载SDK。
-
- ![zh-cn_image_0000001163472654](figures/zh-cn_image_0000001163472654.png)
-
-5. 等待OpenHarmony SDK及工具下载完成,点击**Finish**,界面会进入到DevEco Studio欢迎页。
- ![zh-cn_image_0000001163632602](figures/zh-cn_image_0000001163632602.png)
-
-
-## 参考信息
-
-DevEco Studio开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用。
-
-一般来说,如果使用的是个人或家庭网络,是不需要设置代理信息的;只有部分企业网络受限的情况下,才需要设置代理信息。
-
-如果是第一次打开DevEco Studio,配置向导界面出现设置**Set up HTTP Proxy**界面,说明网络受限,可以通过配置代理的方式来解决,需要配置DevEco Studio代理、NPM代理和Gradle代理。
-
-![zh-cn_image_0000001166582138](figures/zh-cn_image_0000001166582138.png)
-
-
-### 配置DevEco Studio代理
-
-1. 启动DevEco Studio,配置向导进入**Set up HTTP Proxy**界面,勾选**Manual proxy configuration**,设置DevEco Studio的HTTP Proxy。
- > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
- > 如果非首次设置向导进入HTTP Proxy,可以通过如下方式进入HTTP Proxy配置界面:
- >
- > - 在欢迎页点击**Configure(或**![zh-cn_image_0000001212142015](figures/zh-cn_image_0000001212142015.png)**图标) > Settings > Appearance & Behavior > System Settings > HTTP Proxy**进入HTTP Proxy设置界面(Mac系统为**Configure > Preferences > Appearance & Behavior > System Settings > HTTP Proxy**)。
- >
- > - 在打开了工程的情况下,可以点击**File > Settings > Appearance & Behavior > System Settings > HTTP Proxy**进入HTTP Proxy设置界面(Mac系统为**DevEco Studio > Preferences > Appearance & Behavior > System Settings > HTTP Proxy**)
-
- - **HTTP**配置项,设置代理服务器信息。**如果不清楚代理服务器信息,可以咨询你们的网络管理人员**。
- - **Host name**:代理服务器主机名或IP地址。
- - **Port number**:代理服务器对应的端口号。
- - **No proxy for**:不需要通过代理服务器访问的URL或者IP地址(地址之间用英文逗号分隔)。
- - **Proxy authentication**配置项,如果代理服务器需要通过认证鉴权才能访问,则需要设置。否则,请跳过该配置项。
- - **Login**:访问代理服务器的用户名。
- - **Password**:访问代理服务器的密码。
- - **Remember**:勾选,记住密码。
-
- ![zh-cn_image_0000001212062065](figures/zh-cn_image_0000001212062065.png)
-
-2. 配置完成后,点击**Check connection**,输入网络地址(如:https://developer.harmonyos.com),检查网络连通性。提示Connection successful表示代理设置成功。
-
-3. 点击**Next: Configure npm**继续设置NPM代理信息,请参考[配置NPM代理](#配置npm代理)。
-
-
-### 配置NPM代理
-
-通过DevEco Studio的设置向导设置NPM代理信息,代理信息将写入用户“users/用户名/”目录下的**.npmrc**文件。
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 该向导只有第一次安装DevEco Studio才会出现。如果未出现该向导,可以直接在“users/用户名/”目录下的**.npmrc**文件中,添加代理配置信息。
-
-- npm registry:设置npm仓的地址信息,建议勾选。
-
-- HTTP proxy:代理服务器信息,默认会与DevEco Studio的HTTP proxy设置项保持一致。
-
-- Enable Https Proxy:同步设置HTTPS Proxy配置信息,建议勾选。
-
-![zh-cn_image_0000001164577336](figures/zh-cn_image_0000001164577336.png)
-
-然后点击**Start using DevEco Studio**继续下一步操作。
-
-如果代理服务器需要认证(需要用户名和密码),请先根据如下指导配置代理服务器的用户名和密码信息,然后再下载OpenHarmony SDK;否则,请跳过该操作,参考[配置SDK信息](#配置sdk信息)进行操作即可。
-
-![zh-cn_image_0000001209817299](figures/zh-cn_image_0000001209817299.png)
-
-1. 进入用户的users目录,打开**.npmrc**文件。
-
-2. 修改npm代理信息,在proxy和https-proxy中,增加user和password字段,具体取值请以实际代理信息为准。示例如下所示:
- ```
- proxy=http://user:password@proxy.server.com:80
- https-proxy=http://user:password@proxy.server.com:80
- ```
-
- > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
- > 如果password中存在特殊字符,如\@、\#、\*等符号,可能导致配置不生效,建议将特殊字符替换为ASCII码,并在ASCII码前加百分号%。常用符号替换为ASCII码对照表如下:
- >
- > - !:%21
- >
- > - \@:%40
- >
- > - \#:%23
- >
- > - ¥:%24
- >
- > - &:%26
- >
- > - \*:%2A
-
-3. 代理设置完成后,打开命令行工具,执行如下命令进行验证网络是否正常。
- ```
- npm info express
- ```
-
- 执行结果如下图所示,则说明代理设置成功。
-
- ![zh-cn_image_0000001164417356](figures/zh-cn_image_0000001164417356.png)
-
-4. 网络设置完成后,然后再[配置SDK信息](#配置sdk信息)。
-
-
-### 设置Gradle代理
-
-1. 打开“此电脑”,在文件夹地址栏中输入**%userprofile%**(Mac系统请点击**前往 > 个人**),进入个人用户文件夹。
- ![zh-cn_image_0000001166740700](figures/zh-cn_image_0000001166740700.png)
-
-2. 创建一个文件夹,命名为**.gradle**。如果已有.gradle文件夹,请跳过此操作。
- > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
- > macOS系统创建.gradle文件夹前,请将系统设置为“显示隐藏文件”。
-
-3. 进入.gradle文件夹,新建一个文本文档,命名为**gradle**,并修改后缀为**.properties**。
-
-4. 打开**gradle.properties**文件中,添加如下脚本,然后保存。
- 其中代理服务器、端口、用户名、密码和不使用代理的域名,请根据实际代理情况进行修改。其中不使用代理的nonProxyHosts的配置间隔符是 “|”。
- ```
- systemProp.http.proxyHost=proxy.server.com
- systemProp.http.proxyPort=8080
- systemProp.http.nonProxyHosts=*.company.com|10.*|100.*
- systemProp.http.proxyUser=userId
- systemProp.http.proxyPassword=password
- systemProp.https.proxyHost=proxy.server.com
- systemProp.https.proxyPort=8080
- systemProp.https.nonProxyHosts=*.company.com|10.*|100.*
- systemProp.https.proxyUser=userId
- systemProp.https.proxyPassword=password
- ```
diff --git a/zh-cn/application-dev/quick-start/create-openharmony-project.md b/zh-cn/application-dev/quick-start/create-openharmony-project.md
deleted file mode 100644
index 87112157f03c31ef9fe90d7e73ed33eaad04ce20..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/quick-start/create-openharmony-project.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# 创建OpenHarmony工程
-
-
-
-- **[使用工程向导创建新工程](use-wizard-to-create-project.md)**
-
-- **[通过导入Sample方式创建新工程](import-sample-to-create-project.md)**
\ No newline at end of file
diff --git a/zh-cn/application-dev/quick-start/deveco-studio-overview.md b/zh-cn/application-dev/quick-start/deveco-studio-overview.md
deleted file mode 100644
index 9c38b56badf16315a1bf1177577e1fb30f2ebef5..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/quick-start/deveco-studio-overview.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# 概述
-
-
-## 总体说明
-
-DevEco Studio是HarmonyOS的配套的开发IDE,因为HarmonyOS是基于OpenHarmony开发的,因此,使用DevEco Studio(配套HarmonyOS)也可以进行OpenHarmony的应用开发。
-
-使用DevEco Studio开发OpenHarmony应用的流程与开发HarmonyOS的流程完全一样,本文档仅描述OpenHarmony应用开发与HarmonyOS应用开发的差异点。
-
-- **搭建开发环境差异**:OpenHarmony应用开发环境需要先安装OpenHarmony SDK,具体可参考[配置OpenHarmony SDK](../quick-start/configuring-openharmony-sdk.md)章节。
-
-- **创建OpenHarmony工程**:OpenHarmony应用开发,可以通过工程向导创建一个新工程,或通过导入Sample工程的方式来创建一个新工程,具体可参考[使用工程向导创建新工程](../quick-start/use-wizard-to-create-project.md)。
-
-- **调试签名配置**:OpenHarmony应用运行在真机设备上,需要对应用进行签名,关于OpenHarmony应用的签名指导请参考[配置OpenHarmony应用签名信息](../quick-start/configuring-openharmony-app-signature.md)。
-
-- **在真机设备上运行应用**:将OpenHarmony的hap包推送到真机设备上进行安装,具体可参考[安装运行OpenHarmony应用](../quick-start/installing-openharmony-app.md)。
-
-关于DevEco Studio的详细操作指导,请访问[HUAWEI DevEco Studio使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387)。
-
-
-## 使用约束
-
-- OpenHarmony只支持使用eTS、JS语言开发应用,不支持Java、C/C++语言。
-
-- OpenHarmony开发环境DevEco Studio暂只支持Windows系统。
-
-OpenHarmony与HarmonyOS的开发工具都是DevEco Studio,下表为OpenHarmony相比HarmonyOS不支持的功能说明:
-
-| 特性名称 | HarmonyOS版本 | OpenHarmony版本 |
-| -------- | -------- | -------- |
-| 服务卡片 | **√** | **X** |
-| 自动化签名 | **√** | **X** |
-| 远程模拟器 | **√** | **X** |
-| 本地模拟器 | **√** | **X** |
-| 使用DevEco Studio进行日志查看、调优 | **√** | **X** |
-| 云测试 | **√** | **X** |
-| 安全测试 | **√** | **X** |
-
-
-## DevEco Studio演进路标
-
-Huawei DevEco Studio分阶段支持OpenHarmony应用开发的演进路标如下:
-
-![zh-cn_image_0000001210018359](figures/zh-cn_image_0000001210018359.png)
diff --git a/zh-cn/application-dev/quick-start/deveco-studio-release-notes.md b/zh-cn/application-dev/quick-start/deveco-studio-release-notes.md
deleted file mode 100644
index 98c7c6c0385ff76a8a2d53c625b3ea4ff3a46fa1..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/quick-start/deveco-studio-release-notes.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# 版本变更说明
-
-
-## V3.0 Beta2(2021-12-31)
-
-
-### 版本兼容性
-
-DevEco Studio 3.0 Beta2版本兼容性配套关系如下表所示。
-
-| 组件 | 版本要求 | 说明 |
-| -------- | -------- | -------- |
-| Gradle | 7.3(最低版本要求7.2) | DevEco Studio已自带了Gradle7.3版本,开发者无需单独安装。 |
-| JDK | 11.0.x | DevEco Studio已自带了JDK 11版本,开发者无需单独安装。 |
-| OpenHarmony SDK | 3.1.0.0(API Version 8 Beta) | 兼容历史版本SDK。 |
-| Toolchinas | 3.1.0.0 | 建议更新至最新版本。 |
-| hap插件 | 3.0.5.2 | 建议更新至最新版本。 |
-| decctest插件 | 1.2.7.2 | 建议更新至最新版本。 |
-
-
-### 版本变更说明
-
-| |
-| -------- |
-| **新增特性:** - 新增DevEco Studio支持界面功能菜单的汉化版本,默认显示为英文,如需开启汉化版本,请打开DevEco Studio的**Settings**界面,在**Plugins > installed**中手动勾选“Chinese(Simplified)”插件,然后重新启动DevEco Studio即可生效。 - 新增支持OpenHarmony应用或服务的调试和运行,支持断点管理、变量查看、Step Into\Step Over\Step Out等单步调试功能。 **增强特性:** - OpenHarmony SDK更新至3.1.0.0版本(API Version 8 Beta),配套的hap编译构建插件版本更新至3.0.5.2。 - 工程模板新增支持低代码开发的[Standard]Empty Ability模板。 - 支持eTS组件预览,要求compileSdkVersion为8或以上。 - eTS实时预览支持边修改属性边展示预览效果,无需保存修改才生效,要求compileSdkVersion为8或以上。 |
-
-
-## V3.0 Beta1(2021-09-29)
-
-| |
-| -------- |
-| **新增特性:** - 新增支持OpenHarmony SDK的管理,开发者可通过DevEco Studio的SDK Manager功能来下载和管理OpenHarmony SDK。 - 在编译构建HAP包时,新增支持对单个Module进行编译,对于多Module工程中只需要编译其中一个Module的场景,可以提升编译构建速度;同时还新增支持一键重构建HAP包,即在编译构建HAP前,会自动执行Clean Project操作。 **增强特性:** - 编译构建插件更新至3.0.3.2版本。 - Json编辑器增强,资源索引错误支持快速修复,并支持快速查看资源的取值。 - 工程视图支持Ohos视图,默认视图为Project视图,开发者可手动切换。 - OpenHarmony工程支持ark方舟编译。 - OpenHarmony工程类型标识字段supportSystem "standard",由模块级build.gradle调整至工程级build.gradle。 |
diff --git a/zh-cn/application-dev/quick-start/deveco-studio-user-guide-for-openharmony.md b/zh-cn/application-dev/quick-start/deveco-studio-user-guide-for-openharmony.md
index 73aa1cf321f06654f5c69175955cd2effde20567..1fb62870798a5b357fd62dc8898b033bf7efa608 100644
--- a/zh-cn/application-dev/quick-start/deveco-studio-user-guide-for-openharmony.md
+++ b/zh-cn/application-dev/quick-start/deveco-studio-user-guide-for-openharmony.md
@@ -2,14 +2,19 @@
-- **[概述](deveco-studio-overview.md)**
+HUAWEI DevEco Studio For OpenHarmony(以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,面向OpenHarmony全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等E2E的OpenHarmony应用/服务开发。
-- **[版本变更说明](deveco-studio-release-notes.md)**
+DevEco Studio 3.0 Beta3(于2022-3-30日发布)作为支撑Openharmony应用和服务开发的IDE,具有以下能力特点:
-- **[配置OpenHarmony SDK](configuring-openharmony-sdk.md)**
+- 支持一站式的信息获取平台
+- 提供多设备工程模板
+- 高效的代码编辑
+- 支持可视化的界面UI开发
+- 双向、极速的界面UI预览
+- 全新的编译工具Hvigor
+- 支持基于设备系统能力集Syscap进行应用开发
+- 支持全自动化的应用签名机制
+- 丰富的代码调试调优能力
-- **[创建OpenHarmony工程](create-openharmony-project.md)**
+更多工具体验和使用指导请见:[DevEco Studio (OpenHarmony) 使用指南](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-deveco-studio-overview-0000001263280421)。
-- **[配置OpenHarmony应用签名信息](configuring-openharmony-app-signature.md)**
-
-- **[安装运行OpenHarmony应用](installing-openharmony-app.md)**
\ No newline at end of file
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001113808114.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001113808114.png
deleted file mode 100644
index da3c279ef8812b9d028a1993074430b5a06d50c9..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001113808114.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001115066116.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001115066116.png
deleted file mode 100644
index 357798e173fa7e3b419cc5990aa0737925e1f7b9..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001115066116.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001117479776.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001117479776.png
deleted file mode 100644
index 9250f90cf1e377c8bb33adf9965436ed7ddbadbf..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001117479776.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001117639668.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001117639668.png
deleted file mode 100644
index ba3923fef0ad89fa38fa170d2680931d1eb1ea55..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001117639668.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001118018088.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001118018088.png
deleted file mode 100644
index d4e1c7bd6773fc5b3ab5b473e28593110f3c820f..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001118018088.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001118018452.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001118018452.png
deleted file mode 100644
index 74b66efabbbbbea4752f0296985486369a0cdc74..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001118018452.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001119560738.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001119560738.png
deleted file mode 100644
index 9a84c3f66275c8ea2a50b9ba9ab0ead3842274cc..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001119560738.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001152459178.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001152459178.png
deleted file mode 100644
index 5ee6a55e53e57843300bd5ec0cce4a175e97a29e..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001152459178.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001152674854.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001152674854.png
deleted file mode 100644
index 6bef885f7c487473ca1b329d41c6414735555b42..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001152674854.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001155643492.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001155643492.png
deleted file mode 100644
index 9e3afd2b96c1a01b3e966c37e60755d1f179363c..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001155643492.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001162463400.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001162463400.png
deleted file mode 100644
index 48239f38c31b907155d7b0501401ca9dd8635d73..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001162463400.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163314102.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163314102.png
deleted file mode 100644
index 286a49def18618c79088deeb49203969ac6ce4c0..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163314102.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163472654.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163472654.png
deleted file mode 100644
index 5328a3c1b62eb8281e316d5ae4a6ca11694ec4a2..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163472654.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163632602.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163632602.png
deleted file mode 100644
index 10c5cf41ab78ea58c194fe1ed0429352e85a88a8..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163632602.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163839541.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163839541.png
deleted file mode 100644
index f278f73fb4cd0dba70cae1835dd7a45d2686038b..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163839541.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163915523.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163915523.png
deleted file mode 100644
index 352eaed40ac96dc5d3bae82591e5c801daaa8d56..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163915523.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163918627.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163918627.png
deleted file mode 100644
index 6967c6b140c7e07003fc4548989ea78d9e5fc940..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001163918627.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001164417356.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001164417356.png
deleted file mode 100644
index 97795b40abbea9f58aabe62dd7643eca208315e3..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001164417356.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001164498191.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001164498191.png
deleted file mode 100644
index 30efd063397893ff925743b681f943696f10512b..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001164498191.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001164577336.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001164577336.png
deleted file mode 100644
index 1127bbfabc9ef766284eec12c574096f8bb45ac3..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001164577336.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001166582138.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001166582138.png
deleted file mode 100644
index 36dc2d05ca4eb23505a73cb0d1606afd3bf844d8..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001166582138.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001166740700.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001166740700.png
deleted file mode 100644
index 9d9dc95f14cdc94007dbf04f217d496d49f9318c..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001166740700.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001196050928.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001196050928.png
deleted file mode 100644
index dd75ea8e2b874aae201ecab3254fac3a7bce8fbc..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001196050928.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001202722349.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001202722349.png
deleted file mode 100644
index 99330a4f3ef2978dd6736d96e00c88cea8d25f32..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001202722349.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001207744539.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001207744539.png
deleted file mode 100644
index 5e1269e9e8fb620f8ed6051395c727590e6dc1bc..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001207744539.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001208006117.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001208006117.png
deleted file mode 100644
index 5c576d84b0ca4b369cdaac5aa7de19718628bc37..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001208006117.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001208274069.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001208274069.png
deleted file mode 100644
index 74b66efabbbbbea4752f0296985486369a0cdc74..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001208274069.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001208394019.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001208394019.png
deleted file mode 100644
index aa7f5ffb0d59c7ab7a1784bfde775aeccc16a424..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001208394019.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001209817299.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001209817299.png
deleted file mode 100644
index aa7f5ffb0d59c7ab7a1784bfde775aeccc16a424..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001209817299.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001210018359.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001210018359.png
deleted file mode 100644
index 7fe695d19f2f15a7ce9c941907f17becf0d9b849..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001210018359.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001212062065.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001212062065.png
deleted file mode 100644
index 708b49814e270289c6d1c96520aa6d90ba0edb9c..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001212062065.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001212142015.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001212142015.png
deleted file mode 100644
index 74b66efabbbbbea4752f0296985486369a0cdc74..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001212142015.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001215029852.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001215029852.png
deleted file mode 100644
index fa229933bd2e38a0967750e39b2a2c1f5e80b873..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001215029852.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216084724.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216084724.png
index a52947400f005bbdb10141626f3fa1982abcb429..a8fac2a024e51aeb0439463dab83f2763fa3fa76 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216084724.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216084724.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216239356.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216239356.png
index 4d03d2b8a97319efa04c6c94b394291701371a35..f9a815f39b1f31948c01af0555d164e211de990a 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216239356.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216239356.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216269940.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216269940.png
index d2f276bc812f19e6b92cb299222218d1157f512d..0b9e04b55e1f9dfca33d97b6b0b80635f6aa1adf 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216269940.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216269940.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216288558.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216288558.png
index 0ce709ba3c03c1331c44ebe259aaa8102c160d18..a38ed398f4acd5c4a87bcf0f1b39adad810c224c 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216288558.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216288558.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216600980.gif b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216600980.gif
index 36e9929bd55f02e8737346709a8a2427723614ac..58fa6bc0485a3bca823313c4c84e3be37a1ecb05 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216600980.gif and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216600980.gif differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216618320.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216618320.png
deleted file mode 100644
index d8d1420760cc657bf7a4928d01be701c1ea6cb24..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216618320.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216753776.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216753776.png
deleted file mode 100644
index 5e6825c63fe0c733d72526a44a78a1deae32cc94..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001216753776.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217063248.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217063248.png
deleted file mode 100644
index 25ecf03e7113970dc2c43306ed9d423fa88d97fa..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217063248.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217365030.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217365030.png
deleted file mode 100644
index c93286ed075c7ea61f21331edc6fdaf575804d97..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217365030.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217384890.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217384890.png
deleted file mode 100644
index 84d5fb3fe5c703c5605358c2ca9d1c6e8ed565f8..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217384890.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217526428.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217526428.png
index 241ddfa8b9c3a29f5a410c454458471bfa004ee8..2c026736133d41d80a1b92eb0db230dd6c0a7feb 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217526428.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217526428.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217527892.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217527892.png
index d2f276bc812f19e6b92cb299222218d1157f512d..0b9e04b55e1f9dfca33d97b6b0b80635f6aa1adf 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217527892.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217527892.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217527948.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217527948.png
deleted file mode 100644
index c93286ed075c7ea61f21331edc6fdaf575804d97..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001217527948.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223397122.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223397122.png
new file mode 100644
index 0000000000000000000000000000000000000000..42b475577bcc805372336be8971afa5c69c284bd
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223397122.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223556342.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223556342.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab2ae3c740dfee9b303d6319516c9facb3574184
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223556342.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223557290.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223557290.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e093d7a983e03a37143357001eefd57c3df2c3c
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223557290.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223558810.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223558810.png
new file mode 100644
index 0000000000000000000000000000000000000000..33c3fd7d689bf5ce33f76547b0c7f414a5082715
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223558810.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223558814.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223558814.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab2ae3c740dfee9b303d6319516c9facb3574184
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223558814.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223716826.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223716826.png
new file mode 100644
index 0000000000000000000000000000000000000000..14dc492cb36d22c79d22bea78d0f66508867291e
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223716826.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223717294.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223717294.png
new file mode 100644
index 0000000000000000000000000000000000000000..75910aaf0daa22be2c0b56ae94febaa672df7424
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223717294.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223722586.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223722586.png
new file mode 100644
index 0000000000000000000000000000000000000000..7fd32c25dacf742fcb6fc950fbb7dbb1896f107e
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223722586.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223877162.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223877162.png
new file mode 100644
index 0000000000000000000000000000000000000000..02d730cadf10899edd91f94ce4cb8badd3ba821c
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223877162.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223877210.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223877210.png
new file mode 100644
index 0000000000000000000000000000000000000000..7de2085c0711c035befe73d65be14c344bba974d
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223877210.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223882030.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223882030.png
new file mode 100644
index 0000000000000000000000000000000000000000..68541a5d1ada5127b4b049b7c536165b874a5818
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001223882030.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001239855207.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001239855207.png
deleted file mode 100644
index 83ef94f222a2cc30f036057908960badedd4aeca..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001239855207.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001247125297.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001247125297.png
deleted file mode 100644
index 32771bf5f9639aa8ebdd1922f8088965404674ca..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001247125297.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001248045243.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001248045243.png
deleted file mode 100644
index 61535cb2fe6b4197e95cff8691fe27973c5ecde8..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001248045243.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001259949659.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001259949659.png
deleted file mode 100644
index fa229933bd2e38a0967750e39b2a2c1f5e80b873..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001259949659.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001260189591.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001260189591.png
deleted file mode 100644
index fa229933bd2e38a0967750e39b2a2c1f5e80b873..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001260189591.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001260684127.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001260684127.png
index 241ddfa8b9c3a29f5a410c454458471bfa004ee8..0384e6e0c5283106da9ca4c34be2f831dcd435c9 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001260684127.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001260684127.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261129245.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261129245.png
deleted file mode 100644
index b774bd7ee5c548fe6ba8b8924f302b5dc7b65b07..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261129245.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261137889.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261137889.png
deleted file mode 100644
index 2821c2b055c71abd5ba1d74201c1c4ab9ddd6647..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261137889.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261142799.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261142799.png
index b0fe41acdfae007d26b79e6539d1432be4d420db..2d49abf09c08421118b8fddd8df4f0c46d5f1c84 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261142799.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261142799.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261233671.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261233671.png
deleted file mode 100644
index 20bc9853976a1d8b967da762ef88028ee029e150..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261233671.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261233695.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261233695.png
deleted file mode 100644
index fa80cdac31d31207b21dbd33072a82c015a002be..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261233695.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261786055.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261786055.png
deleted file mode 100644
index c54739143282ad99334f366d35f2b1696d773f92..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001261786055.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001262127855.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001262127855.png
index b0fe41acdfae007d26b79e6539d1432be4d420db..2d49abf09c08421118b8fddd8df4f0c46d5f1c84 100644
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001262127855.png and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001262127855.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001262327095.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001262327095.png
deleted file mode 100644
index c93286ed075c7ea61f21331edc6fdaf575804d97..0000000000000000000000000000000000000000
Binary files a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001262327095.png and /dev/null differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268077317.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268077317.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e093d7a983e03a37143357001eefd57c3df2c3c
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268077317.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268082945.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268082945.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba6a6b7ee2bc09c33a4ef23ec79742bc698fa604
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268082945.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268198893.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268198893.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab2ae3c740dfee9b303d6319516c9facb3574184
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268198893.png differ
diff --git a/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268283201.png b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268283201.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e093d7a983e03a37143357001eefd57c3df2c3c
Binary files /dev/null and b/zh-cn/application-dev/quick-start/figures/zh-cn_image_0000001268283201.png differ
diff --git a/zh-cn/application-dev/quick-start/import-sample-to-create-project.md b/zh-cn/application-dev/quick-start/import-sample-to-create-project.md
deleted file mode 100644
index 79fddeb9ecc84dc403ffaeb11c4bfcc1323f3b68..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/quick-start/import-sample-to-create-project.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# 通过导入Sample方式创建新工程
-
-
-
-> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 该功能适用于通过DevEco Studio 2.1 Release及以上版本,创建OpenHarmony工程。
-
-
-OpenHarmony SDK配置完成后,便可以启动应用开发。针对OpenHarmony应用开发,**可以通过导入Sample工程的方式来创建一个新工程**。
-
-
-1. 在DevEco Studio的欢迎页,进入**Configure (或**![zh-cn_image_0000001118018452](figures/zh-cn_image_0000001118018452.png)**图标) > Settings > Version Control > Git**界面,点击Test按钮检测是否安装Git工具。
- - 已安装,请根据**步骤2**开始导入Sample。
- ![zh-cn_image_0000001118018088](figures/zh-cn_image_0000001118018088.png)
- - 未安装,请点击**Download and Install**,DevEco Studio会自动下载并安装。安装完成后,请根据**步骤2**开始导入Sample。
- ![zh-cn_image_0000001164498191](figures/zh-cn_image_0000001164498191.png)
-
-2. 在DevEco Studio的欢迎页,点击**Import Sample**按钮,导入Sample工程。
- ![zh-cn_image_0000001208006117](figures/zh-cn_image_0000001208006117.png)
-
-3. 选择OpenHarmony Samples > common下的**JsHelloWorld**工程,然后点击**Next**。
- ![zh-cn_image_0000001152459178](figures/zh-cn_image_0000001152459178.png)
-
-4. 设置**App Name**和**Project Location**,然后点击**Finish**,等待Sample工程导入完成。
- ![zh-cn_image_0000001207744539](figures/zh-cn_image_0000001207744539.png)
-
-5. 等待工程同步完成,同步成功后,便可以进行OpenHarmony应用开发了。
- ![zh-cn_image_0000001163915523](figures/zh-cn_image_0000001163915523.png)
diff --git a/zh-cn/application-dev/quick-start/installing-openharmony-app.md b/zh-cn/application-dev/quick-start/installing-openharmony-app.md
deleted file mode 100644
index 7dc86e978e8db0d23556c256bc7b2f6635262fb9..0000000000000000000000000000000000000000
--- a/zh-cn/application-dev/quick-start/installing-openharmony-app.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# 安装运行OpenHarmony应用
-
-
-
-安装OpenHarmony应用可以通过DevEco Studio安装,也可以通过使用hdc工具进行手动安装。
-
-
-- 通过DevEco Studio安装:将设备连接上DevEco Studio后,点击![zh-cn_image_0000001239855207](figures/zh-cn_image_0000001239855207.png)按钮即可安装。
-
-- 通过hdc工具安装:手动执行命令行完成应用的安装。
- hdc工具本身需要手动从开源仓中获取。然后使用工具将编译后的本地hap包发送至设备侧并完成安装。
-
- 相关命令如下:
-
- - 安装命令
- **install [-r/-d/-g] _package_**
-
- 命令示例:
-
- ```
- hdc_std install E:\hwadmin.hap
- ```
- - 日志抓取命令
- **hilog**
-
- 命令示例:
-
- ```
- hdc_std hilog
- ```
-
- 完整的hdc工具使用指导及命令格式请参见[hdc_std使用指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-toolchain-hdc-guide.md)。
diff --git a/zh-cn/application-dev/quick-start/start-overview.md b/zh-cn/application-dev/quick-start/start-overview.md
index 0e64bf3f7cd7f1fe2e0f4b10934ed259f7efaea3..4aea5156b19dadb48cc2998650baf81acc9a3209 100644
--- a/zh-cn/application-dev/quick-start/start-overview.md
+++ b/zh-cn/application-dev/quick-start/start-overview.md
@@ -1,5 +1,4 @@
-# 前言
-
+# 开发准备
本文档适用于OpenHarmony应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用(如下图所示),快速了解工程目录的主要文件,熟悉OpenHarmony应用开发流程。
@@ -15,23 +14,23 @@
### UI框架
-OpenHarmony提供了一套UI开发框架,即方舟开发框架(ArkUI框架)。方舟开发框架可为开发者提供进行应用UI开发时所必须的能力,比如多种组件、布局计算、动画能力、UI交互、绘制等等。
+OpenHarmony提供了一套UI开发框架,即方舟开发框架(ArkUI框架)。方舟开发框架可为开发者提供应用UI开发所必须的能力,比如多种组件、布局计算、动画能力、UI交互、绘制等等。
方舟开发框架针对不同目的和技术背景的开发者提供了两种开发范式,分别是基于JS扩展的类Web开发范式(简称“类Web开发范式”)和基于TS扩展的声明式开发范式(简称“声明式开发范式”)。以下是两种开发范式的简单对比。
- | **开发范式名称** | **语言生态** | **UI更新方式** | **适用场景** | **适用人群** |
+| **开发范式名称** | **语言生态** | **UI更新方式** | **适用场景** | **适用人群** |
| -------- | -------- | -------- | -------- | -------- |
-| 类Web开发范式 | JS语言 | 数据驱动更新 | 界面较为简单的类小程序应用和卡片 | Web前端开发人员 |
-| 声明式开发范式 | 扩展的TS语言(eTS) | 数据驱动更新 | 复杂度较大、团队合作度较高的程序 | 移动系统应用开发人员、系统应用开发人员 |
+| 类Web开发范式 | JS语言 | 数据驱动更新 | 界面较为简单的程序应用和卡片 | Web前端开发人员 |
+| 声明式开发范式 | 扩展的TS语言(eTS) | 数据驱动更新 | 复杂度较大、团队合作度较高的程序 | 移动系统应用开发人员、系统应用开发人员 |
-对于DevEco Studio V2.2 Beta1及更高版本,在使用JS语言开发时,除传统代码方式外,还支持使用低代码方式。OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS开发规范](../reference/apis),通过可视化界面开发方式快速构建布局,可有效降低用户的上手成本并提升用户构建UI界面的效率。
+对于DevEco Studio V2.2 Beta1及更高版本,在使用JS语言开发时,除传统代码方式外,还支持使用低代码方式。OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS开发规范](../references/apis),通过可视化界面开发方式快速构建布局,可有效降低用户的上手成本并提升用户构建UI界面的效率。
### Ability
[Ability](../ability/ability-brief.md)是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability)。OpenHarmony支持应用以Ability为单位进行部署。
-Ability可以分为[FA(Feature Ability)](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/glossary/glossary.md#f)和[PA(Particle Ability)](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/glossary/glossary.md#p)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。其中,FA支持[Page Ability](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ability/fa-pageability.md)模板,以提供与用户交互的能力。一个Page Ability可以含有一个或多个页面(即Page),Page Ability与Page的关系如下图所示:
+Ability可以分为[FA(Feature Ability)](../../glossary.md#f)和[PA(Particle Ability)](../../glossary.md#p)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。其中,FA支持[Page Ability](../ability/fa-pageability.md)模板,以提供与用户交互的能力。一个Page Ability可以含有一个或多个页面(即Page),Page Ability与Page的关系如下图所示:
![zh-cn_image_0000001215206886](figures/zh-cn_image_0000001215206886.png)
@@ -42,6 +41,6 @@ Ability可以分为[FA(Feature Ability)](https://gitee.com/openharmony/docs/
1. 安装最新版[DevEco Studio](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)。
-2. 请参考[配置OpenHarmony SDK](configuring-openharmony-sdk.md),完成**DevEco Studio**的安装和开发环境配置。
+2. 请参考[配置OpenHarmony SDK](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-setting-up-environment-0000001263160443),完成**DevEco Studio**的安装和开发环境配置。
完成上述操作及基本概念的理解后,可参照[使用eTS语言开发](start-with-ets.md)、[使用JS语言开发(传统代码方式)](start-with-js.md)、[使用JS语言开发(低代码方式)](start-with-js-low-code.md)中的任一章节进行下一步体验和学习。
diff --git a/zh-cn/application-dev/quick-start/start-with-ets.md b/zh-cn/application-dev/quick-start/start-with-ets.md
index 4bde32525058164ae9d6a6f869d064794f7116fb..b8cb45b2ff5e5c17728e2220a62a18893eead0df 100644
--- a/zh-cn/application-dev/quick-start/start-with-ets.md
+++ b/zh-cn/application-dev/quick-start/start-with-ets.md
@@ -4,33 +4,35 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 请使用**DevEco Studio V3.0.0.601 Beta1**及更高版本。
>
-> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.900 Beta2**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
+> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.900 Beta3**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
## 创建eTS工程
1. 打开**DevEco Studio**,点击**File** > **New > Create Project**,选择模板“**Empty Ability**”,点击**Next**进行下一步配置。
- ![zh-cn_image_0000001260189591](figures/zh-cn_image_0000001260189591.png)
+ ![zh-cn_image_0000001223556342](figures/zh-cn_image_0000001223556342.png)
2. 进入配置工程界面,**UI Syntax**选择“**eTS**”,其他参数保持默认设置即可。
- ![zh-cn_image_0000001217063248](figures/zh-cn_image_0000001217063248.png)
+ ![zh-cn_image_0000001223716826](figures/zh-cn_image_0000001223716826.png)
3. 点击**Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
## eTS工程项目文件
-- **entry** :OpenHarmony工程模块,编译构建生成一个Hap包。
- - **src > main > ets** :用于存放ets源码。
- - **src > main > ets > MainAbility** :应用/服务的入口。
- - **src > main > ets > MainAbility > pages** :MainAbility包含的页面。
- - **src > main > ets > MainAbility > app.ets** :承载Ability生命周期。
- - **src > main > resources** :用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
- - **src > main >config.json** :模块配置文件。主要包含HAP包的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
- - **build-profile.json5** :模块的模块信息 、编译信息配置项,包括 buildOption target配置等。
- - **hvigorfile.js** :模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
-- **build-profile.json5** :应用级配置信息,包括签名、产品配置等。
-- **hvigorfile.js** :应用级编译构建任务脚本。
+- **entry**:OpenHarmony工程模块,编译构建生成一个Hap包。
+ - **src > main > ets**:用于存放ets源码。
+ - **src > main > ets > MainAbility**:应用/服务的入口。
+ - **src > main > ets > MainAbility > pages**:MainAbility包含的页面。
+ - **src > main > ets > MainAbility > app.ets**:承载Ability生命周期。
+ - **src > main > resources**:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
+ - **src > main > config.json**:模块配置文件。主要包含HAP包的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
+ - **build-profile.json5**:模块的模块信息 、编译信息配置项,包括 buildOption target配置等。
+ - **hvigorfile.js**:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
+
+- **build-profile.json5**:应用级配置信息,包括签名、产品配置等。
+
+- **hvigorfile.js**:应用级编译构建任务脚本。
## 构建第一个页面
@@ -76,13 +78,14 @@
.fontSize(50)
.fontWeight(FontWeight.Bold)
// 添加按钮,以接受用户点击
- Button(){
+ Button() {
Text('Next')
- .fontSize(30)
- .fontWeight(FontWeight.Bold)
- }.type(ButtonType.Capsule)
+ .fontSize(30)
+ .fontWeight(FontWeight.Bold)
+ }
+ .type(ButtonType.Capsule)
.margin({
- top:20
+ top: 20
})
.backgroundColor('#0D9FFB')
.width('40%')
@@ -95,8 +98,7 @@
}
```
-3. **在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。** 第一个页面效果如下图所示:
-
+3. **在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。**第一个页面效果如下图所示:
![zh-cn_image_0000001216239356](figures/zh-cn_image_0000001216239356.png)
@@ -105,39 +107,41 @@
1. **创建第二个页面。**
在“**Project**”窗口,打开“**entry > src > main > ets > MainAbility**”,右键点击“**pages**”文件夹,选择“**New > Page**”,命名为“**second**”,点击“**Finish**”,即完成第二个页面的创建。可以看到文件目录结构如下:
- ![zh-cn_image_0000001261233671](figures/zh-cn_image_0000001261233671.png)
+ ![zh-cn_image_0000001223397122](figures/zh-cn_image_0000001223397122.png)
2. **添加文本及按钮。**
参照第一个页面,在第二个页面添加Text组件、Button组件等,并设置其样式。“**second.ets**”文件的示例如下:
-
+
```
@Entry
@Component
struct Second {
@State message: string = 'Hi there'
- build() {
- Row() {
- Column() {
- Text(this.message)
- .fontSize(50)
- .fontWeight(FontWeight.Bold)
- Button() {
- Text('Back')
- .fontSize(25)
+
+ build() {
+ Row() {
+ Column() {
+ Text(this.message)
+ .fontSize(50)
.fontWeight(FontWeight.Bold)
- }.type(ButtonType.Capsule)
- .margin({
- top: 20
- })
- .backgroundColor('#0D9FFB')
- .width('40%')
- .height('5%')
+ Button() {
+ Text('Back')
+ .fontSize(25)
+ .fontWeight(FontWeight.Bold)
+ }
+ .type(ButtonType.Capsule)
+ .margin({
+ top: 20
+ })
+ .backgroundColor('#0D9FFB')
+ .width('40%')
+ .height('5%')
+ }
+ .width('100%')
}
- .width('100%')
+ .height('100%')
}
- .height('100%')
- }
}
```
@@ -165,20 +169,21 @@
.fontSize(50)
.fontWeight(FontWeight.Bold)
// 添加按钮,以接受用户点击
- Button(){
+ Button() {
Text('Next')
- .fontSize(30)
- .fontWeight(FontWeight.Bold)
- }.type(ButtonType.Capsule)
+ .fontSize(30)
+ .fontWeight(FontWeight.Bold)
+ }
+ .type(ButtonType.Capsule)
.margin({
- top:20
+ top: 20
})
.backgroundColor('#0D9FFB')
.width('40%')
.height('5%')
- // 跳转按钮绑定onClick事件,点击按钮时跳转到第二页
- .onClick(()=>{
- router.push({uri:'pages/second'})
+ // 跳转按钮绑定onClick事件,点击时跳转到第二页
+ .onClick(() => {
+ router.push({ uri: 'pages/second' })
})
}
.width('100%')
@@ -198,37 +203,39 @@
@Entry
@Component
struct Second {
- @State message: string = 'Hi there'
- build() {
- Row() {
- Column() {
- Text(this.message)
- .fontSize(50)
- .fontWeight(FontWeight.Bold)
- Button() {
- Text('Back')
- .fontSize(25)
- .fontWeight(FontWeight.Bold)
- }.type(ButtonType.Capsule)
- .margin({
- top: 20
- })
- .backgroundColor('#0D9FFB')
- .width('40%')
- .height('5%')
- // 返回按钮绑定onClick事件,点击按钮时返回到第一页
- .onClick(()=>{
- router.back()
- })
- }
- .width('100%')
+ @State message: string = 'Hi there'
+
+ build() {
+ Row() {
+ Column() {
+ Text(this.message)
+ .fontSize(50)
+ .fontWeight(FontWeight.Bold)
+ Button() {
+ Text('Back')
+ .fontSize(25)
+ .fontWeight(FontWeight.Bold)
}
- .height('100%')
+ .type(ButtonType.Capsule)
+ .margin({
+ top: 20
+ })
+ .backgroundColor('#0D9FFB')
+ .width('40%')
+ .height('5%')
+ // 返回按钮绑定onClick事件,点击按钮时返回到第一页
+ .onClick(() => {
+ router.back()
+ })
+ }
+ .width('100%')
}
+ .height('100%')
+ }
}
```
-3. **打开index.ets文件,点击预览器中的** ![zh-cn_image_0000001262219043](figures/zh-cn_image_0000001262219043.png) **按钮进行刷新。** 效果如下图所示:
+3. **打开index.ets文件,点击预览器中的**![zh-cn_image_0000001262219043](figures/zh-cn_image_0000001262219043.png)**按钮进行刷新。**效果如下图所示:
![zh-cn_image_0000001260684127](figures/zh-cn_image_0000001260684127.png)
@@ -236,10 +243,10 @@
1. 将搭载OpenHarmony标准系统的开发板与电脑连接。
-2. 点击**File >Project Structure** > **Project > Signing**界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
- ![zh-cn_image_0000001217365030](figures/zh-cn_image_0000001217365030.png)
+2. 点击**File >Project Structure** > **Project > SigningConfigs**界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
+ ![zh-cn_image_0000001268077317](figures/zh-cn_image_0000001268077317.png)
-3. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001262206247](figures/zh-cn_image_0000001262206247.png) 按钮运行。效果如下图所示:
+3. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001262206247](figures/zh-cn_image_0000001262206247.png)按钮运行。效果如下图所示:
![zh-cn_image_0000001217526428](figures/zh-cn_image_0000001217526428.png)
-恭喜您已经使用eTS语言开发完成了第一个OpenHarmony应用,来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
+恭喜您已经使用eTS语言开发完成了第一个OpenHarmony应用,快来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
diff --git a/zh-cn/application-dev/quick-start/start-with-js-low-code.md b/zh-cn/application-dev/quick-start/start-with-js-low-code.md
index f3f4c70be5f618800c89a8a1bc717ae782415fe9..bb19a402fa3709a1ca53e250cfaeac45951b6cc7 100644
--- a/zh-cn/application-dev/quick-start/start-with-js-low-code.md
+++ b/zh-cn/application-dev/quick-start/start-with-js-low-code.md
@@ -4,10 +4,10 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该特性在**DevEco Studio V2.2 Beta1**及更高版本中支持。
>
-> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.900 Beta2**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
+> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.900 Beta3**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
-OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS开发规范](../reference/apis/),通过可视化界面开发方式快速构建布局,可有效降低用户的上手成本并提升用户构建UI界面的效率。
+OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS开发规范](../reference/apis),通过可视化界面开发方式快速构建布局,可有效降低用户的上手成本并提升用户构建UI界面的效率。
使用低代码开发应用或服务有以下两种开发方式:
@@ -24,10 +24,10 @@ OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS
> 该功能在DevEco Studio 3.0 Beta2及更高版本中支持,且compileSdkVersion必须为7或以上。
1. 打开**DevEco Studio**,点击**File** > **New > Create Project**,选择模板“**Empty Ability**”,点击**Next**进行下一步配置。
- ![zh-cn_image_0000001259949659](figures/zh-cn_image_0000001259949659.png)
+ ![zh-cn_image_0000001268198893](figures/zh-cn_image_0000001268198893.png)
-2. 进入配置工程界面,打开“**Super Visual Enable**”开关, **UI Syntax** 选择“**JS**”,其他参数保持默认设置即可。
- ![zh-cn_image_0000001261786055](figures/zh-cn_image_0000001261786055.png)
+2. 进入配置工程界面,打开“**Enable Visual Enable**”开关**,UI Syntax**选择“**JS**”,其他参数保持默认设置即可。
+ ![zh-cn_image_0000001223717294](figures/zh-cn_image_0000001223717294.png)
3. 点击**Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
@@ -36,14 +36,13 @@ OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS
工程同步完成后,自动生成以下目录结构:
-![zh-cn_image_0000001216753776](figures/zh-cn_image_0000001216753776.png)
+![zh-cn_image_0000001223558810](figures/zh-cn_image_0000001223558810.png)
-- **pages > index > index.js**:低代码页面的逻辑描述文件,定义了页面里所用到的所有的逻辑关系,比如数据、事件等,详情请参考[JS语法参考](../ui/js-framework-syntax-js.md)。如果创建了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的js文件。
-
+- **entry > src > main > js > MainAbility > pages > index > index.js**:低代码页面的逻辑描述文件,定义了页面里所用到的所有的逻辑关系,比如数据、事件等,详情请参考[JS语法参考](../ui/js-framework-syntax-js.md)。如果创建了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的js文件。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 使用低代码页面开发时,其关联js文件的同级目录中不能包含hml和css页面,例如上图中的**js > MainAbility > pages > index**目录下不能包含hml与css文件,否则会出现编译报错。
-
-- **pages > index > index.visual**:visual文件存储低代码页面的数据模型,双击该文件即可打开低代码页面,进行可视化开发设计。如果创建了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的visual文件。
+
+- **entry > src > main > supervisual > MainAbility > pages > index > index.visual**:visual文件存储低代码页面的数据模型,双击该文件即可打开低代码页面,进行可视化开发设计。如果创建了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的visual文件。
## 构建第一个页面
@@ -58,7 +57,7 @@ OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS
![zh-cn_image_0000001216600980](figures/zh-cn_image_0000001216600980.gif)
2. **添加容器,设置Div容器的样式和属性。**
- 选中UI Control中的Div组件,将其拖至画布。点击右侧属性样式栏中的样式图标![zh-cn_image_0000001260226691](figures/zh-cn_image_0000001260226691.png)(General),设置Div组件的高度Height为100%,使其占满屏幕;点击右侧属性样式栏中的样式图标![zh-cn_image_0000001215226858](figures/zh-cn_image_0000001215226858.png)(Flex),设置Div组件的FlexDirection样式为column,使Div的主轴垂直;设置Div组件的JustifyContent样式为center,使得其子组件在主轴上居中显示;设置Div组件的AlignItems样式为center,使得其子组件在交叉轴上居中显示。操作如下所示:
+ 选中UI Control中的Div组件,将其拖至画布。点击右侧属性样式栏中的样式图标![zh-cn_image_0000001260226691](figures/zh-cn_image_0000001260226691.png)(General),设置Div组件的高度Height为100%,使其占满屏幕;点击右侧属性样式栏中的样式图标![zh-cn_image_0000001215226858](figures/zh-cn_image_0000001215226858.png)(Flex),设置Div组件的FlexDirection样式为column,使Div的主轴垂直;设置Div组件的JustifyContent样式为center,使得其子组件在主轴上居中显示;设置Div组件的AlignItems样式为center,使得其子组件在交叉轴上居中显示。操作如下所示:
![zh-cn_image_0000001216448880](figures/zh-cn_image_0000001216448880.gif)
@@ -72,7 +71,7 @@ OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS
![zh-cn_image_0000001260928361](figures/zh-cn_image_0000001260928361.gif)
-5. **在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。** 第一个页面效果如下图所示:
+5. **在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。**第一个页面效果如下图所示:
![zh-cn_image_0000001216288558](figures/zh-cn_image_0000001216288558.png)
@@ -81,11 +80,11 @@ OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS
1. **创建第二个页面。**
在“**Project**”窗口,打开“**entry > src > main > js > MainAbility**”,右键点击“**pages**”文件夹,选择“**New > Visual**”,命名为“**second**”,单击“**Finish**”,即完成第二个页面的创建。可以看到文件目录结构如下:
- ![zh-cn_image_0000001261129245](figures/zh-cn_image_0000001261129245.png)
+ ![zh-cn_image_0000001223882030](figures/zh-cn_image_0000001223882030.png)
2. **[删除画布原有模板组件。](#delete_origin_content)**
-3. **[添加容器,设置Div容器的样式和属性](#add_container)**
+3. **[添加容器,设置Div容器的样式和属性。](#add_container)**
4. **添加文本。**
选中Text组件,拖至Div组件的中央区域。点击右侧属性样式栏中的属性图标![zh-cn_image_0000001260227453](figures/zh-cn_image_0000001260227453.png)(Properties),设置Text组件的Content属性为“Hi there”;点击右侧属性样式栏中的样式图标![zh-cn_image_0000001260107497](figures/zh-cn_image_0000001260107497.png)(Feature),设置组件的FontSize样式为60px;设置组件的TextAlign样式为center。再选中画布上的Text组件,拖动放大。操作如下所示:
@@ -104,7 +103,6 @@ OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS
1. **第一个页面跳转到第二个页面。**
在第一个页面中,跳转按钮绑定onclick方法,点击按钮时跳转到第二页。需同时处理js文件及visual文件。
-
- “**index.js**”示例如下:
```
@@ -119,10 +117,9 @@ OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS
}
```
- - “**index.viusal**”: 打开index.visual,选中画布上的Button组件。点击右侧属性样式栏中的事件图标![zh-cn_image_0000001215388136](figures/zh-cn_image_0000001215388136.png)(Events),鼠标点击Click事件的输入框,选择onclick,如下所示:
-
- ![zh-cn_image_0000001261137889](figures/zh-cn_image_0000001261137889.png)
-
+ - “**index.viusal**”: 打开index.visual,选中画布上的Button组件。点击右侧属性样式栏中的事件图标![zh-cn_image_0000001215388136](figures/zh-cn_image_0000001215388136.png)(Events),鼠标点击Click事件的输入框,选择onclick,如下所示:
+ ![zh-cn_image_0000001223722586](figures/zh-cn_image_0000001223722586.png)
+
2. **第二个页面返回到第一个页面。**
在第二个页面中,返回按钮绑定back方法,点击按钮时返回到第一页。
@@ -141,9 +138,9 @@ OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS
```
- “**second.viusal**”: 打开second.visual,选中画布上的Button组件。点击右侧属性样式栏中的事件图标![zh-cn_image_0000001215388262](figures/zh-cn_image_0000001215388262.png)(Events),鼠标点击Click事件的输入框,选择back,如下所示:
- ![zh-cn_image_0000001216618320](figures/zh-cn_image_0000001216618320.png)
+ ![zh-cn_image_0000001268082945](figures/zh-cn_image_0000001268082945.png)
-3. **打开index.visual或index.js文件,点击预览器中的** ![zh-cn_image_0000001261979271](figures/zh-cn_image_0000001261979271.png) **按钮进行刷新。** 效果如下图所示:
+3. **打开index.visual或index.js文件,点击预览器中的**![zh-cn_image_0000001261979271](figures/zh-cn_image_0000001261979271.png)**按钮进行刷新。**效果如下图所示:
![zh-cn_image_0000001261142799](figures/zh-cn_image_0000001261142799.png)
@@ -151,11 +148,10 @@ OpenHarmony低代码开发方式具有丰富的UI界面编辑功能,遵循[JS
1. 将搭载OpenHarmony标准系统的开发板与电脑连接。
-2. 点击**File >Project Structure** > **Project > Signing**界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
- ![zh-cn_image_0000001217527948](figures/zh-cn_image_0000001217527948.png)
-
-3. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001262207811](figures/zh-cn_image_0000001262207811.png)按钮运行效果如下图所示:
+2. 点击**File >Project Structure** > **Project > Signing Configs**界面勾选“**Automatically generate signing**”,等待自动签名完成即可,点击“**OK**”。如下图所示:
+ ![zh-cn_image_0000001268283201](figures/zh-cn_image_0000001268283201.png)
+3. 在编辑窗口右上角的工具栏,点击![zh-cn_image_0000001262207811](figures/zh-cn_image_0000001262207811.png)按钮运行。效果如下图所示:
![zh-cn_image_0000001262127855](figures/zh-cn_image_0000001262127855.png)
-恭喜您已经使用JS语言开发(低代码方式)完成了第一个OpenHarmony应用,来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
+恭喜您已经使用JS语言开发(低代码方式)完成了第一个OpenHarmony应用,快来[探索更多的OpenHarmony功能](../application-dev-guide.md)吧。
diff --git a/zh-cn/application-dev/quick-start/start-with-js.md b/zh-cn/application-dev/quick-start/start-with-js.md
index 4586c04052e9237fbc6406985c346da1bd4f9c9d..add0f3410064ae6a639c23ddf6d875c6cc19bd84 100644
--- a/zh-cn/application-dev/quick-start/start-with-js.md
+++ b/zh-cn/application-dev/quick-start/start-with-js.md
@@ -2,34 +2,37 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
-> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.900 Beta2**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
+> 为确保运行效果,本文以使用**DevEco Studio V3.0.0.900 Beta3**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
## 创建JS工程
1. 打开**DevEco Studio**,点击**File** > **New > Create Project**,选择模板“**Empty Ability**”,点击**Next**进行下一步配置。
- ![zh-cn_image_0000001215029852](figures/zh-cn_image_0000001215029852.png)
+ ![zh-cn_image_0000001223558814](figures/zh-cn_image_0000001223558814.png)
2. 进入配置工程界面,**UI Syntax**选择“**JS**”,其他参数保持默认设置即可。
- ![zh-cn_image_0000001217384890](figures/zh-cn_image_0000001217384890.png)
+ ![zh-cn_image_0000001223877162](figures/zh-cn_image_0000001223877162.png)
3. 点击**Finish**,工具会自动生成示例代码和相关资源,等待工程创建完成。
## JS工程项目文件
-- **entry:** OpenHarmony工程模块,编译构建生成一个Hap包。
- - **src > main > js** :用于存放js源码。
- - **src > main > js > MainAbility** :应用/服务的入口。
- - **src > main > js > MainAbility > i18n** :用于配置不同语言场景资源内容,比如应用文本词条、图片路径资源等。
- - **src > main > js > MainAbility > pages** :MainAbility包含的页面。
- - **src > main > js > MainAbility > app.js** :承载Ability生命周期。
- - **src > main > resources** :用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
- - **src > main > config.json** :模块配置文件。主要包含HAP包的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
- - **build-profile.json5** :模块的模块信息 、编译信息配置项,包括 buildOption target配置等。
- - **hvigorfile.js** :模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
-- **build-profile.json5** :应用级配置信息,包括签名、产品配置等。
-- **hvigorfile.js** :应用级编译构建任务脚本。
+- **entry**:OpenHarmony工程模块,编译构建生成一个Hap包。
+ - **src > main > js**:用于存放js源码。
+ - **src > main > js > MainAbility**:应用/服务的入口。
+ - **src > main > js > MainAbility > i18n**:用于配置不同语言场景资源内容,比如应用文本词条、图片路径等资源。
+ - **src > main > js > MainAbility > pages**:MainAbility包含的页面。
+ - **src > main > js > MainAbility > app.js**:承载Ability生命周期。
+
+ - **src > main > resources**:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
+ - **src > main > config.json**:模块配置文件。主要包含HAP包的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
+ - **build-profile.json5**:模块的模块信息 、编译信息配置项,包括 buildOption target配置等。
+ - **hvigorfile.js**:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
+
+- **build-profile.json5**:应用级配置信息,包括签名、产品配置等。
+
+- **hvigorfile.js**:应用级编译构建任务脚本。
## 构建第一个页面
@@ -55,7 +58,8 @@
Hello World
-
+
+
```
@@ -83,7 +87,8 @@
width: 100%;
margin: 10px;
}
- .btn{
+
+ .btn {
font-size: 60px;
font-weight: bold;
text-align: center;
@@ -93,7 +98,7 @@
}
```
-4. **在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。** 第一个页面效果如下图所示:
+4. **在编辑窗口右上角的侧边工具栏,点击Previewer,打开预览器。**第一个页面效果如下图所示:
![zh-cn_image_0000001216084724](figures/zh-cn_image_0000001216084724.png)
@@ -103,7 +108,7 @@
1. **创建第二个页面。**
在“**Project**”窗口,打开“**entry > src > main > js > MainAbility**”,右键点击“**pages**”文件夹,选择“**New > Page**”,命名为“**second**”,点击“**Finish**”,即完成第二个页面的创建。可以看到文件目录结构如下:
- ![zh-cn_image_0000001261233695](figures/zh-cn_image_0000001261233695.png)
+ ![zh-cn_image_0000001223877210](figures/zh-cn_image_0000001223877210.png)
2. **添加文本及按钮。**
参照第一个页面,在第二个页面添加文本、按钮及点击按钮绑定页面返回等。“**second.hml**”文件的示例如下:
@@ -111,11 +116,12 @@
```