提交 e8afcfc0 编写于 作者: C chyyy0213

modify interface use

Change-Id: Icca7e87a4ecf85661077153a820b57bc89b07a6b
Signed-off-by: Nchyyy0213 <chenhaiying3@huawei.com>
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
- [Application Development Overview](application-dev-guide.md) - [Application Development Overview](application-dev-guide.md)
- [DevEco Studio \(OpenHarmony\) User Guide](quick-start/deveco-studio-user-guide-for-openharmony.md) - [DevEco Studio \(OpenHarmony\) User Guide](quick-start/deveco-studio-user-guide-for-openharmony.md)
- [Directory Structure](quick-start/package-structure.md) - [Directory Structure](quick-start/package-structure.md)
- [Getting Started](quick-start/start.md)
- [ArkUI](ui/ui-arkui.md) - [ArkUI](ui/ui-arkui.md)
- [JavaScript-based Web-like Development Paradigm](ui/ui-arkui-js.md) - [JavaScript-based Web-like Development Paradigm](ui/ui-arkui-js.md)
......
...@@ -11,7 +11,4 @@ ...@@ -11,7 +11,4 @@
- [Configuring the OpenHarmony App Signature](configuring-openharmony-app-signature.md) - [Configuring the OpenHarmony App Signature](configuring-openharmony-app-signature.md)
- [Installing and Running Your OpenHarmony App](installing-openharmony-app.md) - [Installing and Running Your OpenHarmony App](installing-openharmony-app.md)
- [Directory Structure](package-structure.md) - [Directory Structure](package-structure.md)
- [Getting Started](start.md)
- [Preparations](start-overview.md)
- [Getting Started with JavaScript](start-with-js.md)
# Preparations<a name="EN-US_TOPIC_0000001063968051"></a>
## Task Description<a name="section2073881513322"></a>
This document is intended for novices at developing apps. You will learn the development procedure from the following sections to build two pages and implement redirection from the first page to the second one. The following figure shows how the pages look on the [Previewer](https://developer.harmonyos.com/en/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252).
For best results, use the [latest version of DevEco Studio](https://developer.harmonyos.com/en/develop/deveco-studio#download) for your development.
![](figures/3.png)
**Table 1** Comparison between ArkUI paradigms
<a name="table1663194773617"></a>
<table><thead align="left"><tr id="row20632174793610"><th class="cellrowborder" valign="top" width="17.88%" id="mcps1.2.4.1.1"><p id="p1863274783615"><a name="p1863274783615"></a><a name="p1863274783615"></a>Comparison Item</p>
</th>
<th class="cellrowborder" valign="top" width="41.730000000000004%" id="mcps1.2.4.1.2"><p id="p344415455554"><a name="p344415455554"></a><a name="p344415455554"></a>JavaScript-based Web-like Development Paradigm</p>
</th>
<th class="cellrowborder" valign="top" width="40.39%" id="mcps1.2.4.1.3"><p id="p20391115416559"><a name="p20391115416559"></a><a name="p20391115416559"></a>TypeScript-based Declarative Development Paradigm</p>
</th>
</tr>
</thead>
<tbody><tr id="row15632164733618"><td class="cellrowborder" valign="top" width="17.88%" headers="mcps1.2.4.1.1 "><p id="p166323477367"><a name="p166323477367"></a><a name="p166323477367"></a>Language</p>
</td>
<td class="cellrowborder" valign="top" width="41.730000000000004%" headers="mcps1.2.4.1.2 "><p id="p16321947123618"><a name="p16321947123618"></a><a name="p16321947123618"></a>JS</p>
</td>
<td class="cellrowborder" valign="top" width="40.39%" headers="mcps1.2.4.1.3 "><p id="p1563224773617"><a name="p1563224773617"></a><a name="p1563224773617"></a>eTS</p>
</td>
</tr>
<tr id="row17632144716361"><td class="cellrowborder" valign="top" width="17.88%" headers="mcps1.2.4.1.1 "><p id="p10632184713363"><a name="p10632184713363"></a><a name="p10632184713363"></a>Paradigm</p>
</td>
<td class="cellrowborder" valign="top" width="41.730000000000004%" headers="mcps1.2.4.1.2 "><p id="p13632447133617"><a name="p13632447133617"></a><a name="p13632447133617"></a>Web-like paradigm</p>
</td>
<td class="cellrowborder" valign="top" width="40.39%" headers="mcps1.2.4.1.3 "><p id="p15632114710367"><a name="p15632114710367"></a><a name="p15632114710367"></a>Declarative paradigm</p>
</td>
</tr>
<tr id="row2632134753615"><td class="cellrowborder" valign="top" width="17.88%" headers="mcps1.2.4.1.1 "><p id="p46321947183612"><a name="p46321947183612"></a><a name="p46321947183612"></a>Execution</p>
</td>
<td class="cellrowborder" valign="top" width="41.730000000000004%" headers="mcps1.2.4.1.2 "><p id="p1363244717361"><a name="p1363244717361"></a><a name="p1363244717361"></a>Handled by the framework; data-driven automatic UI update</p>
</td>
<td class="cellrowborder" valign="top" width="40.39%" headers="mcps1.2.4.1.3 "><p id="p1463274733610"><a name="p1463274733610"></a><a name="p1463274733610"></a>Handled by the framework; data-driven automatic UI update</p>
</td>
</tr>
<tr id="row126321547173610"><td class="cellrowborder" valign="top" width="17.88%" headers="mcps1.2.4.1.1 "><p id="p963314717366"><a name="p963314717366"></a><a name="p963314717366"></a>Advantages</p>
</td>
<td class="cellrowborder" valign="top" width="41.730000000000004%" headers="mcps1.2.4.1.2 "><p id="p963314710361"><a name="p963314710361"></a><a name="p963314710361"></a>Simple and easy to use</p>
</td>
<td class="cellrowborder" valign="top" width="40.39%" headers="mcps1.2.4.1.3 "><p id="p963315474367"><a name="p963315474367"></a><a name="p963315474367"></a>Simplified development, less memory usage, and higher running performance</p>
</td>
</tr>
</tbody>
</table>
## Before You Start<a name="section965173113911"></a>
1. Install DevEco Studio and configure the development environment. For details, see [Configuring the OpenHarmony SDK](configuring-openharmony-sdk.md).
2. Create a project as instructed in [Creating an OpenHarmony Project](create-openharmony-project.md).
- If you are using the JavaScript language, select **Empty Ability** for **Template** and **JS** for **Language**.
3. Use the [previewer](https://developer.harmonyos.com/en/docs/documentation/doc-guides/previewer-0000001054328973#EN-US_TOPIC_0000001056725592__section16523172216252) or [emulator](https://developer.harmonyos.com/en/docs/documentation/doc-guides/run_simulator-0000001053303709) to run the project.
Now you have created your first OpenHarmony project. You can continue the development by following instructions in [Getting Started with JavaScript](start-with-js.md).
# Getting Started with JavaScript<a name="EN-US_TOPIC_0000001168007068"></a>
For best results, use the [latest version of DevEco Studio](https://developer.harmonyos.com/en/develop/deveco-studio#download) for your development.
## Building the First Page<a name="section1754373063820"></a>
1. Add a **Text** and a **Button** component to the first page.
In the **Project** window, choose **entry** \> **src** \> **main** \> **js** \> **default** \> **pages** \> **index**, open the **index.hml** file, and add the components.
```
<!-- index.hml -->
<div class="container">
<!-- Add text. -->
<text class="text">
Hello World
</text>
<!-- Add a button, set its type to capsule, set button text to Next, and bind it to the launch event. -->
<button class="button" type="capsule" value="Next" onclick="launch"></button>
</div>
```
2. Open the **index.css** file and set text and button styles.
```
/* index.css */
.container {
flex-direction: column; /* Arrange container items vertically. */
justify-content: center; /* Center the items along the main axis of the container. */
align-items: center; /* Center the items along the cross axis of the container. */
width:100%;
height:100%;
}
/* Set the style for the component of the text class. */
.text{
font-size: 42px;
}
/* Set the style for the component of the button class. */
.button {
width: 240px;
height: 60px;
background-color: #007dff;
font-size: 30px;
text-color: white;
margin-top: 20px;
}
```
3. [Preview](https://developer.harmonyos.com/en/docs/documentation/doc-guides/previewer-0000001054328973#EN-US_TOPIC_0000001056725592__section16523172216252) or [run your app on the emulator](https://developer.harmonyos.com/en/docs/documentation/doc-guides/run_simulator-0000001053303709). The following figure shows the running effect.
![](figures/1.png)
## Creating the Second Page<a name="section11544830123813"></a>
1. In the **Project** window, choose **entry** \> **src** \> **main** \> **js** \> **default**, right-click the **pages** folder, and then choose **New** \> **JS Page**. Name the new page **details** and press **Enter**.
Below is the structure of the **pages** folder:
![](figures/en-us_image_0000001167850660.png)
2. Open the **details.hml** file, add the **<text\>** component, and set its layout.
```
<!-- details.hml -->
<div class="container">
<text class="text">
Hi there
</text>
</div>
```
3. Open the **details.css** file and set the text style.
```
/* details.css */
.container {
flex-direction: column;
justify-content: center;
align-items: center;
width:100%;
height:100%;
}
.text {
font-size: 42px;
text-align: center;
}
```
## Implementing Page Redirection<a name="section55441830123814"></a>
1. Open the **index.js** file and import the router module. The page router finds the target page based on its URI for the redirection. The sample code is as follows:
```
// index.js
import router from '@system.router';
export default {
launch() {
router.push ({
uri:'pages/details/details', // Specify the page to be redirected to.
})
}
}
```
2. [Preview](https://developer.harmonyos.com/en/docs/documentation/doc-guides/previewer-0000001054328973#EN-US_TOPIC_0000001056725592__section16523172216252) or [run your app on the emulator](https://developer.harmonyos.com/en/docs/documentation/doc-guides/run_simulator-0000001053303709) again. The following figure shows the running effect.
![](figures/2.png)
Congratulations! You have finished developing your app in JavaScript.
# Getting Started<a name="EN-US_TOPIC_0000001115740240"></a>
- **[Preparations](start-overview.md)**
- **[Getting Started with JavaScript](start-with-js.md)**
...@@ -2111,7 +2111,7 @@ let deviceName = gattClient.getDeviceName().then((data) => { ...@@ -2111,7 +2111,7 @@ let deviceName = gattClient.getDeviceName().then((data) => {
getRssiValue(callback: AsyncCallback&lt;number&gt;): void getRssiValue(callback: AsyncCallback&lt;number&gt;): void
Obtains the received signal strength indication (RSSI) of the peer BLE device. This method uses an asynchronous callback to return the result. It can be used only after a connection is set up by calling [connect](#connect-boolean). Obtains the received signal strength indication (RSSI) of the peer BLE device. This method uses an asynchronous callback to return the result. It can be used only after a connection is set up by calling [connect](#connect).
**Parameters:** **Parameters:**
...@@ -2140,7 +2140,7 @@ let rssi = gattClient.getRssiValue((err, data)=> { ...@@ -2140,7 +2140,7 @@ let rssi = gattClient.getRssiValue((err, data)=> {
getRssiValue(): Promise&lt;number&gt; getRssiValue(): Promise&lt;number&gt;
Obtains the RSSI of the peer BLE device. This method uses a promise to return the result. It can be used only after a connection is set up by calling [connect](#connect-boolean). Obtains the RSSI of the peer BLE device. This method uses a promise to return the result. It can be used only after a connection is set up by calling [connect](#connect).
**Return values:** **Return values:**
......
...@@ -8,7 +8,7 @@ SystemCapability.DistributedDataManager.RelationalStore.Core ...@@ -8,7 +8,7 @@ SystemCapability.DistributedDataManager.RelationalStore.Core
## Usage<a name="section42211227142416"></a> ## Usage<a name="section42211227142416"></a>
The **resultSet** object is obtained by using [**RdbStore.query\(\)**](js-apis-data-rdb.md#section6231155031814). The **resultSet** object is obtained by using [**RdbStore.query\(\)**](js-apis-data-rdb.md#query).
``` ```
import dataRdb from '@ohos.data.rdb'; import dataRdb from '@ohos.data.rdb';
...@@ -795,4 +795,3 @@ Closes the result set. ...@@ -795,4 +795,3 @@ Closes the result set.
}) })
``` ```
...@@ -22,7 +22,7 @@ Provides the constants of all rule types. ...@@ -22,7 +22,7 @@ Provides the constants of all rule types.
| Name| Type| Description| | Name| Type| Description|
| ---------------------------------- | -------- | ------------------------------------------------------ | | ---------------------------------- | -------- | ------------------------------------------------------ |
| RULE_CAUTION_PRINT_LOG | BigInt | Alarm rule, which is programmed to print a log when an alarm is generated.| | RULE_CAUTION_PRINT_LOG | BigInt | Alarm rule, which is programmed to print a log when an alarm is generated.|
| RULE_CAUTION_TRIGGER_CRASH | BigInt | Alarm rule. When an alarm is generated, the application exits.| | RULE_CAUTION_TRIGGER_CRASH | BigInt | Alarm rule, which is programmed to force the application to exit when an alarm is generated.|
| RULE_THREAD_CHECK_SLOW_PROCESS | BigInt | Caution rule, which is programmed to detect whether any time-consuming function is invoked.| | RULE_THREAD_CHECK_SLOW_PROCESS | BigInt | Caution rule, which is programmed to detect whether any time-consuming function is invoked.|
| RULE_CHECK_SLOW_EVENT | BigInt | Caution rule, which is programmed to detect whether the event distribution or processing time has exceeded the specified time threshold.| | RULE_CHECK_SLOW_EVENT | BigInt | Caution rule, which is programmed to detect whether the event distribution or processing time has exceeded the specified time threshold.|
| RULE_CHECK_ABILITY_CONNECTION_LEAK | BigInt | Caution rule, which is programmed to detect whether ability leakage has occurred.| | RULE_CHECK_ABILITY_CONNECTION_LEAK | BigInt | Caution rule, which is programmed to detect whether ability leakage has occurred.|
......
...@@ -19,9 +19,9 @@ import settings from '@ohos.settings'; ...@@ -19,9 +19,9 @@ import settings from '@ohos.settings';
None None
## settings.getUri ## settings.getUriSync
getUri(name: string): string getUriSync(name: string): string
Obtains the URI of a data item. Obtains the URI of a data item.
...@@ -38,13 +38,13 @@ Obtains the URI of a data item. ...@@ -38,13 +38,13 @@ Obtains the URI of a data item.
- Example - Example
``` ```
// Obtain the URI of a data item. // Obtain the URI of a data item.
let urivar = settings.getUri('settings.screen.brightness'); let urivar = settings.getUriSync('settings.screen.brightness');
``` ```
## settings.getValue ## settings.getValueSync
getValue(dataAbilityHelper: DataAbilityHelper, name: string, defValue: string): string getValueSync(dataAbilityHelper: DataAbilityHelper, name: string, defValue: string): string
Obtains the value of a data item. Obtains the value of a data item.
...@@ -66,18 +66,18 @@ Obtains the value of a data item. ...@@ -66,18 +66,18 @@ Obtains the value of a data item.
// Obtain the value of 'settings.screen.brightness' (this data item already exists in the database). // Obtain the value of 'settings.screen.brightness' (this data item already exists in the database).
let brightness = 'settings.screen.brightness'; let brightness = 'settings.screen.brightness';
let uri = settings.getUri(brightness); let uri = settings.getUriSync(brightness);
let helper = featureAbility.acquireDataAbilityHelper(uri); let helper = featureAbility.acquireDataAbilityHelper(uri);
let value = settings.getValue(helper, brightness, '10'); let value = settings.getValueSync(helper, brightness, '10');
``` ```
## settings.setValue ## settings.setValueSync
setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: string): boolean setValueSync(dataAbilityHelper: DataAbilityHelper, name: string, value: string): boolean
Sets the value of a data item. Sets the value of a data item.
If the specified data item exists in the database, the **setValue** method updates the value of the data item. If the data item does not exist in the database, the **setValue** method inserts the data item into the database. If the specified data item exists in the database, the **setValueSync** method updates the value of the data item. If the data item does not exist in the database, the **setValueSync** method inserts the data item into the database.
To use this method, you must have the **ohos.permission.WRITE_SYSTEM_SETTING** permission. To use this method, you must have the **ohos.permission.WRITE_SYSTEM_SETTING** permission.
...@@ -97,10 +97,10 @@ To use this method, you must have the **ohos.permission.WRITE_SYSTEM_SETTING** p ...@@ -97,10 +97,10 @@ To use this method, you must have the **ohos.permission.WRITE_SYSTEM_SETTING** p
``` ```
import featureAbility from '@ohos.featureAbility'; import featureAbility from '@ohos.featureAbility';
// Update the value of 'settings.screen.brightness'. (As this data item exists in the database, the setValue method // Update the value of 'settings.screen.brightness'. (As this data item exists in the database, the setValueSync method
will update the value of the data item.) will update the value of the data item.)
let brightness = 'settings.screen.brightness'; let brightness = 'settings.screen.brightness';
let uri = settings.getUri(brightness); let uri = settings.getUriSync(brightness);
let helper = featureAbility.acquireDataAbilityHelper(uri); let helper = featureAbility.acquireDataAbilityHelper(uri);
let ret = settings.setValue(helper, brightness, '100'); let ret = settings.setValueSync(helper, brightness, '100');
``` ```
# WebGL # webgl
> ![icon-note.gif](public_sys-resources/icon-note.gif) **Note:** > ![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. > 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.
This module provides WebGL APIs that correspond to the OpenGL ES 2.0 feature set. For more information, see [WebGL™](https://www.khronos.org/registry/webgl/specs/latest/1.0/). This module provides WebGL APIs that correspond to the OpenGL ES 2.0 feature set. For more information, see [WebGL™](https://www.khronos.org/registry/webgl/specs/latest/2.0/).
## Modules to Import ## Modules to Import
``` ```
import webgl from 'ohos.webglnapi' import webgl from '@ohos.webglnapi';
``` ```
## System Capabilities ## Invoking Method
SystemCapability.Graphic.Graphic2D.WebGL Create a **&lt;canvas&gt;** component in the HML file. The following is an example:
## Invoking Method ```
<div class="container">
<canvas ref="canvas1" style="width : 400px; height : 200px; background-color : lightyellow;"></canvas>
<button class="btn-button" onclick="BtnDraw2D">BtnDraw2D</button>
</div>
```
Obtain the **&lt;canvas&gt;** component instance in the JS file. The following is an example:
``` ```
// Obtain the <canvas\> component instance. // Obtain the <canvas> component instance.
const el = this.$refs.canvas const el = this.$refs.canvas1;
// Obtain the WebGL context from the <canvas\> component instance. // Obtain the WebGL context from the <canvas> component instance.
const gl = el.getContext('webgl'); const gl = el.getContext('webgl');
// Call the WebGL API. // Call the WebGL API.
gl.clearColor(0.0, 0.0, 0.0, 1.0); gl.clearColor(0.0, 0.0, 0.0, 1.0);
gl.flush();
``` ```
## GLenum ## Type
| Name| Type|
| -------- | -------- |
| GLenum | number |
## GLboolean
| Name| Type|
| -------- | -------- |
| GLboolean | boolean |
## GLbitfield
| Name| Type|
| -------- | -------- |
| GLbitfield | number |
## GLbyte
| Name| Type|
| -------- | -------- |
| GLbyte | number |
## GLshort
| Name| Type|
| -------- | -------- |
| GLshort | number |
## GLint
| Name| Type|
| -------- | -------- |
| GLint | number |
## GLsizei
| Name| Type|
| -------- | -------- |
| GLsizei | number |
## GLintptr
| Name| Type|
| -------- | -------- |
| GLintptr | number |
## GLsizeiptr
| Name| Type|
| -------- | -------- |
| GLsizeiptr | number |
## GLubyte
| Name| Type|
| -------- | -------- |
| GLubyte | number |
## GLushort
| Name| Type|
| -------- | -------- |
| GLushort | number |
## GLuint
| Name| Type|
| -------- | -------- |
| GLuint | number |
## GLfloat
| Name| Type|
| -------- | -------- |
| GLfloat | number |
## GLclampf
| Name| Type|
| -------- | -------- |
| GLclampf | number |
## TexImageSource
| Name| Type|
| -------- | -------- |
| TexImageSource | ImageData |
## Float32List
| Name| Type|
| -------- | -------- |
| Float32List | array |
## Int32List
| Name| Type|
| -------- | -------- |
| Int32List | array |
**Table1** Type
## WebGLPowerPreference | Name | Type | Description |
| -------- | -------- | -------- |
| Name| Type| | GLenum | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLboolean | boolean | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLbitfield | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLbyte | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLshort | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLint | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLsizei | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLintptr | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLsizeiptr | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLubyte | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLushort | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLuint | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLfloat | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| GLclampf | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| TexImageSource | ImageData | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| Float32List | array | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| Int32List | array | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLPowerPreference | string | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
## Interface
**Table2** Interface
| Name | Description |
| -------- | -------- | | -------- | -------- |
| WebGLPowerPreference | string | | [WebGLContextAttributes](#webglcontextattributes) | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLBuffer | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLFrameBuffer | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
## webgl.WebGLContextAttributes | WebGLProgram | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLRenderbuffer | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLShader | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLTexture | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLUniformLocation | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| [WebGLActiveInfo](#webglactiveinfo) | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| [WebGLShaderPrecisionFormat](#webglshaderprecisionformat) | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| [WebGLRenderingContextBase](#webglrenderingcontextbase) | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
| [WebGLRenderingContextOverloads](#webglrenderingcontextoverloads) | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL |
## WebGLContextAttributes
WebGLContextAttributes WebGLContextAttributes
| Name| Type| Mandatory| | Name | Type | Mandatory |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| alpha | boolean | No| | alpha | boolean | No |
| depth | boolean | No| | depth | boolean | No |
| stencil | boolean | No| | stencil | boolean | No |
| antialias | boolean | No| | antialias | boolean | No |
| premultipliedAlpha | boolean | No| | premultipliedAlpha | boolean | No |
| preserveDrawingBuffer | boolean | No| | preserveDrawingBuffer | boolean | No |
| powerPreference | WebGLPowerPreference | No| | powerPreference | WebGLPowerPreference | No |
| failIfMajorPerformanceCaveat | boolean | No| | failIfMajorPerformanceCaveat | boolean | No |
| desynchronized | boolean | No| | desynchronized | boolean | No |
## webgl.WebGLBuffer
WebGLBuffer
## webgl.WebGLFrameBuffer
WebGLFrameBuffer
## webgl.WebGLProgram
WebGLProgram
## webgl.WebGLRenderbuffer
WebGLRenderbuffer
## webgl.WebGLShader
WebGLShader
## webgl.WebGLTexture
WebGLTexture
## webgl.WebGLUniformLocation
WebGLUniformLocation
## webgl.WebGLActiveInfo ## WebGLActiveInfo
WebGLActiveInfo WebGLActiveInfo
| Name| Type| Mandatory| | Name | Type | Mandatory |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| size | [GLint](#glint) | Yes| | size | GLint | Yes |
| type | [GLenum](#glenum) | Yes| | type | GLenum | Yes |
| name | string | Yes| | name | string | Yes |
## webgl.WebGLShaderPrecisionFormat ## WebGLShaderPrecisionFormat
WebGLShaderPrecisionFormat WebGLShaderPrecisionFormat
| Name| Type| Mandatory| | Name | Type | Mandatory |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| rangeMin | [GLint](#glint) | Yes| | rangeMin | GLint | Yes |
| rangeMax | [GLint](#glint) | Yes| | rangeMax | GLint | Yes |
| precision | [GLint](#glint) | Yes| | precision | GLint | Yes |
## webgl.WebGLRenderingContextBase ## WebGLRenderingContextBase
WebGLRenderingContextBase WebGLRenderingContextBase
### Attributes ### Attributes
| Name| Type| Mandatory| | Name | Type | Mandatory |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| DEPTH_BUFFER_BIT | [GLenum](#glenum) | Yes| | DEPTH_BUFFER_BIT | GLenum | Yes |
| STENCIL_BUFFER_BIT | [GLenum](#glenum) | Yes| | STENCIL_BUFFER_BIT | GLenum | Yes |
| COLOR_BUFFER_BIT | [GLenum](#glenum) | Yes| | COLOR_BUFFER_BIT | GLenum | Yes |
| POINTS | [GLenum](#glenum) | Yes| | POINTS | GLenum | Yes |
| LINES | [GLenum](#glenum) | Yes| | LINES | GLenum | Yes |
| LINE_LOOP | [GLenum](#glenum) | Yes| | LINE_LOOP | GLenum | Yes |
| LINE_STRIP | [GLenum](#glenum) | Yes| | LINE_STRIP | GLenum | Yes |
| TRIANGLES | [GLenum](#glenum) | Yes| | TRIANGLES | GLenum | Yes |
| TRIANGLE_STRIP | [GLenum](#glenum) | Yes| | TRIANGLE_STRIP | GLenum | Yes |
| TRIANGLE_FAN | [GLenum](#glenum) | Yes| | TRIANGLE_FAN | GLenum | Yes |
| ZERO | [GLenum](#glenum) | Yes| | ZERO | GLenum | Yes |
| ONE | [GLenum](#glenum) | Yes| | ONE | GLenum | Yes |
| SRC_COLOR | [GLenum](#glenum) | Yes| | SRC_COLOR | GLenum | Yes |
| ONE_MINUS_SRC_COLOR | [GLenum](#glenum) | Yes| | ONE_MINUS_SRC_COLOR | GLenum | Yes |
| SRC_ALPHA | [GLenum](#glenum) | Yes| | SRC_ALPHA | GLenum | Yes |
| ONE_MINUS_SRC_ALPHA | [GLenum](#glenum) | Yes| | ONE_MINUS_SRC_ALPHA | GLenum | Yes |
| DST_ALPHA | [GLenum](#glenum) | Yes| | DST_ALPHA | GLenum | Yes |
| ONE_MINUS_DST_ALPHA | [GLenum](#glenum) | Yes| | ONE_MINUS_DST_ALPHA | GLenum | Yes |
| DST_COLOR | [GLenum](#glenum) | Yes| | DST_COLOR | GLenum | Yes |
| ONE_MINUS_DST_COLOR | [GLenum](#glenum) | Yes| | ONE_MINUS_DST_COLOR | GLenum | Yes |
| SRC_ALPHA_SATURATE | [GLenum](#glenum) | Yes| | SRC_ALPHA_SATURATE | GLenum | Yes |
| FUNC_ADD | [GLenum](#glenum) | Yes| | FUNC_ADD | GLenum | Yes |
| BLEND_EQUATION | [GLenum](#glenum) | Yes| | BLEND_EQUATION | GLenum | Yes |
| BLEND_EQUATION_RGB | [GLenum](#glenum) | Yes| | BLEND_EQUATION_RGB | GLenum | Yes |
| BLEND_EQUATION_ALPHA | [GLenum](#glenum) | Yes| | BLEND_EQUATION_ALPHA | GLenum | Yes |
| FUNC_SUBTRACT | [GLenum](#glenum) | Yes| | FUNC_SUBTRACT | GLenum | Yes |
| FUNC_REVERSE_SUBTRACT | [GLenum](#glenum) | Yes| | FUNC_REVERSE_SUBTRACT | GLenum | Yes |
| BLEND_DST_RGB | [GLenum](#glenum) | Yes| | BLEND_DST_RGB | GLenum | Yes |
| BLEND_SRC_RGB | [GLenum](#glenum) | Yes| | BLEND_SRC_RGB | GLenum | Yes |
| BLEND_DST_ALPHA | [GLenum](#glenum) | Yes| | BLEND_DST_ALPHA | GLenum | Yes |
| BLEND_SRC_ALPHA | [GLenum](#glenum) | Yes| | BLEND_SRC_ALPHA | GLenum | Yes |
| CONSTANT_COLOR | [GLenum](#glenum) | Yes| | CONSTANT_COLOR | GLenum | Yes |
| ONE_MINUS_CONSTANT_COLOR | [GLenum](#glenum) | Yes| | ONE_MINUS_CONSTANT_COLOR | GLenum | Yes |
| CONSTANT_ALPHA | [GLenum](#glenum) | Yes| | CONSTANT_ALPHA | GLenum | Yes |
| ONE_MINUS_CONSTANT_ALPHA | [GLenum](#glenum) | Yes| | ONE_MINUS_CONSTANT_ALPHA | GLenum | Yes |
| BLEND_COLOR | [GLenum](#glenum) | Yes| | BLEND_COLOR | GLenum | Yes |
| ARRAY_BUFFER | [GLenum](#glenum) | Yes| | ARRAY_BUFFER | GLenum | Yes |
| ELEMENT_ARRAY_BUFFER | [GLenum](#glenum) | Yes| | ELEMENT_ARRAY_BUFFER | GLenum | Yes |
| ARRAY_BUFFER_BINDING | [GLenum](#glenum) | Yes| | ARRAY_BUFFER_BINDING | GLenum | Yes |
| ELEMENT_ARRAY_BUFFER_BINDING | [GLenum](#glenum) | Yes| | ELEMENT_ARRAY_BUFFER_BINDING | GLenum | Yes |
| STREAM_DRAW | [GLenum](#glenum) | Yes| | STREAM_DRAW | GLenum | Yes |
| STATIC_DRAW | [GLenum](#glenum) | Yes| | STATIC_DRAW | GLenum | Yes |
| DYNAMIC_DRAW | [GLenum](#glenum) | Yes| | DYNAMIC_DRAW | GLenum | Yes |
| BUFFER_SIZE | [GLenum](#glenum) | Yes| | BUFFER_SIZE | GLenum | Yes |
| BUFFER_USAGE | [GLenum](#glenum) | Yes| | BUFFER_USAGE | GLenum | Yes |
| CURRENT_VERTEX_ATTRIB | [GLenum](#glenum) | Yes| | CURRENT_VERTEX_ATTRIB | GLenum | Yes |
| FRONT | [GLenum](#glenum) | Yes| | FRONT | GLenum | Yes |
| BACK | [GLenum](#glenum) | Yes| | BACK | GLenum | Yes |
| FRONT_AND_BACK | [GLenum](#glenum) | Yes| | FRONT_AND_BACK | GLenum | Yes |
| CULL_FACE | [GLenum](#glenum) | Yes| | CULL_FACE | GLenum | Yes |
| BLEND | [GLenum](#glenum) | Yes| | BLEND | GLenum | Yes |
| DITHER | [GLenum](#glenum) | Yes| | DITHER | GLenum | Yes |
| STENCIL_TEST | [GLenum](#glenum) | Yes| | STENCIL_TEST | GLenum | Yes |
| DEPTH_TEST | [GLenum](#glenum) | Yes| | DEPTH_TEST | GLenum | Yes |
| SCISSOR_TEST | [GLenum](#glenum) | Yes| | SCISSOR_TEST | GLenum | Yes |
| POLYGON_OFFSET_FILL | [GLenum](#glenum) | Yes| | POLYGON_OFFSET_FILL | GLenum | Yes |
| SAMPLE_ALPHA_TO_COVERAGE | [GLenum](#glenum) | Yes| | SAMPLE_ALPHA_TO_COVERAGE | GLenum | Yes |
| SAMPLE_COVERAGE | [GLenum](#glenum) | Yes| | SAMPLE_COVERAGE | GLenum | Yes |
| NO_ERROR | [GLenum](#glenum) | Yes| | NO_ERROR | GLenum | Yes |
| INVALID_ENUM | [GLenum](#glenum) | Yes| | INVALID_ENUM | GLenum | Yes |
| INVALID_VALUE | [GLenum](#glenum) | Yes| | INVALID_VALUE | GLenum | Yes |
| INVALID_OPERATION | [GLenum](#glenum) | Yes| | INVALID_OPERATION | GLenum | Yes |
| OUT_OF_MEMORY | [GLenum](#glenum) | Yes| | OUT_OF_MEMORY | GLenum | Yes |
| CW | [GLenum](#glenum) | Yes| | CW | GLenum | Yes |
| CCW | [GLenum](#glenum) | Yes| | CCW | GLenum | Yes |
| ALIASED_POINT_SIZE_RANGE | [GLenum](#glenum) | Yes| | LINE_WIDTH | GLenum | Yes |
| ALIASED_LINE_WIDTH_RANGE | [GLenum](#glenum) | Yes| | ALIASED_POINT_SIZE_RANGE | GLenum | Yes |
| CULL_FACE_MODE | [GLenum](#glenum) | Yes| | ALIASED_LINE_WIDTH_RANGE | GLenum | Yes |
| FRONT_FACE | [GLenum](#glenum) | Yes| | CULL_FACE_MODE | GLenum | Yes |
| DEPTH_RANGE | [GLenum](#glenum) | Yes| | FRONT_FACE | GLenum | Yes |
| DEPTH_WRITEMASK | [GLenum](#glenum) | Yes| | DEPTH_RANGE | GLenum | Yes |
| DEPTH_CLEAR_VALUE | [GLenum](#glenum) | Yes| | DEPTH_WRITEMASK | GLenum | Yes |
| DEPTH_FUNC | [GLenum](#glenum) | Yes| | DEPTH_CLEAR_VALUE | GLenum | Yes |
| STENCIL_CLEAR_VALUE | [GLenum](#glenum) | Yes| | DEPTH_FUNC | GLenum | Yes |
| STENCIL_FUNC | [GLenum](#glenum) | Yes| | STENCIL_CLEAR_VALUE | GLenum | Yes |
| STENCIL_FAIL | [GLenum](#glenum) | Yes| | STENCIL_FUNC | GLenum | Yes |
| STENCIL_PASS_DEPTH_FAIL | [GLenum](#glenum) | Yes| | STENCIL_FAIL | GLenum | Yes |
| STENCIL_PASS_DEPTH_PASS | [GLenum](#glenum) | Yes| | STENCIL_PASS_DEPTH_FAIL | GLenum | Yes |
| STENCIL_REF | [GLenum](#glenum) | Yes| | STENCIL_PASS_DEPTH_PASS | GLenum | Yes |
| STENCIL_VALUE_MASK | [GLenum](#glenum) | Yes| | STENCIL_REF | GLenum | Yes |
| STENCIL_WRITEMASK | [GLenum](#glenum) | Yes| | STENCIL_VALUE_MASK | GLenum | Yes |
| STENCIL_BACK_FUNC | [GLenum](#glenum) | Yes| | STENCIL_WRITEMASK | GLenum | Yes |
| STENCIL_BACK_FAIL | [GLenum](#glenum) | Yes| | STENCIL_BACK_FUNC | GLenum | Yes |
| STENCIL_BACK_PASS_DEPTH_FAIL | [GLenum](#glenum) | Yes| | STENCIL_BACK_FAIL | GLenum | Yes |
| STENCIL_BACK_PASS_DEPTH_PASS | [GLenum](#glenum) | Yes| | STENCIL_BACK_PASS_DEPTH_FAIL | GLenum | Yes |
| STENCIL_BACK_REF | [GLenum](#glenum) | Yes| | STENCIL_BACK_PASS_DEPTH_PASS | GLenum | Yes |
| STENCIL_BACK_VALUE_MASK | [GLenum](#glenum) | Yes| | STENCIL_BACK_REF | GLenum | Yes |
| STENCIL_BACK_WRITEMASK | [GLenum](#glenum) | Yes| | STENCIL_BACK_VALUE_MASK | GLenum | Yes |
| VIEWPORT | [GLenum](#glenum) | Yes| | STENCIL_BACK_WRITEMASK | GLenum | Yes |
| SCISSOR_BOX | [GLenum](#glenum) | Yes| | VIEWPORT | GLenum | Yes |
| COLOR_CLEAR_VALUE | [GLenum](#glenum) | Yes| | SCISSOR_BOX | GLenum | Yes |
| COLOR_WRITEMASK | [GLenum](#glenum) | Yes| | COLOR_CLEAR_VALUE | GLenum | Yes |
| UNPACK_ALIGNMENT | [GLenum](#glenum) | Yes| | COLOR_WRITEMASK | GLenum | Yes |
| PACK_ALIGNMENT | [GLenum](#glenum) | Yes| | UNPACK_ALIGNMENT | GLenum | Yes |
| MAX_TEXTURE_SIZE | [GLenum](#glenum) | Yes| | PACK_ALIGNMENT | GLenum | Yes |
| MAX_VIEWPORT_DIMS | [GLenum](#glenum) | Yes| | MAX_TEXTURE_SIZE | GLenum | Yes |
| SUBPIXEL_BITS | [GLenum](#glenum) | Yes| | MAX_VIEWPORT_DIMS | GLenum | Yes |
| RED_BITS | [GLenum](#glenum) | Yes| | SUBPIXEL_BITS | GLenum | Yes |
| GREEN_BITS | [GLenum](#glenum) | Yes| | RED_BITS | GLenum | Yes |
| BLUE_BITS | [GLenum](#glenum) | Yes| | GREEN_BITS | GLenum | Yes |
| ALPHA_BITS | [GLenum](#glenum) | Yes| | BLUE_BITS | GLenum | Yes |
| DEPTH_BITS | [GLenum](#glenum) | Yes| | ALPHA_BITS | GLenum | Yes |
| STENCIL_BITS | [GLenum](#glenum) | Yes| | DEPTH_BITS | GLenum | Yes |
| POLYGON_OFFSET_UNITS | [GLenum](#glenum) | Yes| | STENCIL_BITS | GLenum | Yes |
| POLYGON_OFFSET_FACTOR | [GLenum](#glenum) | Yes| | POLYGON_OFFSET_UNITS | GLenum | Yes |
| TEXTURE_BINDING_2D | [GLenum](#glenum) | Yes| | POLYGON_OFFSET_FACTOR | GLenum | Yes |
| SAMPLE_BUFFERS | [GLenum](#glenum) | Yes| | TEXTURE_BINDING_2D | GLenum | Yes |
| SAMPLES | [GLenum](#glenum) | Yes| | SAMPLE_BUFFERS | GLenum | Yes |
| SAMPLE_COVERAGE_VALUE | [GLenum](#glenum) | Yes| | SAMPLES | GLenum | Yes |
| SAMPLE_COVERAGE_INVERT | [GLenum](#glenum) | Yes| | SAMPLE_COVERAGE_VALUE | GLenum | Yes |
| COMPRESSED_TEXTURE_FORMATS | [GLenum](#glenum) | Yes| | SAMPLE_COVERAGE_INVERT | GLenum | Yes |
| DONT_CARE | [GLenum](#glenum) | Yes| | COMPRESSED_TEXTURE_FORMATS | GLenum | Yes |
| FASTEST | [GLenum](#glenum) | Yes| | DONT_CARE | GLenum | Yes |
| NICEST | [GLenum](#glenum) | Yes| | FASTEST | GLenum | Yes |
| GENERATE_MIPMAP_HINT | [GLenum](#glenum) | Yes| | NICEST | GLenum | Yes |
| BYTE | [GLenum](#glenum) | Yes| | GENERATE_MIPMAP_HINT | GLenum | Yes |
| UNSIGNED_BYTE | [GLenum](#glenum) | Yes| | BYTE | GLenum | Yes |
| SHORT | [GLenum](#glenum) | Yes| | UNSIGNED_BYTE | GLenum | Yes |
| UNSIGNED_SHORT | [GLenum](#glenum) | Yes| | SHORT | GLenum | Yes |
| INT | [GLenum](#glenum) | Yes| | UNSIGNED_SHORT | GLenum | Yes |
| UNSIGNED_INT | [GLenum](#glenum) | Yes| | INT | GLenum | Yes |
| FLOAT | [GLenum](#glenum) | Yes| | UNSIGNED_INT | GLenum | Yes |
| DEPTH_COMPONENT | [GLenum](#glenum) | Yes| | FLOAT | GLenum | Yes |
| ALPHA | [GLenum](#glenum) | Yes| | DEPTH_COMPONENT | GLenum | Yes |
| RGB | [GLenum](#glenum) | Yes| | ALPHA | GLenum | Yes |
| RGBA | [GLenum](#glenum) | Yes| | RGB | GLenum | Yes |
| LUMINANCE | [GLenum](#glenum) | Yes| | RGBA | GLenum | Yes |
| LUMINANCE_ALPHA | [GLenum](#glenum) | Yes| | LUMINANCE | GLenum | Yes |
| UNSIGNED_SHORT_4_4_4_4 | [GLenum](#glenum) | Yes| | LUMINANCE_ALPHA | GLenum | Yes |
| UNSIGNED_SHORT_5_5_5_1 | [GLenum](#glenum) | Yes| | UNSIGNED_SHORT_4_4_4_4 | GLenum | Yes |
| UNSIGNED_SHORT_5_6_5 | [GLenum](#glenum) | Yes| | UNSIGNED_SHORT_5_5_5_1 | GLenum | Yes |
| FRAGMENT_SHADER | [GLenum](#glenum) | Yes| | UNSIGNED_SHORT_5_6_5 | GLenum | Yes |
| VERTEX_SHADER | [GLenum](#glenum) | Yes| | FRAGMENT_SHADER | GLenum | Yes |
| MAX_VERTEX_ATTRIBS | [GLenum](#glenum) | Yes| | VERTEX_SHADER | GLenum | Yes |
| MAX_VERTEX_UNIFORM_VECTORS | [GLenum](#glenum) | Yes| | MAX_VERTEX_ATTRIBS | GLenum | Yes |
| MAX_VARYING_VECTORS | [GLenum](#glenum) | Yes| | MAX_VERTEX_UNIFORM_VECTORS | GLenum | Yes |
| MAX_COMBINED_TEXTURE_IMAGE_UNITS | [GLenum](#glenum) | Yes| | MAX_VARYING_VECTORS | GLenum | Yes |
| MAX_VERTEX_TEXTURE_IMAGE_UNITS | [GLenum](#glenum) | Yes| | MAX_COMBINED_TEXTURE_IMAGE_UNITS | GLenum | Yes |
| MAX_TEXTURE_IMAGE_UNITS | [GLenum](#glenum) | Yes| | MAX_VERTEX_TEXTURE_IMAGE_UNITS | GLenum | Yes |
| MAX_FRAGMENT_UNIFORM_VECTORS | [GLenum](#glenum) | Yes| | MAX_TEXTURE_IMAGE_UNITS | GLenum | Yes |
| SHADER_TYPE | [GLenum](#glenum) | Yes| | MAX_FRAGMENT_UNIFORM_VECTORS | GLenum | Yes |
| DELETE_STATUS | [GLenum](#glenum) | Yes| | SHADER_TYPE | GLenum | Yes |
| LINK_STATUS | [GLenum](#glenum) | Yes| | DELETE_STATUS | GLenum | Yes |
| VALIDATE_STATUS | [GLenum](#glenum) | Yes| | LINK_STATUS | GLenum | Yes |
| ATTACHED_SHADERS | [GLenum](#glenum) | Yes| | VALIDATE_STATUS | GLenum | Yes |
| ACTIVE_UNIFORMS | [GLenum](#glenum) | Yes| | ATTACHED_SHADERS | GLenum | Yes |
| ACTIVE_ATTRIBUTES | [GLenum](#glenum) | Yes| | ACTIVE_UNIFORMS | GLenum | Yes |
| SHADING_LANGUAGE_VERSION | [GLenum](#glenum) | Yes| | ACTIVE_ATTRIBUTES | GLenum | Yes |
| CURRENT_PROGRAM | [GLenum](#glenum) | Yes| | SHADING_LANGUAGE_VERSION | GLenum | Yes |
| NEVER | [GLenum](#glenum) | Yes| | CURRENT_PROGRAM | GLenum | Yes |
| LESS | [GLenum](#glenum) | Yes| | NEVER | GLenum | Yes |
| EQUAL | [GLenum](#glenum) | Yes| | LESS | GLenum | Yes |
| LEQUAL | [GLenum](#glenum) | Yes| | EQUAL | GLenum | Yes |
| GREATER | [GLenum](#glenum) | Yes| | LEQUAL | GLenum | Yes |
| NOTEQUAL | [GLenum](#glenum) | Yes| | GREATER | GLenum | Yes |
| GEQUAL | [GLenum](#glenum) | Yes| | NOTEQUAL | GLenum | Yes |
| ALWAYS | [GLenum](#glenum) | Yes| | GEQUAL | GLenum | Yes |
| KEEP | [GLenum](#glenum) | Yes| | ALWAYS | GLenum | Yes |
| REPLACE | [GLenum](#glenum) | Yes| | KEEP | GLenum | Yes |
| INCR | [GLenum](#glenum) | Yes| | REPLACE | GLenum | Yes |
| DECR | [GLenum](#glenum) | Yes| | INCR | GLenum | Yes |
| INVERT | [GLenum](#glenum) | Yes| | DECR | GLenum | Yes |
| INCR_WRAP | [GLenum](#glenum) | Yes| | INVERT | GLenum | Yes |
| DECR_WRAP | [GLenum](#glenum) | Yes| | INCR_WRAP | GLenum | Yes |
| VENDOR | [GLenum](#glenum) | Yes| | DECR_WRAP | GLenum | Yes |
| RENDERER | [GLenum](#glenum) | Yes| | VENDOR | GLenum | Yes |
| VERSION | [GLenum](#glenum) | Yes| | RENDERER | GLenum | Yes |
| NEAREST | [GLenum](#glenum) | Yes| | VERSION | GLenum | Yes |
| LINEAR | [GLenum](#glenum) | Yes| | NEAREST | GLenum | Yes |
| NEAREST_MIPMAP_NEAREST | [GLenum](#glenum) | Yes| | LINEAR | GLenum | Yes |
| LINEAR_MIPMAP_NEAREST | [GLenum](#glenum) | Yes| | NEAREST_MIPMAP_NEAREST | GLenum | Yes |
| NEAREST_MIPMAP_LINEAR | [GLenum](#glenum) | Yes| | LINEAR_MIPMAP_NEAREST | GLenum | Yes |
| LINEAR_MIPMAP_LINEAR | [GLenum](#glenum) | Yes| | NEAREST_MIPMAP_LINEAR | GLenum | Yes |
| TEXTURE_MAG_FILTER | [GLenum](#glenum) | Yes| | LINEAR_MIPMAP_LINEAR | GLenum | Yes |
| TEXTURE_MIN_FILTER | [GLenum](#glenum) | Yes| | TEXTURE_MIN_FILTER | GLenum | Yes |
| TEXTURE_WRAP_S | [GLenum](#glenum) | Yes| | TEXTURE_WRAP_S | GLenum | Yes |
| TEXTURE_WRAP_T | [GLenum](#glenum) | Yes| | TEXTURE_WRAP_T | GLenum | Yes |
| TEXTURE_2D | [GLenum](#glenum) | Yes| | TEXTURE_2D | GLenum | Yes |
| TEXTURE | [GLenum](#glenum) | Yes| | TEXTURE | GLenum | Yes |
| TEXTURE_CUBE_MAP | [GLenum](#glenum) | Yes| | TEXTURE_CUBE_MAP | GLenum | Yes |
| TEXTURE_BINDING_CUBE_MAP | [GLenum](#glenum) | Yes| | TEXTURE_BINDING_CUBE_MAP | GLenum | Yes |
| TEXTURE_CUBE_MAP_POSITIVE_X | [GLenum](#glenum) | Yes| | TEXTURE_CUBE_MAP_POSITIVE_X | GLenum | Yes |
| TEXTURE_CUBE_MAP_NEGATIVE_X | [GLenum](#glenum) | Yes| | TEXTURE_CUBE_MAP_NEGATIVE_X | GLenum | Yes |
| TEXTURE_CUBE_MAP_POSITIVE_Y | [GLenum](#glenum) | Yes| | TEXTURE_CUBE_MAP_POSITIVE_Y | GLenum | Yes |
| TEXTURE_CUBE_MAP_NEGATIVE_Y | [GLenum](#glenum) | Yes| | TEXTURE_CUBE_MAP_NEGATIVE_Y | GLenum | Yes |
| TEXTURE_CUBE_MAP_POSITIVE_Z | [GLenum](#glenum) | Yes| | TEXTURE_CUBE_MAP_POSITIVE_Z | GLenum | Yes |
| TEXTURE_CUBE_MAP_NEGATIVE_Z | [GLenum](#glenum) | Yes| | TEXTURE_CUBE_MAP_NEGATIVE_Z | GLenum | Yes |
| TEXTURE0 | [GLenum](#glenum) | Yes| | MAX_CUBE_MAP_TEXTURE_SIZE | GLenum | Yes |
| TEXTURE1 | [GLenum](#glenum) | Yes| | TEXTURE0 | GLenum | Yes |
| TEXTURE2 | [GLenum](#glenum) | Yes| | TEXTURE1 | GLenum | Yes |
| TEXTURE3 | [GLenum](#glenum) | Yes| | TEXTURE2 | GLenum | Yes |
| TEXTURE4 | [GLenum](#glenum) | Yes| | TEXTURE3 | GLenum | Yes |
| TEXTURE5 | [GLenum](#glenum) | Yes| | TEXTURE4 | GLenum | Yes |
| TEXTURE6 | [GLenum](#glenum) | Yes| | TEXTURE5 | GLenum | Yes |
| TEXTURE7 | [GLenum](#glenum) | Yes| | TEXTURE6 | GLenum | Yes |
| TEXTURE8 | [GLenum](#glenum) | Yes| | TEXTURE7 | GLenum | Yes |
| TEXTURE9 | [GLenum](#glenum) | Yes| | TEXTURE8 | GLenum | Yes |
| TEXTURE10 | [GLenum](#glenum) | Yes| | TEXTURE9 | GLenum | Yes |
| TEXTURE11 | [GLenum](#glenum) | Yes| | TEXTURE10 | GLenum | Yes |
| TEXTURE12 | [GLenum](#glenum) | Yes| | TEXTURE11 | GLenum | Yes |
| TEXTURE13 | [GLenum](#glenum) | Yes| | TEXTURE12 | GLenum | Yes |
| TEXTURE14 | [GLenum](#glenum) | Yes| | TEXTURE13 | GLenum | Yes |
| TEXTURE15 | [GLenum](#glenum) | Yes| | TEXTURE14 | GLenum | Yes |
| TEXTURE16 | [GLenum](#glenum) | Yes| | TEXTURE15 | GLenum | Yes |
| TEXTURE17 | [GLenum](#glenum) | Yes| | TEXTURE16 | GLenum | Yes |
| TEXTURE18 | [GLenum](#glenum) | Yes| | TEXTURE17 | GLenum | Yes |
| TEXTURE19 | [GLenum](#glenum) | Yes| | TEXTURE18 | GLenum | Yes |
| TEXTURE20 | [GLenum](#glenum) | Yes| | TEXTURE19 | GLenum | Yes |
| TEXTURE21 | [GLenum](#glenum) | Yes| | TEXTURE20 | GLenum | Yes |
| TEXTURE22 | [GLenum](#glenum) | Yes| | TEXTURE21 | GLenum | Yes |
| TEXTURE23 | [GLenum](#glenum) | Yes| | TEXTURE22 | GLenum | Yes |
| TEXTURE24 | [GLenum](#glenum) | Yes| | TEXTURE23 | GLenum | Yes |
| TEXTURE25 | [GLenum](#glenum) | Yes| | TEXTURE24 | GLenum | Yes |
| TEXTURE26 | [GLenum](#glenum) | Yes| | TEXTURE25 | GLenum | Yes |
| TEXTURE27 | [GLenum](#glenum) | Yes| | TEXTURE26 | GLenum | Yes |
| TEXTURE28 | [GLenum](#glenum) | Yes| | TEXTURE27 | GLenum | Yes |
| TEXTURE29 | [GLenum](#glenum) | Yes| | TEXTURE28 | GLenum | Yes |
| TEXTURE30 | [GLenum](#glenum) | Yes| | TEXTURE29 | GLenum | Yes |
| TEXTURE31 | [GLenum](#glenum) | Yes| | TEXTURE30 | GLenum | Yes |
| ACTIVE_TEXTURE | [GLenum](#glenum) | Yes| | TEXTURE31 | GLenum | Yes |
| REPEAT | [GLenum](#glenum) | Yes| | ACTIVE_TEXTURE | GLenum | Yes |
| CLAMP_TO_EDGE | [GLenum](#glenum) | Yes| | REPEAT | GLenum | Yes |
| MIRRORED_REPEAT | [GLenum](#glenum) | Yes| | CLAMP_TO_EDGE | GLenum | Yes |
| FLOAT_VEC2 | [GLenum](#glenum) | Yes| | MIRRORED_REPEAT | GLenum | Yes |
| FLOAT_VEC3 | [GLenum](#glenum) | Yes| | FLOAT_VEC2 | GLenum | Yes |
| FLOAT_VEC4 | [GLenum](#glenum) | Yes| | FLOAT_VEC3 | GLenum | Yes |
| INT_VEC2 | [GLenum](#glenum) | Yes| | FLOAT_VEC4 | GLenum | Yes |
| INT_VEC3 | [GLenum](#glenum) | Yes| | INT_VEC2 | GLenum | Yes |
| INT_VEC4 | [GLenum](#glenum) | Yes| | INT_VEC3 | GLenum | Yes |
| BOOL | [GLenum](#glenum) | Yes| | INT_VEC4 | GLenum | Yes |
| BOOL_VEC2 | [GLenum](#glenum) | Yes| | BOOL | GLenum | Yes |
| BOOL_VEC3 | [GLenum](#glenum) | Yes| | BOOL_VEC2 | GLenum | Yes |
| BOOL_VEC4 | [GLenum](#glenum) | Yes| | BOOL_VEC3 | GLenum | Yes |
| FLOAT_MAT2 | [GLenum](#glenum) | Yes| | BOOL_VEC4 | GLenum | Yes |
| FLOAT_MAT3 | [GLenum](#glenum) | Yes| | FLOAT_MAT2 | GLenum | Yes |
| FLOAT_MAT4 | [GLenum](#glenum) | Yes| | FLOAT_MAT3 | GLenum | Yes |
| SAMPLER_2D | [GLenum](#glenum) | Yes| | FLOAT_MAT4 | GLenum | Yes |
| SAMPLER_CUBE | [GLenum](#glenum) | Yes| | SAMPLER_2D | GLenum | Yes |
| VERTEX_ATTRIB_ARRAY_ENABLED | [GLenum](#glenum) | Yes| | SAMPLER_CUBE | GLenum | Yes |
| VERTEX_ATTRIB_ARRAY_SIZE | [GLenum](#glenum) | Yes| | VERTEX_ATTRIB_ARRAY_ENABLED | GLenum | Yes |
| VERTEX_ATTRIB_ARRAY_STRIDE | [GLenum](#glenum) | Yes| | VERTEX_ATTRIB_ARRAY_SIZE | GLenum | Yes |
| VERTEX_ATTRIB_ARRAY_TYPE | [GLenum](#glenum) | Yes| | VERTEX_ATTRIB_ARRAY_STRIDE | GLenum | Yes |
| VERTEX_ATTRIB_ARRAY_NORMALIZED | [GLenum](#glenum) | Yes| | VERTEX_ATTRIB_ARRAY_TYPE | GLenum | Yes |
| VERTEX_ATTRIB_ARRAY_POINTER | [GLenum](#glenum) | Yes| | VERTEX_ATTRIB_ARRAY_NORMALIZED | GLenum | Yes |
| VERTEX_ATTRIB_ARRAY_BUFFER_BINDING | [GLenum](#glenum) | Yes| | VERTEX_ATTRIB_ARRAY_POINTER | GLenum | Yes |
| IMPLEMENTATION_COLOR_READ_TYPE | [GLenum](#glenum) | Yes| | VERTEX_ATTRIB_ARRAY_BUFFER_BINDING | GLenum | Yes |
| IMPLEMENTATION_COLOR_READ_FORMAT | [GLenum](#glenum) | Yes| | IMPLEMENTATION_COLOR_READ_TYPE | GLenum | Yes |
| COMPILE_STATUS | [GLenum](#glenum) | Yes| | IMPLEMENTATION_COLOR_READ_FORMAT | GLenum | Yes |
| LOW_FLOAT | [GLenum](#glenum) | Yes| | COMPILE_STATUS | GLenum | Yes |
| MEDIUM_FLOAT | [GLenum](#glenum) | Yes| | LOW_FLOAT | GLenum | Yes |
| HIGH_FLOAT | [GLenum](#glenum) | Yes| | MEDIUM_FLOAT | GLenum | Yes |
| LOW_INT | [GLenum](#glenum) | Yes| | HIGH_FLOAT | GLenum | Yes |
| MEDIUM_INT | [GLenum](#glenum) | Yes| | LOW_INT | GLenum | Yes |
| HIGH_INT | [GLenum](#glenum) | Yes| | MEDIUM_INT | GLenum | Yes |
| FRAMEBUFFER | [GLenum](#glenum) | Yes| | HIGH_INT | GLenum | Yes |
| RENDERBUFFER | [GLenum](#glenum) | Yes| | FRAMEBUFFER | GLenum | Yes |
| RGBA4 | [GLenum](#glenum) | Yes| | RENDERBUFFER | GLenum | Yes |
| RGB5_A1 | [GLenum](#glenum) | Yes| | RGBA4 | GLenum | Yes |
| RGB565 | [GLenum](#glenum) | Yes| | RGB5_A1 | GLenum | Yes |
| DEPTH_COMPONENT16 | [GLenum](#glenum) | Yes| | RGB565 | GLenum | Yes |
| STENCIL_INDEX8 | [GLenum](#glenum) | Yes| | DEPTH_COMPONENT16 | GLenum | Yes |
| DEPTH_STENCIL | [GLenum](#glenum) | Yes| | STENCIL_INDEX8 | GLenum | Yes |
| RENDERBUFFER_WIDTH | [GLenum](#glenum) | Yes| | DEPTH_STENCIL | GLenum | Yes |
| RENDERBUFFER_HEIGHT | [GLenum](#glenum) | Yes| | RENDERBUFFER_WIDTH | GLenum | Yes |
| RENDERBUFFER_INTERNAL_FORMAT | [GLenum](#glenum) | Yes| | RENDERBUFFER_HEIGHT | GLenum | Yes |
| RENDERBUFFER_RED_SIZE | [GLenum](#glenum) | Yes| | RENDERBUFFER_INTERNAL_FORMAT | GLenum | Yes |
| RENDERBUFFER_GREEN_SIZE | [GLenum](#glenum) | Yes| | RENDERBUFFER_RED_SIZE | GLenum | Yes |
| RENDERBUFFER_BLUE_SIZE | [GLenum](#glenum) | Yes| | RENDERBUFFER_GREEN_SIZE | GLenum | Yes |
| RENDERBUFFER_ALPHA_SIZE | [GLenum](#glenum) | Yes| | RENDERBUFFER_BLUE_SIZE | GLenum | Yes |
| RENDERBUFFER_DEPTH_SIZE | [GLenum](#glenum) | Yes| | RENDERBUFFER_ALPHA_SIZE | GLenum | Yes |
| RENDERBUFFER_STENCIL_SIZE | [GLenum](#glenum) | Yes| | RENDERBUFFER_DEPTH_SIZE | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE | [GLenum](#glenum) | Yes| | RENDERBUFFER_STENCIL_SIZE | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_OBJECT_NAME | [GLenum](#glenum) | Yes| | FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL | [GLenum](#glenum) | Yes| | FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE | [GLenum](#glenum) | Yes| | FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE | GLenum | Yes |
| COLOR_ATTACHMENT0 | [GLenum](#glenum) | Yes| | COLOR_ATTACHMENT0 | GLenum | Yes |
| DEPTH_ATTACHMENT | [GLenum](#glenum) | Yes| | DEPTH_ATTACHMENT | GLenum | Yes |
| STENCIL_ATTACHMENT | [GLenum](#glenum) | Yes| | STENCIL_ATTACHMENT | GLenum | Yes |
| DEPTH_STENCIL_ATTACHMENT | [GLenum](#glenum) | Yes| | DEPTH_STENCIL_ATTACHMENT | GLenum | Yes |
| NONE | [GLenum](#glenum) | Yes| | NONE | GLenum | Yes |
| FRAMEBUFFER_COMPLETE | [GLenum](#glenum) | Yes| | FRAMEBUFFER_COMPLETE | GLenum | Yes |
| FRAMEBUFFER_INCOMPLETE_ATTACHMENT | [GLenum](#glenum) | Yes| | FRAMEBUFFER_INCOMPLETE_ATTACHMENT | GLenum | Yes |
| FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT | [GLenum](#glenum) | Yes| | FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT | GLenum | Yes |
| FRAMEBUFFER_INCOMPLETE_DIMENSIONS | [GLenum](#glenum) | Yes| | FRAMEBUFFER_INCOMPLETE_DIMENSIONS | GLenum | Yes |
| FRAMEBUFFER_UNSUPPORTED | [GLenum](#glenum) | Yes| | FRAMEBUFFER_UNSUPPORTED | GLenum | Yes |
| FRAMEBUFFER_BINDING | [GLenum](#glenum) | Yes| | FRAMEBUFFER_BINDING | GLenum | Yes |
| RENDERBUFFER_BINDING | [GLenum](#glenum) | Yes| | RENDERBUFFER_BINDING | GLenum | Yes |
| MAX_RENDERBUFFER_SIZE | [GLenum](#glenum) | Yes| | MAX_RENDERBUFFER_SIZE | GLenum | Yes |
| INVALID_FRAMEBUFFER_OPERATION | [GLenum](#glenum) | Yes| | INVALID_FRAMEBUFFER_OPERATION | GLenum | Yes |
| UNPACK_FLIP_Y_WEBGL | [GLenum](#glenum) | Yes| | UNPACK_FLIP_Y_WEBGL | GLenum | Yes |
| UNPACK_PREMULTIPLY_ALPHA_WEBGL | [GLenum](#glenum) | Yes| | UNPACK_PREMULTIPLY_ALPHA_WEBGL | GLenum | Yes |
| CONTEXT_LOST_WEBGL | [GLenum](#glenum) | Yes| | CONTEXT_LOST_WEBGL | GLenum | Yes |
| UNPACK_COLORSPACE_CONVERSION_WEBGL | [GLenum](#glenum) | Yes| | UNPACK_COLORSPACE_CONVERSION_WEBGL | GLenum | Yes |
| BROWSER_DEFAULT_WEBGL | [GLenum](#glenum) | Yes| | BROWSER_DEFAULT_WEBGL | GLenum | Yes |
| canvas | HTMLCanvasElement&nbsp;\|&nbsp;OffscreenCanvas | Yes| | canvas | HTMLCanvasElement&nbsp;\|&nbsp;OffscreenCanvas | Yes |
| drawingBufferWidth | [GLsizei](#glsizei) | Yes| | drawingBufferWidth | GLsizei | Yes |
| drawingBufferHeight | [GLsizei](#glsizei) | Yes| | drawingBufferHeight | GLsizei | Yes |
### Methods ### Methods
| Method| Return Value Type| | Method | Return&nbsp;Value&nbsp;Type |
| -------- | -------- | | -------- | -------- |
| getContextAttributes() | WebGLContextAttributes&nbsp;\|&nbsp;null | | getContextAttributes() | WebGLContextAttributes&nbsp;\|&nbsp;null |
| isContextLost() | boolean | | isContextLost() | boolean |
...@@ -577,7 +468,7 @@ WebGLRenderingContextBase ...@@ -577,7 +468,7 @@ WebGLRenderingContextBase
| createProgram() | WebGLProgram&nbsp;\|&nbsp;null | | createProgram() | WebGLProgram&nbsp;\|&nbsp;null |
| createRenderbuffer() | WebGLRenderbuffer&nbsp;\|&nbsp;null | | createRenderbuffer() | WebGLRenderbuffer&nbsp;\|&nbsp;null |
| createShader(type:&nbsp;GLenum) | WebGLShader&nbsp;\|&nbsp;null | | createShader(type:&nbsp;GLenum) | WebGLShader&nbsp;\|&nbsp;null |
| createTexture() | WebGLTexture&nbsp;\|&nbsp;nullvoid | | createTexture() | WebGLTexture&nbsp;\|&nbsp;null |
| cullFace(mode:&nbsp;GLenum) | void | | cullFace(mode:&nbsp;GLenum) | void |
| deleteBuffer(buffer:&nbsp;WebGLBuffer&nbsp;\|&nbsp;null) | void | | deleteBuffer(buffer:&nbsp;WebGLBuffer&nbsp;\|&nbsp;null) | void |
| deleteFramebuffer(framebuffer:&nbsp;WebGLFramebuffer&nbsp;\|&nbsp;null) | void | | deleteFramebuffer(framebuffer:&nbsp;WebGLFramebuffer&nbsp;\|&nbsp;null) | void |
...@@ -667,18 +558,18 @@ WebGLRenderingContextBase ...@@ -667,18 +558,18 @@ WebGLRenderingContextBase
| viewport(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void | | viewport(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void |
## webgl.WebGLRenderingContextOverloads ## WebGLRenderingContextOverloads
WebGLRenderingContextOverloads WebGLRenderingContextOverloads
| Method| Return Value Type| | Method | Return&nbsp;Value&nbsp;Type |
| -------- | -------- | | -------- | -------- |
| bufferData(target:&nbsp;GLenum,&nbsp;size:&nbsp;GLsizeiptr,&nbsp;usage:&nbsp;GLenum) | void | | bufferData(target:&nbsp;GLenum,&nbsp;size:&nbsp;GLsizeiptr,&nbsp;usage:&nbsp;GLenum) | void |
| bufferData(target:&nbsp;GLenum,&nbsp;data:&nbsp;BufferSource&nbsp;\|&nbsp;null,&nbsp;usage:&nbsp;GLenum) | void | | bufferData(target:&nbsp;GLenum,&nbsp;data:&nbsp;BufferSource&nbsp;\|&nbsp;null,&nbsp;usage:&nbsp;GLenum) | void |
| bufferSubData(target:&nbsp;GLenum,&nbsp;offset:&nbsp;GLintptr,&nbsp;data:&nbsp;BufferSource) | void | | bufferSubData(target:&nbsp;GLenum,&nbsp;offset:&nbsp;GLintptr,&nbsp;data:&nbsp;BufferSource) | void |
| compressedTexImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;data:&nbsp;ArrayBufferView) | void | | compressedTexImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;data:&nbsp;ArrayBufferView) | void |
| compressedTexSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;data:&nbsp;ArrayBufferView) | void | | compressedTexSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;data:&nbsp;ArrayBufferView) | void |
| readPixels(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void | | readPixels(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void; |
| texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
| texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
......
# WebGL2 # webgl2
> ![icon-note.gif](public_sys-resources/icon-note.gif) **Note:** > ![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. > 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.
...@@ -10,492 +10,474 @@ This module provides WebGL APIs that correspond to the OpenGL ES 3.0 feature set ...@@ -10,492 +10,474 @@ This module provides WebGL APIs that correspond to the OpenGL ES 3.0 feature set
## Modules to Import ## Modules to Import
``` ```
import webgl from 'ohos.webglnapi' import webgl from '@ohos.webglnapi';
``` ```
## System Capabilities ## Invoking Method
SystemCapability.Graphic.Graphic2D.WebGL2
Create a **&lt;canvas&gt;** component in the HML file. The following is an example:
## Invoking Method
``` ```
// Obtain the <canvas\> component instance. <div class="container">
const el = this.$refs.canvas <canvas ref="canvas1" style="width : 400px; height : 200px; background-color : lightyellow;"></canvas>
// Obtain the WebGL context from the <canvas\> component instance. <button class="btn-button" onclick="BtnDraw2D">BtnDraw2D</button>
const gl = el.getContext('webgl'); </div>
const gl2 = el.getContext('webgl2');
// Call the WebGL API.
gl2.readBuffer(gl.COLOR_ATTACHMENT0)
``` ```
Obtain the **&lt;canvas&gt;** component instance in the JS file. The following is an example:
## GLenum
| Name| Type|
| -------- | -------- |
| GLenum | number |
```
// Obtain the <canvas> component instance.
const el = this.$refs.canvas1;
// Obtain the WebGL context from the <canvas> component instance.
const gl = el.getContext('webgl');
// Call the WebGL API.
gl.clearColor(0.0, 0.0, 0.0, 1.0);
```
## Glint64
| Name| Type| ## Type
| -------- | -------- |
| Glint64 | number |
**Table1** Type
## Gluint64 | Name | Type | Description |
| -------- | -------- | -------- |
| GLenum | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL2 |
| GLint64 | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL2 |
| GLuint64 | number | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL2 |
| Uint32List | array | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL2 |
| Name| Type|
| -------- | -------- |
| Gluint64 | number |
## Interface
## Uint32List **Table2** Interface
| Name| Type| | Name | Description |
| -------- | -------- | | -------- | -------- |
| Uint32List | array | | [WebGL2RenderingContextBase](#webgl2renderingcontextbase) | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL2 |
| [WebGL2RenderingContextOverloads](#webgl2renderingcontextoverloads) | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL2 |
| WebGLQuery | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL2 |
| WebGLSampler | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL2 |
| WebGLSync | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL2 |
| WebGLTransformFeedback | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL2 |
| WebGLVertexArrayObject | **System&nbsp;capabilities**:&nbsp;SystemCapability.Graphic.Graphic2D.WebGL2 |
## webgl.webGL2RenderingContexBase ## WebGL2RenderingContextBase
WebGL2RenderingContexBase WebGL2RenderingContextBase
### Attributes ### Attributes
| Name| Type| Mandatory| | Name | Type | Mandatory |
| -------- | ------- | --------- | | -------- | -------- | -------- |
| READ_BUFFER | [GLenum](#GLenum) | Yes| | READ_BUFFER | GLenum | Yes |
| UNPACK_ROW_LENGTH | [GLenum](#GLenum) | Yes| | UNPACK_ROW_LENGTH | GLenum | Yes |
| UNPACK_SKIP_ROWS | [GLenum](#GLenum) | Yes| | UNPACK_SKIP_ROWS | GLenum | Yes |
| UNPACK_SKIP_PIXELS | [GLenum](#GLenum) | Yes| | UNPACK_SKIP_PIXELS | GLenum | Yes |
| PACK_ROW_LENGTH | [GLenum](#GLenum) | Yes| | PACK_ROW_LENGTH | GLenum | Yes |
| PACK_SKIP_ROWS | [GLenum](#GLenum) | Yes| | PACK_SKIP_ROWS | GLenum | Yes |
| PACK_SKIP_PIXELS | [GLenum](#GLenum) | Yes| | PACK_SKIP_PIXELS | GLenum | Yes |
| COLOR | [GLenum](#GLenum) | Yes| | COLOR | GLenum | Yes |
| DEPTH | [GLenum](#GLenum) | Yes| | DEPTH | GLenum | Yes |
| STENCIL | [GLenum](#GLenum) | Yes| | STENCIL | GLenum | Yes |
| RED | [GLenum](#GLenum) | Yes| | RED | GLenum | Yes |
| RGB8 | [GLenum](#GLenum) | Yes| | RGB8 | GLenum | Yes |
| RGBA8 | [GLenum](#GLenum) | Yes| | RGBA8 | GLenum | Yes |
| RGB10_A2 | [GLenum](#GLenum) | Yes| | RGB10_A2 | GLenum | Yes |
| TEXTURE_BINDING_3D | [GLenum](#GLenum) | Yes| | TEXTURE_BINDING_3D | GLenum | Yes |
| UNPACK_SKIP_IMAGES | [GLenum](#GLenum) | Yes| | UNPACK_SKIP_IMAGES | GLenum | Yes |
| UNPACK_IMAGE_HEIGHT | [GLenum](#GLenum) | Yes| | UNPACK_IMAGE_HEIGHT | GLenum | Yes |
| TEXTURE_3D | [GLenum](#GLenum) | Yes| | TEXTURE_3D | GLenum | Yes |
| TEXTURE_WRAP_R | [GLenum](#GLenum) | Yes| | TEXTURE_WRAP_R | GLenum | Yes |
| MAX_3D_TEXTURE_SIZE | [GLenum](#GLenum) | Yes| | MAX_3D_TEXTURE_SIZE | GLenum | Yes |
| UNSIGNED_INT_2_10_10_10_REV | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_2_10_10_10_REV | GLenum | Yes |
| MAX_ELEMENTS_VERTICES | [GLenum](#GLenum) | Yes| | MAX_ELEMENTS_VERTICES | GLenum | Yes |
| MAX_ELEMENTS_INDICES | [GLenum](#GLenum) | Yes| | MAX_ELEMENTS_INDICES | GLenum | Yes |
| TEXTURE_MIN_LOD | [GLenum](#GLenum) | Yes| | TEXTURE_MIN_LOD | GLenum | Yes |
| TEXTURE_MAX_LOD | [GLenum](#GLenum) | Yes| | TEXTURE_MAX_LOD | GLenum | Yes |
| TEXTURE_BASE_LEVEL | [GLenum](#GLenum) | Yes| | TEXTURE_BASE_LEVEL | GLenum | Yes |
| TEXTURE_MAX_LEVEL | [GLenum](#GLenum) | Yes| | TEXTURE_MAX_LEVEL | GLenum | Yes |
| MIN | [GLenum](#GLenum) | Yes| | MIN | GLenum | Yes |
| MAX | [GLenum](#GLenum) | Yes| | MAX | GLenum | Yes |
| DEPTH_COMPONENT24 | [GLenum](#GLenum) | Yes| | DEPTH_COMPONENT24 | GLenum | Yes |
| MAX_TEXTURE_LOD_BIAS | [GLenum](#GLenum) | Yes| | MAX_TEXTURE_LOD_BIAS | GLenum | Yes |
| TEXTURE_COMPARE_MODE | [GLenum](#GLenum) | Yes| | TEXTURE_COMPARE_MODE | GLenum | Yes |
| TEXTURE_COMPARE_FUNC | [GLenum](#GLenum) | Yes| | TEXTURE_COMPARE_FUNC | GLenum | Yes |
| CURRENT_QUERY | [GLenum](#GLenum) | Yes| | CURRENT_QUERY | GLenum | Yes |
| QUERY_RESULT | [GLenum](#GLenum) | Yes| | QUERY_RESULT | GLenum | Yes |
| QUERY_RESULT_AVAILABLE | [GLenum](#GLenum) | Yes| | QUERY_RESULT_AVAILABLE | GLenum | Yes |
| STREAM_READ | [GLenum](#GLenum) | Yes| | STREAM_READ | GLenum | Yes |
| STREAM_COPY | [GLenum](#GLenum) | Yes| | STREAM_COPY | GLenum | Yes |
| STATIC_READ | [GLenum](#GLenum) | Yes| | STATIC_READ | GLenum | Yes |
| STATIC_COPY | [GLenum](#GLenum) | Yes| | STATIC_COPY | GLenum | Yes |
| DYNAMIC_READ | [GLenum](#GLenum) | Yes| | DYNAMIC_READ | GLenum | Yes |
| DYNAMIC_COPY | [GLenum](#GLenum) | Yes| | DYNAMIC_COPY | GLenum | Yes |
| MAX_DRAW_BUFFERS | [GLenum](#GLenum) | Yes| | MAX_DRAW_BUFFERS | GLenum | Yes |
| DRAW_BUFFER0 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER0 | GLenum | Yes |
| DRAW_BUFFER1 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER1 | GLenum | Yes |
| DRAW_BUFFER2 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER2 | GLenum | Yes |
| DRAW_BUFFER3 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER3 | GLenum | Yes |
| DRAW_BUFFER4 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER4 | GLenum | Yes |
| DRAW_BUFFER5 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER5 | GLenum | Yes |
| DRAW_BUFFER6 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER6 | GLenum | Yes |
| DRAW_BUFFER7 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER7 | GLenum | Yes |
| DRAW_BUFFER8 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER8 | GLenum | Yes |
| DRAW_BUFFER9 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER9 | GLenum | Yes |
| DRAW_BUFFER10 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER10 | GLenum | Yes |
| DRAW_BUFFER11 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER11 | GLenum | Yes |
| DRAW_BUFFER12 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER12 | GLenum | Yes |
| DRAW_BUFFER13 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER13 | GLenum | Yes |
| DRAW_BUFFER14 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER14 | GLenum | Yes |
| DRAW_BUFFER15 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER15 | GLenum | Yes |
| MAX_FRAGMENT_UNIFORM_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_FRAGMENT_UNIFORM_COMPONENTS | GLenum | Yes |
| MAX_VERTEX_UNIFORM_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_VERTEX_UNIFORM_COMPONENTS | GLenum | Yes |
| SAMPLER_3D | [GLenum](#GLenum) | Yes| | SAMPLER_3D | GLenum | Yes |
| SAMPLER_2D_SHADOW | [GLenum](#GLenum) | Yes| | SAMPLER_2D_SHADOW | GLenum | Yes |
| FRAGMENT_SHADER_DERIVATIVE_HINT | [GLenum](#GLenum) | Yes| | FRAGMENT_SHADER_DERIVATIVE_HINT | GLenum | Yes |
| PIXEL_PACK_BUFFER | [GLenum](#GLenum) | Yes| | PIXEL_PACK_BUFFER | GLenum | Yes |
| PIXEL_UNPACK_BUFFER | [GLenum](#GLenum) | Yes| | PIXEL_UNPACK_BUFFER | GLenum | Yes |
| PIXEL_PACK_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | PIXEL_PACK_BUFFER_BINDING | GLenum | Yes |
| PIXEL_UNPACK_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | PIXEL_UNPACK_BUFFER_BINDING | GLenum | Yes |
| FLOAT_MAT2x3 | [GLenum](#GLenum) | Yes| | FLOAT_MAT2x3 | GLenum | Yes |
| FLOAT_MAT2x4 | [GLenum](#GLenum) | Yes| | FLOAT_MAT2x4 | GLenum | Yes |
| FLOAT_MAT3x2 | [GLenum](#GLenum) | Yes| | FLOAT_MAT3x2 | GLenum | Yes |
| FLOAT_MAT3x4 | [GLenum](#GLenum) | Yes| | FLOAT_MAT3x4 | GLenum | Yes |
| FLOAT_MAT4x2 | [GLenum](#GLenum) | Yes| | FLOAT_MAT4x2 | GLenum | Yes |
| FLOAT_MAT4x3 | [GLenum](#GLenum) | Yes| | FLOAT_MAT4x3 | GLenum | Yes |
| SRGB | [GLenum](#GLenum) | Yes| | SRGB | GLenum | Yes |
| SRGB8 | [GLenum](#GLenum) | Yes| | SRGB8 | GLenum | Yes |
| SRGB8_ALPHA8 | [GLenum](#GLenum) | Yes| | SRGB8_ALPHA8 | GLenum | Yes |
| COMPARE_REF_TO_TEXTURE | [GLenum](#GLenum) | Yes| | COMPARE_REF_TO_TEXTURE | GLenum | Yes |
| RGBA32F | [GLenum](#GLenum) | Yes| | RGBA32F | GLenum | Yes |
| RGB32F | [GLenum](#GLenum) | Yes| | RGB32F | GLenum | Yes |
| RGBA16F | [GLenum](#GLenum) | Yes| | RGBA16F | GLenum | Yes |
| RGB16F | [GLenum](#GLenum) | Yes| | RGB16F | GLenum | Yes |
| VERTEX_ATTRIB_ARRAY_INTEGER | [GLenum](#GLenum) | Yes| | VERTEX_ATTRIB_ARRAY_INTEGER | GLenum | Yes |
| MAX_ARRAY_TEXTURE_LAYERS | [GLenum](#GLenum) | Yes| | MAX_ARRAY_TEXTURE_LAYERS | GLenum | Yes |
| MIN_PROGRAM_TEXEL_OFFSET | [GLenum](#GLenum) | Yes| | MIN_PROGRAM_TEXEL_OFFSET | GLenum | Yes |
| MAX_PROGRAM_TEXEL_OFFSET | [GLenum](#GLenum) | Yes| | MAX_PROGRAM_TEXEL_OFFSET | GLenum | Yes |
| MAX_VARYING_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_VARYING_COMPONENTS | GLenum | Yes |
| TEXTURE_2D_ARRAY | [GLenum](#GLenum) | Yes| | TEXTURE_2D_ARRAY | GLenum | Yes |
| TEXTURE_BINDING_2D_ARRAY | [GLenum](#GLenum) | Yes| | TEXTURE_BINDING_2D_ARRAY | GLenum | Yes |
| R11F_G11F_B10F | [GLenum](#GLenum) | Yes| | R11F_G11F_B10F | GLenum | Yes |
| UNSIGNED_INT_10F_11F_11F_REV | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_10F_11F_11F_REV | GLenum | Yes |
| RGB9_E5 | [GLenum](#GLenum) | Yes| | RGB9_E5 | GLenum | Yes |
| UNSIGNED_INT_5_9_9_9_REV | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_5_9_9_9_REV | GLenum | Yes |
| TRANSFORM_FEEDBACK_BUFFER_MODE | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BUFFER_MODE | GLenum | Yes |
| MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS | GLenum | Yes |
| TRANSFORM_FEEDBACK_VARYINGS | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_VARYINGS | GLenum | Yes |
| TRANSFORM_FEEDBACK_BUFFER_START | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BUFFER_START | GLenum | Yes |
| TRANSFORM_FEEDBACK_BUFFER_SIZE | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BUFFER_SIZE | GLenum | Yes |
| TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN | GLenum | Yes |
| RASTERIZER_DISCARD | [GLenum](#GLenum) | Yes| | RASTERIZER_DISCARD | GLenum | Yes |
| MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS | GLenum | Yes |
| MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS | [GLenum](#GLenum) | Yes| | MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS | GLenum | Yes |
| INTERLEAVED_ATTRIBS | [GLenum](#GLenum) | Yes| | INTERLEAVED_ATTRIBS | GLenum | Yes |
| SEPARATE_ATTRIBS | [GLenum](#GLenum) | Yes| | SEPARATE_ATTRIBS | GLenum | Yes |
| TRANSFORM_FEEDBACK_BUFFER | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BUFFER | GLenum | Yes |
| TRANSFORM_FEEDBACK_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BUFFER_BINDING | GLenum | Yes |
| RGBA32UI | [GLenum](#GLenum) | Yes| | RGBA32UI | GLenum | Yes |
| RGB32UI | [GLenum](#GLenum) | Yes| | RGB32UI | GLenum | Yes |
| RGBA16UI | [GLenum](#GLenum) | Yes| | RGBA16UI | GLenum | Yes |
| RGB16UI | [GLenum](#GLenum) | Yes| | RGB16UI | GLenum | Yes |
| RGBA8UI | [GLenum](#GLenum) | Yes| | RGBA8UI | GLenum | Yes |
| RGB8UI | [GLenum](#GLenum) | Yes| | RGB8UI | GLenum | Yes |
| RGBA32I | [GLenum](#GLenum) | Yes| | RGBA32I | GLenum | Yes |
| RGB32I | [GLenum](#GLenum) | Yes| | RGB32I | GLenum | Yes |
| RGBA16I | [GLenum](#GLenum) | Yes| | RGBA16I | GLenum | Yes |
| RGB16I | [GLenum](#GLenum) | Yes| | RGB16I | GLenum | Yes |
| RGBA8I | [GLenum](#GLenum) | Yes| | RGBA8I | GLenum | Yes |
| RGB8I | [GLenum](#GLenum) | Yes| | RGB8I | GLenum | Yes |
| RED_INTEGER | [GLenum](#GLenum) | Yes| | RED_INTEGER | GLenum | Yes |
| RGB_INTEGER | [GLenum](#GLenum) | Yes| | RGB_INTEGER | GLenum | Yes |
| RGBA_INTEGER | [GLenum](#GLenum) | Yes| | RGBA_INTEGER | GLenum | Yes |
| SAMPLER_2D_ARRAY | [GLenum](#GLenum) | Yes| | SAMPLER_2D_ARRAY | GLenum | Yes |
| SAMPLER_2D_ARRAY_SHADOW | [GLenum](#GLenum) | Yes| | SAMPLER_2D_ARRAY_SHADOW | GLenum | Yes |
| SAMPLER_CUBE_SHADOW | [GLenum](#GLenum) | Yes| | SAMPLER_CUBE_SHADOW | GLenum | Yes |
| UNSIGNED_INT_VEC2 | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_VEC2 | GLenum | Yes |
| UNSIGNED_INT_VEC3 | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_VEC3 | GLenum | Yes |
| UNSIGNED_INT_VEC4 | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_VEC4 | GLenum | Yes |
| INT_SAMPLER_2D | [GLenum](#GLenum) | Yes| | INT_SAMPLER_2D | GLenum | Yes |
| INT_SAMPLER_3D | [GLenum](#GLenum) | Yes| | INT_SAMPLER_3D | GLenum | Yes |
| INT_SAMPLER_CUBE | [GLenum](#GLenum) | Yes| | INT_SAMPLER_CUBE | GLenum | Yes |
| INT_SAMPLER_2D_ARRAY | [GLenum](#GLenum) | Yes| | INT_SAMPLER_2D_ARRAY | GLenum | Yes |
| UNSIGNED_INT_SAMPLER_2D | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_SAMPLER_2D | GLenum | Yes |
| UNSIGNED_INT_SAMPLER_3D | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_SAMPLER_3D | GLenum | Yes |
| UNSIGNED_INT_SAMPLER_CUBE | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_SAMPLER_CUBE | GLenum | Yes |
| UNSIGNED_INT_SAMPLER_2D_ARRAY | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_SAMPLER_2D_ARRAY | GLenum | Yes |
| DEPTH_COMPONENT32F | [GLenum](#GLenum) | Yes| | DEPTH_COMPONENT32F | GLenum | Yes |
| DEPTH32F_STENCIL8 | [GLenum](#GLenum) | Yes| | DEPTH32F_STENCIL8 | GLenum | Yes |
| FLOAT_32_UNSIGNED_INT_24_8_REV | [GLenum](#GLenum) | Yes| | FLOAT_32_UNSIGNED_INT_24_8_REV | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_RED_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_RED_SIZE | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_GREEN_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_GREEN_SIZE | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_BLUE_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_BLUE_SIZE | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE | GLenum | Yes |
| FRAMEBUFFER_DEFAULT | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_DEFAULT | GLenum | Yes |
| UNSIGNED_INT_24_8 | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_24_8 | GLenum | Yes |
| DEPTH24_STENCIL8 | [GLenum](#GLenum) | Yes| | DEPTH24_STENCIL8 | GLenum | Yes |
| UNSIGNED_NORMALIZED | [GLenum](#GLenum) | Yes| | UNSIGNED_NORMALIZED | GLenum | Yes |
| DRAW_FRAMEBUFFER_BINDING | [GLenum](#GLenum) | Yes| | DRAW_FRAMEBUFFER_BINDING | GLenum | Yes |
| READ_FRAMEBUFFER | [GLenum](#GLenum) | Yes| | READ_FRAMEBUFFER | GLenum | Yes |
| DRAW_FRAMEBUFFER | [GLenum](#GLenum) | Yes| | DRAW_FRAMEBUFFER | GLenum | Yes |
| READ_FRAMEBUFFER_BINDING | [GLenum](#GLenum) | Yes| | READ_FRAMEBUFFER_BINDING | GLenum | Yes |
| RENDERBUFFER_SAMPLES | [GLenum](#GLenum) | Yes| | RENDERBUFFER_SAMPLES | GLenum | Yes |
| FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER | GLenum | Yes |
| MAX_COLOR_ATTACHMENTS | [GLenum](#GLenum) | Yes| | MAX_COLOR_ATTACHMENTS | GLenum | Yes |
| COLOR_ATTACHMENT1 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT1 | GLenum | Yes |
| COLOR_ATTACHMENT2 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT2 | GLenum | Yes |
| COLOR_ATTACHMENT3 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT3 | GLenum | Yes |
| COLOR_ATTACHMENT4 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT4 | GLenum | Yes |
| COLOR_ATTACHMENT5 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT5 | GLenum | Yes |
| COLOR_ATTACHMENT6 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT6 | GLenum | Yes |
| COLOR_ATTACHMENT7 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT7 | GLenum | Yes |
| COLOR_ATTACHMENT8 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT8 | GLenum | Yes |
| COLOR_ATTACHMENT9 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT9 | GLenum | Yes |
| COLOR_ATTACHMENT10 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT10 | GLenum | Yes |
| COLOR_ATTACHMENT11 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT11 | GLenum | Yes |
| COLOR_ATTACHMENT12 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT12 | GLenum | Yes |
| COLOR_ATTACHMENT13 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT13 | GLenum | Yes |
| COLOR_ATTACHMENT14 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT14 | GLenum | Yes |
| COLOR_ATTACHMENT15 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT15 | GLenum | Yes |
| FRAMEBUFFER_INCOMPLETE_MULTISAMPLE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_INCOMPLETE_MULTISAMPLE | GLenum | Yes |
| MAX_SAMPLES | [GLenum](#GLenum) | Yes| | MAX_SAMPLES | GLenum | Yes |
| HALF_FLOAT | [GLenum](#GLenum) | Yes| | HALF_FLOAT | GLenum | Yes |
| RG | [GLenum](#GLenum) | Yes| | RG | GLenum | Yes |
| RG_INTEGER | [GLenum](#GLenum) | Yes| | RG_INTEGER | GLenum | Yes |
| R8 | [GLenum](#GLenum) | Yes| | R8 | GLenum | Yes |
| RG8 | [GLenum](#GLenum) | Yes| | RG8 | GLenum | Yes |
| R16F | [GLenum](#GLenum) | Yes| | R16F | GLenum | Yes |
| R32F | [GLenum](#GLenum) | Yes| | R32F | GLenum | Yes |
| RG16F | [GLenum](#GLenum) | Yes| | RG16F | GLenum | Yes |
| RG32F | [GLenum](#GLenum) | Yes| | RG32F | GLenum | Yes |
| R8I | [GLenum](#GLenum) | Yes| | R8I | GLenum | Yes |
| R8UI | [GLenum](#GLenum) | Yes| | R8UI | GLenum | Yes |
| R16I | [GLenum](#GLenum) | Yes| | R16I | GLenum | Yes |
| R16UI | [GLenum](#GLenum) | Yes| | R16UI | GLenum | Yes |
| R32I | [GLenum](#GLenum) | Yes| | R32I | GLenum | Yes |
| R32UI | [GLenum](#GLenum) | Yes| | R32UI | GLenum | Yes |
| RG8I | [GLenum](#GLenum) | Yes| | RG8I | GLenum | Yes |
| RG8UI | [GLenum](#GLenum) | Yes| | RG8UI | GLenum | Yes |
| RG16I | [GLenum](#GLenum) | Yes| | RG16I | GLenum | Yes |
| RG16UI | [GLenum](#GLenum) | Yes| | RG16UI | GLenum | Yes |
| RG32I | [GLenum](#GLenum) | Yes| | RG32I | GLenum | Yes |
| RG32UI | [GLenum](#GLenum) | Yes| | RG32UI | GLenum | Yes |
| VERTEX_ARRAY_BINDING | [GLenum](#GLenum) | Yes| | VERTEX_ARRAY_BINDING | GLenum | Yes |
| R8_SNORM | [GLenum](#GLenum) | Yes| | R8_SNORM | GLenum | Yes |
| RG8_SNORM | [GLenum](#GLenum) | Yes| | RG8_SNORM | GLenum | Yes |
| RGB8_SNORM | [GLenum](#GLenum) | Yes| | RGB8_SNORM | GLenum | Yes |
| SIGNED_NORMALIZED | [GLenum](#GLenum) | Yes| | SIGNED_NORMALIZED | GLenum | Yes |
| COPY_READ_BUFFER | [GLenum](#GLenum) | Yes| | COPY_READ_BUFFER | GLenum | Yes |
| COPY_WRITE_BUFFER | [GLenum](#GLenum) | Yes| | COPY_WRITE_BUFFER | GLenum | Yes |
| COPY_READ_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | COPY_READ_BUFFER_BINDING | GLenum | Yes |
| COPY_WRITE_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | COPY_WRITE_BUFFER_BINDING | GLenum | Yes |
| UNIFORM_BUFFER | [GLenum](#GLenum) | Yes| | UNIFORM_BUFFER | GLenum | Yes |
| UNIFORM_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | UNIFORM_BUFFER_BINDING | GLenum | Yes |
| UNIFORM_BUFFER_START | [GLenum](#GLenum) | Yes| | UNIFORM_BUFFER_START | GLenum | Yes |
| UNIFORM_BUFFER_SIZE | [GLenum](#GLenum) | Yes| | UNIFORM_BUFFER_SIZE | GLenum | Yes |
| MAX_VERTEX_UNIFORM_BLOCKS | [GLenum](#GLenum) | Yes| | MAX_VERTEX_UNIFORM_BLOCKS | GLenum | Yes |
| MAX_FRAGMENT_UNIFORM_BLOCKS | [GLenum](#GLenum) | Yes| | MAX_FRAGMENT_UNIFORM_BLOCKS | GLenum | Yes |
| MAX_COMBINED_UNIFORM_BLOCKS | [GLenum](#GLenum) | Yes| | MAX_COMBINED_UNIFORM_BLOCKS | GLenum | Yes |
| MAX_UNIFORM_BUFFER_BINDINGS | [GLenum](#GLenum) | Yes| | MAX_UNIFORM_BUFFER_BINDINGS | GLenum | Yes |
| MAX_UNIFORM_BLOCK_SIZE | [GLenum](#GLenum) | Yes| | MAX_UNIFORM_BLOCK_SIZE | GLenum | Yes |
| MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS | GLenum | Yes |
| MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS | GLenum | Yes |
| UNIFORM_BUFFER_OFFSET_ALIGNMENT | [GLenum](#GLenum) | Yes| | UNIFORM_BUFFER_OFFSET_ALIGNMENT | GLenum | Yes |
| ACTIVE_UNIFORM_BLOCKS | [GLenum](#GLenum) | Yes| | ACTIVE_UNIFORM_BLOCKS | GLenum | Yes |
| UNIFORM_TYPE | [GLenum](#GLenum) | Yes| | UNIFORM_TYPE | GLenum | Yes |
| UNIFORM_SIZE | [GLenum](#GLenum) | Yes| | UNIFORM_SIZE | GLenum | Yes |
| UNIFORM_BLOCK_INDEX | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_INDEX | GLenum | Yes |
| UNIFORM_OFFSET | [GLenum](#GLenum) | Yes| | UNIFORM_OFFSET | GLenum | Yes |
| UNIFORM_ARRAY_STRIDE | [GLenum](#GLenum) | Yes| | UNIFORM_ARRAY_STRIDE | GLenum | Yes |
| UNIFORM_MATRIX_STRIDE | [GLenum](#GLenum) | Yes| | UNIFORM_MATRIX_STRIDE | GLenum | Yes |
| UNIFORM_IS_ROW_MAJOR | [GLenum](#GLenum) | Yes| | UNIFORM_IS_ROW_MAJOR | GLenum | Yes |
| UNIFORM_BLOCK_BINDING | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_BINDING | GLenum | Yes |
| UNIFORM_BLOCK_DATA_SIZE | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_DATA_SIZE | GLenum | Yes |
| UNIFORM_BLOCK_ACTIVE_UNIFORMS | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_ACTIVE_UNIFORMS | GLenum | Yes |
| UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES | GLenum | Yes |
| UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER | GLenum | Yes |
| UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER | GLenum | Yes |
| INVALID_INDEX | [GLenum](#GLenum) | Yes| | INVALID_INDEX | GLenum | Yes |
| MAX_VERTEX_OUTPUT_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_VERTEX_OUTPUT_COMPONENTS | GLenum | Yes |
| MAX_FRAGMENT_INPUT_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_FRAGMENT_INPUT_COMPONENTS | GLenum | Yes |
| MAX_SERVER_WAIT_TIMEOUT | [GLenum](#GLenum) | Yes| | MAX_SERVER_WAIT_TIMEOUT | GLenum | Yes |
| OBJECT_TYPE | [GLenum](#GLenum) | Yes| | OBJECT_TYPE | GLenum | Yes |
| SYNC_CONDITION | [GLenum](#GLenum) | Yes| | SYNC_CONDITION | GLenum | Yes |
| SYNC_STATUS | [GLenum](#GLenum) | Yes| | SYNC_STATUS | GLenum | Yes |
| SYNC_FLAGS | [GLenum](#GLenum) | Yes| | SYNC_FLAGS | GLenum | Yes |
| SYNC_FENCE | [GLenum](#GLenum) | Yes| | SYNC_FENCE | GLenum | Yes |
| SYNC_GPU_COMMANDS_COMPLETE | [GLenum](#GLenum) | Yes| | SYNC_GPU_COMMANDS_COMPLETE | GLenum | Yes |
| UNSIGNALED | [GLenum](#GLenum) | Yes| | UNSIGNALED | GLenum | Yes |
| SIGNALED | [GLenum](#GLenum) | Yes| | SIGNALED | GLenum | Yes |
| ALREADY_SIGNALED | [GLenum](#GLenum) | Yes| | ALREADY_SIGNALED | GLenum | Yes |
| TIMEOUT_EXPIRED | [GLenum](#GLenum) | Yes| | TIMEOUT_EXPIRED | GLenum | Yes |
| CONDITION_SATISFIED | [GLenum](#GLenum) | Yes| | CONDITION_SATISFIED | GLenum | Yes |
| WAIT_FAILED | [GLenum](#GLenum) | Yes| | WAIT_FAILED | GLenum | Yes |
| SYNC_FLUSH_COMMANDS_BIT | [GLenum](#GLenum) | Yes| | SYNC_FLUSH_COMMANDS_BIT | GLenum | Yes |
| VERTEX_ATTRIB_ARRAY_DIVISOR | [GLenum](#GLenum) | Yes| | VERTEX_ATTRIB_ARRAY_DIVISOR | GLenum | Yes |
| ANY_SAMPLES_PASSED | [GLenum](#GLenum) | Yes| | ANY_SAMPLES_PASSED | GLenum | Yes |
| ANY_SAMPLES_PASSED_CONSERVATIVE | [GLenum](#GLenum) | Yes| | ANY_SAMPLES_PASSED_CONSERVATIVE | GLenum | Yes |
| SAMPLER_BINDING | [GLenum](#GLenum) | Yes| | SAMPLER_BINDING | GLenum | Yes |
| RGB10_A2UI | [GLenum](#GLenum) | Yes| | RGB10_A2UI | GLenum | Yes |
| INT_2_10_10_10_REV | [GLenum](#GLenum) | Yes| | INT_2_10_10_10_REV | GLenum | Yes |
| TRANSFORM_FEEDBACK | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK | GLenum | Yes |
| TRANSFORM_FEEDBACK_PAUSED | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_PAUSED | GLenum | Yes |
| TRANSFORM_FEEDBACK_ACTIVE | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_ACTIVE | GLenum | Yes |
| TRANSFORM_FEEDBACK_BINDING | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BINDING | GLenum | Yes |
| TEXTURE_IMMUTABLE_FORMAT | [GLenum](#GLenum) | Yes| | TEXTURE_IMMUTABLE_FORMAT | GLenum | Yes |
| MAX_ELEMENT_INDEX | [GLenum](#GLenum) | Yes| | MAX_ELEMENT_INDEX | GLenum | Yes |
| TEXTURE_IMMUTABLE_LEVELS | [GLenum](#GLenum) | Yes| | TEXTURE_IMMUTABLE_LEVELS | GLenum | Yes |
| TIMEOUT_IGNORED | [GLenum](#GLenum) | Yes| | TIMEOUT_IGNORED | GLint64 | Yes |
| MAX_CLIENT_WAIT_TIMEOUT_WEBGL | [GLenum](#GLenum) | Yes| | MAX_CLIENT_WAIT_TIMEOUT_WEBGL | GLenum | Yes |
### Methods ### Methods
| Method| Return Value Type| | Method | Return&nbsp;Value&nbsp;Type |
| -------- | ---------- | | -------- | -------- |
| copyBufferSubData(readTarget:&nbsp; GLenum,&nbsp; writeTarget:&nbsp; GLenum,&nbsp; readOffset:&nbsp; GLintptr,&nbsp; writeOffset:&nbsp; GLintptr,&nbsp; size:&nbsp; GLsizeiptr) | void | | copyBufferSubData(readTarget:&nbsp;GLenum,&nbsp;writeTarget:&nbsp;GLenum,&nbsp;readOffset:&nbsp;GLintptr,&nbsp;writeOffset:&nbsp;GLintptr,&nbsp;size:&nbsp;GLsizeiptr) | void |
| getBufferSubData(target:&nbsp; GLenum,&nbsp; srcByteOffset:&nbsp; GLintptr,&nbsp; dstBuffer:&nbsp; ArrayBufferView,&nbsp; dstOffset?:&nbsp; GLuint,&nbsp; length?:&nbsp; GLuint) | void | | getBufferSubData(target:&nbsp;GLenum,&nbsp;srcByteOffset:&nbsp;GLintptr,&nbsp;dstBuffer:&nbsp;ArrayBufferView,&nbsp;dstOffset?:&nbsp;GLuint,&nbsp;length?:&nbsp;GLuint) | void |
| blitFramebuffer(srcX0:&nbsp; GLint,&nbsp; srcY0:&nbsp; GLint,&nbsp; srcX1:&nbsp; GLint,&nbsp; srcY1:&nbsp; GLint,&nbsp; dstX0:&nbsp; GLint,&nbsp; dstY0:&nbsp; GLint,&nbsp; dstX1:&nbsp; GLint,&nbsp; dstY1:&nbsp; GLint,&nbsp; mask:&nbsp; GLbitfield,&nbsp; filter:&nbsp; GLenum) | void | | blitFramebuffer(srcX0:&nbsp;GLint,&nbsp;srcY0:&nbsp;GLint,&nbsp;srcX1:&nbsp;GLint,&nbsp;srcY1:&nbsp;GLint,&nbsp;dstX0:&nbsp;GLint,&nbsp;dstY0:&nbsp;GLint,&nbsp;dstX1:&nbsp;GLint,&nbsp;dstY1:&nbsp;GLint,&nbsp;mask:&nbsp;GLbitfield,&nbsp;filter:&nbsp;GLenum) | void |
| framebufferTextureLayer(target:&nbsp; GLenum,&nbsp; attachment:&nbsp; GLenum,&nbsp; texture:&nbsp; WebGLTexture&nbsp;\|&nbsp;null,&nbsp; level:&nbsp; GLint,&nbsp; layer:&nbsp; GLint) | void | | framebufferTextureLayer(target:&nbsp;GLenum,&nbsp;attachment:&nbsp;GLenum,&nbsp;texture:&nbsp;WebGLTexture&nbsp;\|&nbsp;null,&nbsp;level:&nbsp;GLint,&nbsp;layer:&nbsp;GLint) | void |
| invalidateFramebuffer(target:&nbsp; GLenum,&nbsp; attachments:&nbsp; GLenum[]) | void | | invalidateFramebuffer(target:&nbsp;GLenum,&nbsp;attachments:&nbsp;GLenum[]) | void |
| invalidateSubFramebuffer(target:&nbsp; GLenum,&nbsp; attachments:&nbsp; GLenum[],&nbsp; x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei) | void | | invalidateSubFramebuffer(target:&nbsp;GLenum,&nbsp;attachments:&nbsp;GLenum[],&nbsp;x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void |
| readBuffer(src:&nbsp; GLenum) | void | | readBuffer(src:&nbsp;GLenum) | void |
| getInternalformatParameter(target:&nbsp; GLenum,&nbsp; internalformat:&nbsp; GLenum,&nbsp; pname:&nbsp; GLenum) | any | | getInternalformatParameter(target:&nbsp;GLenum,&nbsp;internalformat:&nbsp;GLenum,&nbsp;pname:&nbsp;GLenum) | any |
| renderbufferStorageMultisample(target:&nbsp; GLenum,&nbsp; samples:&nbsp; GLsizei,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei) | void | | renderbufferStorageMultisample(target:&nbsp;GLenum,&nbsp;samples:&nbsp;GLsizei,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void |
| texStorage2D(target:&nbsp; GLenum,&nbsp; levels:&nbsp; GLsizei,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei) | void | | texStorage2D(target:&nbsp;GLenum,&nbsp;levels:&nbsp;GLsizei,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void |
| texStorage3D(target:&nbsp; GLenum,&nbsp; levels:&nbsp; GLsizei,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei) | void | | texStorage3D(target:&nbsp;GLenum,&nbsp;levels:&nbsp;GLsizei,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei) | void |
| texImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pboOffset:&nbsp; GLintptr) | void | | texImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pboOffset:&nbsp;GLintptr) | void |
| texImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView&nbsp;\|&nbsp;null) | void | | texImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
| texImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset:&nbsp; GLuint) | void | | texImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset:&nbsp;GLuint) | void |
| texSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pboOffset:&nbsp; GLintptr) | void | | texSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pboOffset:&nbsp;GLintptr) | void |
| texSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView&nbsp;\|&nbsp;null,&nbsp; srcOffset?:&nbsp; GLuint) | void | | texSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null,&nbsp;srcOffset?:&nbsp;GLuint) | void |
| copyTexSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei) | void | | copyTexSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void |
| compressedTexImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; imageSize:&nbsp; GLsizei,&nbsp; offset:&nbsp; GLintptr) | void | | compressedTexImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;imageSize:&nbsp;GLsizei,&nbsp;offset:&nbsp;GLintptr) | void |
| compressedTexImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLengthOverride?:&nbsp; GLuint) | void | | compressedTexImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLengthOverride?:&nbsp;GLuint) | void |
| compressedTexSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; imageSize:&nbsp; GLsizei,&nbsp; offset:&nbsp; GLintptr) | void | | compressedTexSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;imageSize:&nbsp;GLsizei,&nbsp;offset:&nbsp;GLintptr) | void |
| compressedTexSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLengthOverride?:&nbsp; GLuint) | void | | compressedTexSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLengthOverride?:&nbsp;GLuint) | void |
| getFragDataLocation(program:&nbsp; WebGLProgram,&nbsp; name:&nbsp; string) | GLint | | getFragDataLocation(program:&nbsp;WebGLProgram,&nbsp;name:&nbsp;string) | GLint |
| uniform1ui(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; v0:&nbsp; GLuint) | void | | uniform1ui(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;v0:&nbsp;GLuint) | void |
| uniform2ui(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; v0:&nbsp; GLuint,&nbsp; v1:&nbsp; GLuint) | void | | uniform2ui(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;v0:&nbsp;GLuint,&nbsp;v1:&nbsp;GLuint) | void |
| uniform3ui(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; v0:&nbsp; GLuint,&nbsp; v1:&nbsp; GLuint,&nbsp; v2:&nbsp; GLuint) | void | | uniform3ui(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;v0:&nbsp;GLuint,&nbsp;v1:&nbsp;GLuint,&nbsp;v2:&nbsp;GLuint) | void |
| uniform4ui(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; v0:&nbsp; GLuint,&nbsp; v1:&nbsp; GLuint,&nbsp; v2:&nbsp; GLuint,&nbsp; v3:&nbsp; GLuint) | void | | uniform4ui(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;v0:&nbsp;GLuint,&nbsp;v1:&nbsp;GLuint,&nbsp;v2:&nbsp;GLuint,&nbsp;v3:&nbsp;GLuint) | void |
| uniform1uiv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Uint32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform1uiv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Uint32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform2uiv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Uint32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform2uiv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Uint32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform3uiv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Uint32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform3uiv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Uint32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform4uiv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Uint32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform4uiv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Uint32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix3x2fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix3x2fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix4x2fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix4x2fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix2x3fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix2x3fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix4x3fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix4x3fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix2x4fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix2x4fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix3x4fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix3x4fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| vertexAttribI4i(index:&nbsp; GLuint,&nbsp; x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; z:&nbsp; GLint,&nbsp; w:&nbsp; GLint) | void | | vertexAttribI4i(index:&nbsp;GLuint,&nbsp;x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;z:&nbsp;GLint,&nbsp;w:&nbsp;GLint) | void |
| vertexAttribI4iv(index:&nbsp; GLuint,&nbsp; values:&nbsp; Int32List) | void | | vertexAttribI4iv(index:&nbsp;GLuint,&nbsp;values:&nbsp;Int32List) | void |
| vertexAttribI4ui(index:&nbsp; GLuint,&nbsp; x:&nbsp; GLuint,&nbsp; y:&nbsp; GLuint,&nbsp; z:&nbsp; GLuint,&nbsp; w:&nbsp; GLuint) | void | | vertexAttribI4ui(index:&nbsp;GLuint,&nbsp;x:&nbsp;GLuint,&nbsp;y:&nbsp;GLuint,&nbsp;z:&nbsp;GLuint,&nbsp;w:&nbsp;GLuint) | void |
| vertexAttribI4uiv(index:&nbsp; GLuint,&nbsp; values:&nbsp; Uint32List) | void | | vertexAttribI4uiv(index:&nbsp;GLuint,&nbsp;values:&nbsp;Uint32List) | void |
| vertexAttribIPointer(index:&nbsp; GLuint,&nbsp; size:&nbsp; GLint,&nbsp; type:&nbsp; GLenum,&nbsp; stride:&nbsp; GLsizei,&nbsp; offset:&nbsp; GLintptr) | void | | vertexAttribIPointer(index:&nbsp;GLuint,&nbsp;size:&nbsp;GLint,&nbsp;type:&nbsp;GLenum,&nbsp;stride:&nbsp;GLsizei,&nbsp;offset:&nbsp;GLintptr) | void |
| vertexAttribDivisor(index:&nbsp; GLuint,&nbsp; divisor:&nbsp; GLuint) | void | | vertexAttribDivisor(index:&nbsp;GLuint,&nbsp;divisor:&nbsp;GLuint) | void |
| drawArraysInstanced(mode:&nbsp; GLenum,&nbsp; first:&nbsp; GLint,&nbsp; count:&nbsp; GLsizei,&nbsp; instanceCount:&nbsp; GLsizei) | void | | drawArraysInstanced(mode:&nbsp;GLenum,&nbsp;first:&nbsp;GLint,&nbsp;count:&nbsp;GLsizei,&nbsp;instanceCount:&nbsp;GLsizei) | void |
| drawElementsInstanced(mode:&nbsp; GLenum,&nbsp; count:&nbsp; GLsizei,&nbsp; type:&nbsp; GLenum,&nbsp; offset:&nbsp; GLintptr,&nbsp; instanceCount:&nbsp; GLsizei) | void | | drawElementsInstanced(mode:&nbsp;GLenum,&nbsp;count:&nbsp;GLsizei,&nbsp;type:&nbsp;GLenum,&nbsp;offset:&nbsp;GLintptr,&nbsp;instanceCount:&nbsp;GLsizei) | void |
| drawRangeElements(mode:&nbsp; GLenum,&nbsp; start:&nbsp; GLuint,&nbsp; end:&nbsp; GLuint,&nbsp; count:&nbsp; GLsizei,&nbsp; type:&nbsp; GLenum,&nbsp; offset:&nbsp; GLintptr) | void | | drawRangeElements(mode:&nbsp;GLenum,&nbsp;start:&nbsp;GLuint,&nbsp;end:&nbsp;GLuint,&nbsp;count:&nbsp;GLsizei,&nbsp;type:&nbsp;GLenum,&nbsp;offset:&nbsp;GLintptr) | void |
| drawBuffers(buffers:&nbsp; GLenum[]) | void | | drawBuffers(buffers:&nbsp;GLenum[]) | void |
| clearBufferfv(buffer:&nbsp; GLenum,&nbsp; drawbuffer:&nbsp; GLint,&nbsp; values:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint) | void | | clearBufferfv(buffer:&nbsp;GLenum,&nbsp;drawbuffer:&nbsp;GLint,&nbsp;values:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint) | void |
| clearBufferiv(buffer:&nbsp; GLenum,&nbsp; drawbuffer:&nbsp; GLint,&nbsp; values:&nbsp; Int32List,&nbsp; srcOffset?:&nbsp; GLuint) | void | | clearBufferiv(buffer:&nbsp;GLenum,&nbsp;drawbuffer:&nbsp;GLint,&nbsp;values:&nbsp;Int32List,&nbsp;srcOffset?:&nbsp;GLuint) | void |
| clearBufferuiv(buffer:&nbsp; GLenum,&nbsp; drawbuffer:&nbsp; GLint,&nbsp; values:&nbsp; Uint32List,&nbsp; srcOffset?:&nbsp; GLuint) | void | | clearBufferuiv(buffer:&nbsp;GLenum,&nbsp;drawbuffer:&nbsp;GLint,&nbsp;values:&nbsp;Uint32List,&nbsp;srcOffset?:&nbsp;GLuint) | void |
| clearBufferfi(buffer:&nbsp; GLenum,&nbsp; drawbuffer:&nbsp; GLint,&nbsp; depth:&nbsp; GLfloat,&nbsp; stencil:&nbsp; GLint) | void | | clearBufferfi(buffer:&nbsp;GLenum,&nbsp;drawbuffer:&nbsp;GLint,&nbsp;depth:&nbsp;GLfloat,&nbsp;stencil:&nbsp;GLint) | void |
| createQuery() | WebGLQuery&nbsp;\|&nbsp;null | | createQuery() | WebGLQuery&nbsp;\|&nbsp;null |
| deleteQuery(query:&nbsp; WebGLQuery&nbsp;\|&nbsp;null) | void | | deleteQuery(query:&nbsp;WebGLQuery&nbsp;\|&nbsp;null) | void |
| isQuery(query:&nbsp; WebGLQuery&nbsp;\|&nbsp;null) | GLboolean | | isQuery(query:&nbsp;WebGLQuery&nbsp;\|&nbsp;null) | GLboolean |
| beginQuery(target:&nbsp; GLenum,&nbsp; query:&nbsp; WebGLQuery) | void | | beginQuery(target:&nbsp;GLenum,&nbsp;query:&nbsp;WebGLQuery) | void |
| endQuery(target:&nbsp; GLenum) | void | | endQuery(target:&nbsp;GLenum) | void |
| getQuery(target:&nbsp; GLenum,&nbsp; pname:&nbsp; GLenum) | WebGLQuery&nbsp;\|&nbsp;null | | getQuery(target:&nbsp;GLenum,&nbsp;pname:&nbsp;GLenum) | WebGLQuery&nbsp;\|&nbsp;null |
| getQueryParameter(query:&nbsp; WebGLQuery,&nbsp; pname:&nbsp; GLenum) | any | | getQueryParameter(query:&nbsp;WebGLQuery,&nbsp;pname:&nbsp;GLenum) | any |
| createSampler() | WebGLSampler&nbsp;\|&nbsp;null | | createSampler() | WebGLSampler&nbsp;\|&nbsp;null |
| deleteSampler(sampler:&nbsp; WebGLSampler&nbsp;\|&nbsp;null) | void | | deleteSampler(sampler:&nbsp;WebGLSampler&nbsp;\|&nbsp;null) | void |
| isSampler(sampler:&nbsp; WebGLSampler&nbsp;\|&nbsp;null) | GLboolean | | isSampler(sampler:&nbsp;WebGLSampler&nbsp;\|&nbsp;null) | GLboolean |
| bindSampler(unit:&nbsp; GLuint,&nbsp; sampler:&nbsp; WebGLSampler&nbsp;\|&nbsp;null) | void | | bindSampler(unit:&nbsp;GLuint,&nbsp;sampler:&nbsp;WebGLSampler&nbsp;\|&nbsp;null) | void |
| samplerParameteri(sampler:&nbsp; WebGLSampler,&nbsp; pname:&nbsp; GLenum,&nbsp; param:&nbsp; GLint) | void | | samplerParameteri(sampler:&nbsp;WebGLSampler,&nbsp;pname:&nbsp;GLenum,&nbsp;param:&nbsp;GLint) | void |
| samplerParameterf(sampler:&nbsp; WebGLSampler,&nbsp; pname:&nbsp; GLenum,&nbsp; param:&nbsp; GLfloat) | void | | samplerParameterf(sampler:&nbsp;WebGLSampler,&nbsp;pname:&nbsp;GLenum,&nbsp;param:&nbsp;GLfloat) | void; |
| getSamplerParameter(sampler:&nbsp; WebGLSampler,&nbsp; pname:&nbsp; GLenum) | any | | getSamplerParameter(sampler:&nbsp;WebGLSampler,&nbsp;pname:&nbsp;GLenum) | any |
| fenceSync(condition:&nbsp; GLenum,&nbsp; flags:&nbsp; GLbitfield) | WebGLSync&nbsp;\|&nbsp;null | | fenceSync(condition:&nbsp;GLenum,&nbsp;flags:&nbsp;GLbitfield) | WebGLSync&nbsp;\|&nbsp;null |
| isSync(sync:&nbsp; WebGLSync&nbsp;\|&nbsp;null) | GLboolean | | isSync(sync:&nbsp;WebGLSync&nbsp;\|&nbsp;null) | GLboolean |
| deleteSync(sync:&nbsp; WebGLSync&nbsp;\|&nbsp;null) | void | | deleteSync(sync:&nbsp;WebGLSync&nbsp;\|&nbsp;null) | void |
| clientWaitSync(sync:&nbsp; WebGLSync,&nbsp; flags:&nbsp; GLbitfield,&nbsp; timeout:&nbsp; GLuint64) | GLenum | | clientWaitSync(sync:&nbsp;WebGLSync,&nbsp;flags:&nbsp;GLbitfield,&nbsp;timeout:&nbsp;GLuint64) | GLenum |
| waitSync(sync:&nbsp; WebGLSync,&nbsp; flags:&nbsp; GLbitfield,&nbsp; timeout:&nbsp; GLint64) | void | | waitSync(sync:&nbsp;WebGLSync,&nbsp;flags:&nbsp;GLbitfield,&nbsp;timeout:&nbsp;GLint64) | void |
| getSyncParameter(sync:&nbsp; WebGLSync,&nbsp; pname:&nbsp; GLenum) | any | | getSyncParameter(sync:&nbsp;WebGLSync,&nbsp;pname:&nbsp;GLenum) | any |
| createTransformFeedback() | WebGLTransformFeedback&nbsp;\|&nbsp;null | | createTransformFeedback() | WebGLTransformFeedback&nbsp;\|&nbsp;null |
| deleteTransformFeedback(tf:&nbsp; WebGLTransformFeedback&nbsp;\|&nbsp;null) | void | | deleteTransformFeedback(tf:&nbsp;WebGLTransformFeedback&nbsp;\|&nbsp;null) | void |
| isTransformFeedback(tf:&nbsp; WebGLTransformFeedback&nbsp;\|&nbsp;null) | GLboolean | | isTransformFeedback(tf:&nbsp;WebGLTransformFeedback&nbsp;\|&nbsp;null) | GLboolean |
| bindTransformFeedback(target:&nbsp; GLenum,&nbsp; tf:&nbsp; WebGLTransformFeedback&nbsp;\|&nbsp;null) | void | | bindTransformFeedback(target:&nbsp;GLenum,&nbsp;tf:&nbsp;WebGLTransformFeedback&nbsp;\|&nbsp;null) | void |
| beginTransformFeedback(primitiveMode:&nbsp; GLenum) | void | | beginTransformFeedback(primitiveMode:&nbsp;GLenum) | void |
| endTransformFeedback() | void | | endTransformFeedback() | void |
| transformFeedbackVaryings(program:&nbsp; WebGLProgram,&nbsp; varyings:&nbsp; string[],&nbsp; bufferMode:&nbsp; GLenum) | void | | transformFeedbackVaryings(program:&nbsp;WebGLProgram,&nbsp;varyings:&nbsp;string[],&nbsp;bufferMode:&nbsp;GLenum) | void |
| getTransformFeedbackVarying(program:&nbsp; WebGLProgram,&nbsp; index:&nbsp; GLuint) | WebGLActiveInfo&nbsp;\|&nbsp;null | | getTransformFeedbackVarying(program:&nbsp;WebGLProgram,&nbsp;index:&nbsp;GLuint) | WebGLActiveInfo&nbsp;\|&nbsp;null |
| pauseTransformFeedback() | void | | pauseTransformFeedback() | void |
| resumeTransformFeedback() | void | | resumeTransformFeedback() | void |
| bindBufferBase(target:&nbsp; GLenum,&nbsp; index:&nbsp; GLuint,&nbsp; buffer:&nbsp; WebGLBuffer&nbsp;\|&nbsp;null) | void | | bindBufferBase(target:&nbsp;GLenum,&nbsp;index:&nbsp;GLuint,&nbsp;buffer:&nbsp;WebGLBuffer&nbsp;\|&nbsp;null) | void |
| bindBufferRange(target:&nbsp; GLenum,&nbsp; index:&nbsp; GLuint,&nbsp; buffer:&nbsp; WebGLBuffer&nbsp;\|&nbsp;null,&nbsp; offset:&nbsp; GLintptr,&nbsp; size:&nbsp; GLsizeiptr) | void | | bindBufferRange(target:&nbsp;GLenum,&nbsp;index:&nbsp;GLuint,&nbsp;buffer:&nbsp;WebGLBuffer&nbsp;\|&nbsp;null,&nbsp;offset:&nbsp;GLintptr,&nbsp;size:&nbsp;GLsizeiptr) | void |
| getIndexedParameter(target:&nbsp; GLenum,&nbsp; index:&nbsp; GLuint) | any | | getIndexedParameter(target:&nbsp;GLenum,&nbsp;index:&nbsp;GLuint) | any |
| getUniformIndices(program:&nbsp; WebGLProgram,&nbsp; uniformNames:&nbsp; string[]) | GLuint[]&nbsp;\|&nbsp;null | | getUniformIndices(program:&nbsp;WebGLProgram,&nbsp;uniformNames:&nbsp;string[]) | GLuint[]&nbsp;\|&nbsp;null |
| getActiveUniforms(program:&nbsp; WebGLProgram,&nbsp; uniformIndices:&nbsp; GLuint[],&nbsp; pname:&nbsp; GLenum) | any | | getActiveUniforms(program:&nbsp;WebGLProgram,&nbsp;uniformIndices:&nbsp;GLuint[],&nbsp;pname:&nbsp;GLenum) | any |
| getUniformBlockIndex(program:&nbsp; WebGLProgram,&nbsp; uniformBlockName:&nbsp; string) | GLuint | | getUniformBlockIndex(program:&nbsp;WebGLProgram,&nbsp;uniformBlockName:&nbsp;string) | GLuint |
| getActiveUniformBlockParameter(program:&nbsp; WebGLProgram,&nbsp; uniformBlockIndex:&nbsp; GLuint,&nbsp; pname:&nbsp; GLenum) | any | | getActiveUniformBlockParameter(program:&nbsp;WebGLProgram,&nbsp;uniformBlockIndex:&nbsp;GLuint,&nbsp;pname:&nbsp;GLenum) | any |
| getActiveUniformBlockName(program:&nbsp; WebGLProgram,&nbsp; uniformBlockIndex:&nbsp; GLuint) | string&nbsp;\|&nbsp;null | | getActiveUniformBlockName(program:&nbsp;WebGLProgram,&nbsp;uniformBlockIndex:&nbsp;GLuint) | string&nbsp;\|&nbsp;null |
| uniformBlockBinding(program:&nbsp; WebGLProgram,&nbsp; uniformBlockIndex:&nbsp; GLuint,&nbsp; uniformBlockBinding:&nbsp; GLuint) | void | | uniformBlockBinding(program:&nbsp;WebGLProgram,&nbsp;uniformBlockIndex:&nbsp;GLuint,&nbsp;uniformBlockBinding:&nbsp;GLuint) | void |
| createVertexArray() | WebGLVertexArrayObject&nbsp;\|&nbsp;null | | createVertexArray() | WebGLVertexArrayObject&nbsp;\|&nbsp;null |
| deleteVertexArray(vertexArray:&nbsp; WebGLVertexArrayObject&nbsp;\|&nbsp;null) | void | | deleteVertexArray(vertexArray:&nbsp;WebGLVertexArrayObject&nbsp;\|&nbsp;null) | void |
| isVertexArray(vertexArray:&nbsp; WebGLVertexArrayObject&nbsp;\|&nbsp;null) | GLboolean | | isVertexArray(vertexArray:&nbsp;WebGLVertexArrayObject&nbsp;\|&nbsp;null) | GLboolean |
| bindVertexArray(array:&nbsp; WebGLVertexArrayObject&nbsp;\|&nbsp;null) | void | | bindVertexArray(array:&nbsp;WebGLVertexArrayObject&nbsp;\|&nbsp;null) | void |
## webgl.WebGL2RenderingContextOverloads ## WebGL2RenderingContextOverloads
WebGL2RenderingContextOverloads WebGL2RenderingContextOverloads
| Method| Return Value Type| | Method | Return&nbsp;Value&nbsp;Type |
| -------- | ---------- | | -------- | -------- |
| bufferData(target:&nbsp; GLenum,&nbsp; size:&nbsp; GLsizeiptr,&nbsp; usage:&nbsp; GLenum) | void | | bufferData(target:&nbsp;GLenum,&nbsp;size:&nbsp;GLsizeiptr,&nbsp;usage:&nbsp;GLenum) | void |
| bufferData(target:&nbsp; GLenum,&nbsp; srcData:&nbsp; BufferSource&nbsp;\|&nbsp;null,&nbsp; usage:&nbsp; GLenum) | void | | bufferData(target:&nbsp;GLenum,&nbsp;srcData:&nbsp;BufferSource&nbsp;\|&nbsp;null,&nbsp;usage:&nbsp;GLenum) | void |
| bufferSubData(target:&nbsp; GLenum,&nbsp; dstByteOffset:&nbsp; GLintptr,&nbsp; srcData:&nbsp; BufferSource) | void | | bufferSubData(target:&nbsp;GLenum,&nbsp;dstByteOffset:&nbsp;GLintptr,&nbsp;srcData:&nbsp;BufferSource) | void |
| bufferData(target:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; usage:&nbsp; GLenum,&nbsp; srcOffset:&nbsp; GLuint,&nbsp; length?:&nbsp; GLuint) | void | | bufferData(target:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;usage:&nbsp;GLenum,&nbsp;srcOffset:&nbsp;GLuint,&nbsp;length?:&nbsp;GLuint) | void |
| bufferSubData(target:&nbsp; GLenum,&nbsp; dstByteOffset:&nbsp; GLintptr,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset:&nbsp; GLuint,&nbsp; length?:&nbsp; GLuint) | void | | bufferSubData(target:&nbsp;GLenum,&nbsp;dstByteOffset:&nbsp;GLintptr,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset:&nbsp;GLuint,&nbsp;length?:&nbsp;GLuint) | void |
| texImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pixels:&nbsp; ArrayBufferView&nbsp;\|&nbsp;null) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
| texImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pixels:&nbsp; ArrayBufferView&nbsp;\|&nbsp;null) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
| texSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pboOffset:&nbsp; GLintptr) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pboOffset:&nbsp;GLintptr) | void |
| texImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset:&nbsp; GLuint) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset:&nbsp;GLuint) | void |
| texSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pboOffset:&nbsp; GLintptr) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pboOffset:&nbsp;GLintptr) | void |
| texSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset:&nbsp; GLuint) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset:&nbsp;GLuint) | void |
| compressedTexImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; imageSize:&nbsp; GLsizei,&nbsp; offset:&nbsp; GLintptr) | void | | compressedTexImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;imageSize:&nbsp;GLsizei,&nbsp;offset:&nbsp;GLintptr) | void |
| compressedTexImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLengthOverride?:&nbsp; GLuint) | void | | compressedTexImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLengthOverride?:&nbsp;GLuint) | void |
| compressedTexSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; imageSize:&nbsp; GLsizei,&nbsp; offset:&nbsp; GLintptr) | void | | compressedTexSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;imageSize:&nbsp;GLsizei,&nbsp;offset:&nbsp;GLintptr) | void |
| compressedTexSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLengthOverride?:&nbsp; GLuint) | void | | compressedTexSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLengthOverride?:&nbsp;GLuint) | void |
| uniform1fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform1fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform2fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform2fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform3fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform3fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform4fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform4fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform1iv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Int32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform1iv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Int32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform2iv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Int32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform2iv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Int32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform3iv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Int32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform3iv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Int32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform4iv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Int32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform4iv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Int32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix2fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix2fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix3fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix3fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix4fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix4fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| readPixels(x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; dstData:&nbsp; ArrayBufferView&nbsp;\|&nbsp;null) | void | | readPixels(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;dstData:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
| readPixels(x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; offset:&nbsp; GLintptr) | void | | readPixels(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;offset:&nbsp;GLintptr) | void |
| readPixels(x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; dstData:&nbsp; ArrayBufferView,&nbsp; dstOffset:&nbsp; GLuint) | void | | readPixels(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;dstData:&nbsp;ArrayBufferView,&nbsp;dstOffset:&nbsp;GLuint) | void |
## webgl.WebGLQuery
WebGLQuery
## webgl.WebGLSampler
WebGLSampler
## webgl.WebGLSync
WebGLSync
## webgl.WebGLTransformFeedback
WebGLTransformFeedback
## webgl.WebGLVertexArrayObject
WebGLVertexArrayObject
...@@ -586,7 +586,7 @@ Obtains the size of the element and its position relative to the window. ...@@ -586,7 +586,7 @@ Obtains the size of the element and its position relative to the window.
## createIntersectionObserver<a name="section7425195215615"></a> ## createIntersectionObserver<a name="section7425195215615"></a>
createIntersectionObserver\(param?: [ObserverParam](#table143341035121917)\):[Observer](#table4506633141711) createIntersectionObserver\(param?: ObserverParam):Observer
Gets notified of the visibility of an element on the current page. Gets notified of the visibility of an element on the current page.
......
...@@ -61,8 +61,7 @@ Before creating a project, you need to install DevEco Studio. For details, see ...@@ -61,8 +61,7 @@ Before creating a project, you need to install DevEco Studio. For details, see
![](figures/en-us_image_0000001148858818.png) ![](figures/en-us_image_0000001148858818.png)
Before the installation, you must configure an application signature. For details, see [Configuring the OpenHarmony App Signature](https://gitee.com/openharmony/docs/blob/master/en/application-dev/quick-start/configuring-the-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](../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.
![](figures/en-us_image_0000001158896538.png) ![](figures/en-us_image_0000001158896538.png)
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
- [Compilation and Building](subsys-build.md) - [Compilation and Building](subsys-build.md)
- [Building Guidelines for Mini and Small Systems](subsys-build-mini-lite.md) - [Building Guidelines for Mini and Small Systems](subsys-build-mini-lite.md)
- [Building Guidelines for Standard Systems](subsys-build-standard-large.md) - [Building Guidelines for Standard Systems](subsys-build-standard-large.md)
- [Build System Coding Specifications and Best Practices](subsys-build-gn-coding-style-and-best-practice.md)
- [Distributed Remote Startup](subsys-remote-start.md) - [Distributed Remote Startup](subsys-remote-start.md)
- [Graphics](subsys-graphics.md) - [Graphics](subsys-graphics.md)
- [Graphics](subsys-graphics-overview.md) - [Graphics](subsys-graphics-overview.md)
...@@ -80,12 +79,10 @@ ...@@ -80,12 +79,10 @@
- [Testing](subsys-testguide-test.md) - [Testing](subsys-testguide-test.md)
- [DFX](subsys-dfx.md) - [DFX](subsys-dfx.md)
- [DFX](subsys-dfx-overview.md) - [DFX](subsys-dfx-overview.md)
- [Development Guidelines on HiLog ](subsys-dfx-hilog-rich.md) - [HiLog Development](subsys-dfx-hilog-rich.md)
- [Development Guidelines on HiLog\_Lite](subsys-dfx-hilog-lite.md) - [HiLog_Lite Development](subsys-dfx-hilog-lite.md)
- [HiTrace Development](subsys-dfx-hitrace.md)
- [HiCollie Development](subsys-dfx-hicollie.md)
- [Development Guidelines on HiSysEvent](subsys-dfx-hisysevent.md)
- [HiSysEvent Development](subsys-dfx-hisysevent.md) - [HiSysEvent Development](subsys-dfx-hisysevent.md)
- [HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md)
- [HiSysEvent Logging](subsys-dfx-hisysevent-logging.md) - [HiSysEvent Logging](subsys-dfx-hisysevent-logging.md)
- [HiSysEvent Listening](subsys-dfx-hisysevent-listening.md) - [HiSysEvent Listening](subsys-dfx-hisysevent-listening.md)
- [HiSysEvent Query](subsys-dfx-hisysevent-query.md) - [HiSysEvent Query](subsys-dfx-hisysevent-query.md)
......
# Development Guidelines on HiLog\_Lite<a name="EN-US_TOPIC_0000001185815838"></a> # HiLog\_Lite Development<a name="EN-US_TOPIC_0000001185815838"></a>
## Overview<a name="section775017517390"></a> ## Overview<a name="section775017517390"></a>
......
# HiSysEvent Listening<a name="EN-US_TOPIC_0000001185655868"></a> # HiSysEvent Listening<a name="EN-US_TOPIC_0000001185655868"></a>
- [Overview](#section315316685112)
- [Introduction](#section123181433335224)
- [Constraints](#section123181433375224)
- [Development Guidelines](#section315316685113)
- [Available APIs](#section0342191810519)
- [Development Example](#section123181432175110)
## Overview<a name="section315316685112"></a> ## Overview<a name="section315316685112"></a>
HiSysEvent supports listening for events across processes. You can register a listener to listen for concerned events on a real-time basis. For example, you can enable the battery module to listen for power consumption event for power usage analysis. ### Introduction<a name="section123181433335224"></a>
## Available APIs<a name="section0342191810519"></a> HiSysEvent supports listening for events across processes. You can register a listener to listen for concerned events on a real-time basis. For example, you can enable the battery module to listen for power consumption events for power usage analysis.
**Table 1** HiSysEvent listener APIs ### Constraints<a name="section123181433375224"></a>
<a name="table1844019587496"></a> Before subscribing to system events, you need to configure HiSysEvent logging. For details, see [HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md).
<table><thead align="left"><tr id="row1440058184916"><th class="cellrowborder" valign="top" width="48.120000000000005%" id="mcps1.2.3.1.1"><p id="p19441135844915"><a name="p19441135844915"></a><a name="p19441135844915"></a>API</p>
</th> ## Development Guidelines<a name="section315316685113"></a>
<th class="cellrowborder" valign="top" width="51.88%" id="mcps1.2.3.1.2"><p id="p13441195815491"><a name="p13441195815491"></a><a name="p13441195815491"></a>Description</p>
</th> ### Available APIs<a name="section0342191810519"></a>
</tr>
</thead> **Table 1** EventListener APIs
<tbody><tr id="row16441155818499"><td class="cellrowborder" valign="top" width="48.120000000000005%" headers="mcps1.2.3.1.1 "><p id="p877916438211"><a name="p877916438211"></a><a name="p877916438211"></a>bool HiSysEventManager::AddEventListener(std::shared_ptr&lt;HiSysEventSubscribeCallBack&gt; listener, std::vector&lt;struct ListenerRule&gt;&amp; rules)</p>
</td> | API| Description|
<td class="cellrowborder" valign="top" width="51.88%" headers="mcps1.2.3.1.2 "><p id="p14727325133216"><a name="p14727325133216"></a><a name="p14727325133216"></a>Registers a listener for system events. You can listen for certain events by specifying rules.</p> | -------- | --------- |
<p id="p167271525203213"><a name="p167271525203213"></a><a name="p167271525203213"></a>Input arguments:</p> |bool HiSysEventManager::AddEventListener(std::shared_ptr&lt;HiSysEventSubscribeCallBackBase&gt; listener, std::vector&lt;ListenerRule&gt;&amp; rules)|Registers a listener for system events. You can listen for certain events by specifying rules. <br><br>Input arguments: <ul><li>**listener**: callback object for system events. </li><li>**rules**: rules for event listening. </li></ul>Return value:<ul><li>**0**: Repeated registration is successful. </li><li>**1**: Initial registration is successful. </li><li>Other values: Registration has failed.</li></ul>|
<a name="ul6717142214919"></a><a name="ul6717142214919"></a><ul id="ul6717142214919"><li><strong id="b5330432115819"><a name="b5330432115819"></a><a name="b5330432115819"></a>listener</strong>: callback object for system events.</li><li><strong id="b1518805912597"><a name="b1518805912597"></a><a name="b1518805912597"></a>rules</strong>: rules for event listening.</li></ul> |bool HiSysEventManager::RemoveListener(std::shared_ptr&lt;HiSysEventSubscribeCallBackBase&gt; listener)|Removes the listener for system events. <br><br>Input argument: <ul><li>**listener**: callback object for system events. </ul>Return value:<br>&emsp;&emsp;None.|
<p id="p83591223153818"><a name="p83591223153818"></a><a name="p83591223153818"></a>Return values</p>
<a name="ul12105842111913"></a><a name="ul12105842111913"></a><ul id="ul12105842111913"><li><strong id="b117641849702"><a name="b117641849702"></a><a name="b117641849702"></a>0</strong>: Repeated registration is successful.</li><li><strong id="b2682415314"><a name="b2682415314"></a><a name="b2682415314"></a>1</strong>: Initial registration is successful.</li><li>Other values: Registration has failed.</li></ul> **Table 2** Description of ListenerRule
</td>
</tr> | API| Description|
<tr id="row910319443242"><td class="cellrowborder" valign="top" width="48.120000000000005%" headers="mcps1.2.3.1.1 "><p id="p15104154411248"><a name="p15104154411248"></a><a name="p15104154411248"></a>bool HiSysEventManager::RemoveListener(std::shared_ptr&lt;HiSysEventSubscribeCallBack&gt; listener)</p> | -------- | --------- |
</td> |ListenerRule(const std::string&amp; tag, RuleType ruleType = RuleType::WHOLE_WORD)|Constructor used to create a **ListenerRule** object based on the event tag. <br><br>Input arguments:<ul><li>**tag**: indicates the event tag for the **ListenerRule** object. The value is a string of 1 to 16 characters, including uppercase letters, lowercase letters, and digits. </li><li>**ruleType**: indicates the type of the **ListenerRule** object. The value is an enum defined by **RuleType**.</li></ul>|
<td class="cellrowborder" valign="top" width="51.88%" headers="mcps1.2.3.1.2 "><p id="p1104194420248"><a name="p1104194420248"></a><a name="p1104194420248"></a>Removes the listener for system events.</p> |ListenerRule(const std::string&amp; domain, const std::string&amp; eventName, RuleType ruleType = RuleType::WHOLE_WORD)|Constructor used to create a **ListenerRule** object based on the event domain and event name. <br><br>Input arguments: <ul><li>**domain**: indicates the event domain for the **ListenerRule** object. The value is a string of 1 to 16 characters, including uppercase letters, digits, and underscores (&#95;). </li><li>**eventName**: indicates the event name for the **ListenerRule** object. The value is a string of 1 to 32 characters, including uppercase letters, digits, and underscores (&#95;). </li><li>**ruleType**: indicates the type of the **ListenerRule** object. The value is an enum defined by **RuleType**.</li></ul>|
<p id="p7943171095411"><a name="p7943171095411"></a><a name="p7943171095411"></a>Input arguments:</p> |ListenerRule(const std::string&amp; domain, const std::string& eventName, const std::string&amp; tag, RuleType ruleType = RuleType::WHOLE_WORD)|Constructor used to create a **ListenerRule** object based on the event domain, event name, and event tag. <br><br>Input arguments:<ul><li>**tag**: indicates the event tag for the **ListenerRule** object. The value is a string of 1 to 16 characters, including uppercase letters, lowercase letters, and digits. </li><li>**domain**: indicates the event domain for the **ListenerRule** object. The value is a string of 1 to 16 characters, including uppercase letters, digits, and underscores (&#95;). </li><li>**eventName**: indicates the event name for the **ListenerRule** object. The value is a string of 1 to 32 characters, including uppercase letters, digits, and underscores (&#95;). </li><li>**ruleType**: indicates the type of the **ListenerRule** object. The value is an enum defined by **RuleType**.</li></ul>|
<a name="ul894321075411"></a><a name="ul894321075411"></a><ul id="ul894321075411"><li><strong id="b178371510181317"><a name="b178371510181317"></a><a name="b178371510181317"></a>listener</strong>: callback object for system events.</li></ul>
<p id="p9744631162515"><a name="p9744631162515"></a><a name="p9744631162515"></a>Return value: none</p> **Table 3** Description of RuleType
</td>
</tr> | Enum| Description|
</tbody> | ------------ | ------------- |
</table> | WHOLE_WORD | Whole word matching|
| PREFIX | Prefix matching|
**Table 2** HiSysEvent listener rules | REGULAR | Regular expression matching|
<a name="table1144011610564"></a> **Table 4** Description of HiSysEventSubscribeCallBackBase
<table><thead align="left"><tr id="row124411716175611"><th class="cellrowborder" valign="top" width="48.11%" id="mcps1.2.3.1.1"><p id="p19441151675610"><a name="p19441151675610"></a><a name="p19441151675610"></a>Attribute</p>
</th> | API| Description|
<th class="cellrowborder" valign="top" width="51.89%" id="mcps1.2.3.1.2"><p id="p16441171616563"><a name="p16441171616563"></a><a name="p16441171616563"></a>Description</p> | -------- | --------- |
</th> |void HiSysEventSubscribeCallBackBase::OnHandle(const std::string&amp; domain, const std::string&amp; eventName, const int eventType, const std::string&amp; eventDetail)|Provides the callback of system events. <br><br>Input arguments: <ul><li>**domain**: indicates the domain to which the event belongs. </li><li>**eventName**: indicates the event name. </li><li>**eventType**: indicates the event type. </li><li>**eventDetail**: indicates the event information, in JSON format. </li></ul>Return value:<br>&emsp;&emsp;None.|
</tr>
</thead> ### Development Example<a name="section123181432175110"></a>
<tbody><tr id="row174411216105615"><td class="cellrowborder" valign="top" width="48.11%" headers="mcps1.2.3.1.1 "><p id="p496413536613"><a name="p496413536613"></a><a name="p496413536613"></a><span>uint32_t</span> ruleType</p>
</td> C++
<td class="cellrowborder" valign="top" width="51.89%" headers="mcps1.2.3.1.2 "><p id="p94416160565"><a name="p94416160565"></a><a name="p94416160565"></a>Rule type. The matching scope includes <strong id="b638713414175"><a name="b638713414175"></a><a name="b638713414175"></a>domain</strong> and <strong id="b128648618171"><a name="b128648618171"></a><a name="b128648618171"></a>eventName</strong>. The value can be any of the following:</p>
<a name="ul1652866141814"></a><a name="ul1652866141814"></a><ul id="ul1652866141814"><li>1: whole word matching.</li><li>2: prefix matching.</li><li>3: regular expression matching.</li><li>Other values: invalid matching mode.</li></ul>
</td>
</tr>
<tr id="row64411816125614"><td class="cellrowborder" valign="top" width="48.11%" headers="mcps1.2.3.1.1 "><p id="p1258135313712"><a name="p1258135313712"></a><a name="p1258135313712"></a>std::string domain</p>
</td>
<td class="cellrowborder" valign="top" width="51.89%" headers="mcps1.2.3.1.2 "><a name="ul14905926102311"></a><a name="ul14905926102311"></a><ul id="ul14905926102311"><li><strong id="b152431514132110"><a name="b152431514132110"></a><a name="b152431514132110"></a>domain</strong>: domain to which the event belongs. By default, an empty string indicates that the domain is successfully matched.</li></ul>
</td>
</tr>
<tr id="row244161615619"><td class="cellrowborder" valign="top" width="48.11%" headers="mcps1.2.3.1.1 "><p id="p227913101887"><a name="p227913101887"></a><a name="p227913101887"></a>std::string eventName</p>
</td>
<td class="cellrowborder" valign="top" width="51.89%" headers="mcps1.2.3.1.2 "><a name="ul248063132319"></a><a name="ul248063132319"></a><ul id="ul248063132319"><li><strong id="b197622401229"><a name="b197622401229"></a><a name="b197622401229"></a>eventName</strong>: event name. By default, an empty string indicates that the event name is successfully matched.</li></ul>
</td>
</tr>
</tbody>
</table>
**Table 3** HiSysEvent callback object
<a name="table1011703742711"></a>
<table><thead align="left"><tr id="row121187375270"><th class="cellrowborder" valign="top" width="48.25%" id="mcps1.2.3.1.1"><p id="p2118143782719"><a name="p2118143782719"></a><a name="p2118143782719"></a>API</p>
</th>
<th class="cellrowborder" valign="top" width="51.74999999999999%" id="mcps1.2.3.1.2"><p id="p4118037152710"><a name="p4118037152710"></a><a name="p4118037152710"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row111823719274"><td class="cellrowborder" valign="top" width="48.25%" headers="mcps1.2.3.1.1 "><p id="p161181537112712"><a name="p161181537112712"></a><a name="p161181537112712"></a>void HiSysEventSubscribeCallBack::OnHandle(const std::string&amp; domain, const std::string&amp; eventName, const int eventType, const std::string&amp; eventDetail)</p>
</td>
<td class="cellrowborder" valign="top" width="51.74999999999999%" headers="mcps1.2.3.1.2 "><p id="p1772213111011"><a name="p1772213111011"></a><a name="p1772213111011"></a>Callback object for system events.</p>
<p id="p182081719151016"><a name="p182081719151016"></a><a name="p182081719151016"></a>Input arguments:</p>
<a name="ul02091819131015"></a><a name="ul02091819131015"></a><ul id="ul02091819131015"><li><strong id="b19691125212280"><a name="b19691125212280"></a><a name="b19691125212280"></a>domain</strong>: domain to which the event belongs.</li><li><strong id="b144121713192910"><a name="b144121713192910"></a><a name="b144121713192910"></a>eventName</strong>: event name.</li><li><strong id="b410512122915"><a name="b410512122915"></a><a name="b410512122915"></a>eventType</strong>: event type.</li><li><strong id="b89521717103013"><a name="b89521717103013"></a><a name="b89521717103013"></a>eventDetail</strong>: JSON string containing event information.</li></ul>
<p id="p18209419201010"><a name="p18209419201010"></a><a name="p18209419201010"></a>Return value: none</p>
</td>
</tr>
</tbody>
</table>
## How to Develop<a name="section123181432175110"></a>
### **C++**<a name="section2016116181902"></a>
In this example, you'll be instructed to register a listener for all system events that belong to the **HIVIEWDFX** domain.
1. Develop the source code. 1. Develop the source code.
- Import the corresponding header file: Import the **DemoListener.h** header file, which contains the **DemoListener** class for implementing the custom event callback.
hisysevent\_manager.h ```
#ifndef DEMO_LISTENER_H
#define DEMO_LISTENER_H
- Implement the callback API. #include "hisysevent_subscribe_callback.h"
HiSysEventSubscribeCallBack::OnHandle\(const std::string& domain, const std::string& eventName, const int eventType, const std::string& eventDetail\) #include <string>
- Register a callback object. class DemoListener : public OHOS::HiviewDFX::HiSysEventSubscribeCallBackNative {
public:
explicit DemoListener() : HiSysEventSubscribeCallBackNative() {}
void OnHandle(const std::string& domain, const std::string& eventName, const int eventType,
const std::string& eventDetail);
virtual ~DemoListener() {}
void OnServiceDied();
};
HiSysEventManager::AddEventListener\(std::shared\_ptr<HiSysEventSubscribeCallBack\> listener, std::vector<struct ListenerRule\>& rules\) #endif DEMO_LISTENER_H
```
Create the **DemoListener.cpp** file, and add the implementation logic of the custom event callback API in the **DemoListener** class.
``` ```
// Register a listener for all system events that belong to the HIVIEWDFX domain. #include "demo_listener.h"
#include "hisysevent_manager.h"
#include <iostream> #include <iostream>
namespace OHOS {
namespace HiviewDFX { void DemoListener::OnHandle(const std::string& domain, const std::string& eventName,
// Implement the API for registering a listener for callback objects.
void HiSysEventToolListener::OnHandle(const std::string& domain, const std::string& eventName,
const int eventType, const std::string& eventDetail) const int eventType, const std::string& eventDetail)
{ {
std::cout << eventDetail << std::endl; std::cout << eventDetail << std::endl;
} }
void HiSysEventToolListener::OnServiceDied() void DemoListener::OnServiceDied()
{ {
std::cout << std::string("service disconnect, exit") << std::endl; std::cout << std::string("service disconnect, exit") << std::endl;
exit(0); exit(0);
} }
} // namespace HiviewDFX
} // namespace OHOS
// Register a listener for callback objects.
auto toolListener = std::make_shared<HiSysEventToolListener>();
struct ListenerRule rule;
rule.ruleType = 1; // 1: default type
rule.domain = "HIVIEWDFX";
std::vector<struct ListenerRule> sysRules;
sysRules.push_back(rule);
HiSysEventManager::AddEventListener(toolListener, sysRules);
``` ```
2. Modify the **BUILD.gn** file. Call the **AddEventListener** API of the **HiSysEventManager** class to add a listener for system events.
In the **BUILD.gn** file, add the **libhisyseventmanager** library that depends on the** hisysevent\_native** component.
``` ```
external_deps = [ "hisysevent_native:libhisyseventmanager", ] auto demoListener = std::make_shared<DemoListener>();
// Add a ListenerRule object based on the event tag, with RuleType left unspecified (in this case, ruleType is defaulted to WHOLE_WORD).
ListenerRule tagRule("dfx");
// Add a ListenerRule object based on the event tag, with RuleType set as REGULAR.
ListenerRule regRule("dfx.*", RuleType::REGULAR);
// Add a ListenerRule object based on the event domain and event name, with RuleType set as PREFIX.
ListenerRule domainNameRule("HIVIEWDFX", "APP_USAGE", RuleType::PREFIX);
std::vector<ListenerRule> sysRules;
sysRules.push_back(tagRule);
sysRules.push_back(regRule);
sysRules.push_back(domainNameRule);
HiSysEventManager::AddEventListener(demoListener, sysRules);
``` ```
2. Configure the **BUILD.gn** file.
In the **BUILD.gn** file, add the **libhisyseventmanager** library that depends on the **hisysevent\_native** component.
```
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
```
# HiSysEvent Logging Configuration<a name="EN-US_TOPIC_0000001080478132"></a>
- [Overview](#section315316685115)
- [Basic Concepts](#section123181432175143)
- [Constraints](#section123181432175114)
- [Writing a YAML File](#section123181432175113)
- [Writing Rules](#section123181432175133)
- [Example](#section123181432175123)
- [Verifying the YAML File](#section123181432175115)
- [Configuring the YAML File Path](#section123181432175135)
- [Compiling the YAML File](#section123181432175137)
- [Logging and Querying Events](#section123181432175139)
## Overview<a name="section315316685115"></a>
If HiSysEvent logging is required for a component, you need to define a YAML file and [configure the YAML file path](#section123181432175135) in the **bundle.js** file. During compilation, the OpenHarmony compilation framework will use the Python compilation script to parse and verify all the YAML files configured in the **bundle.js** file. On completion, the compilation framework will summarize the configuration information in the YAML files and convert the information into a JSON file named **hisysevent.def**. After that, the compilation framework will put the JSON file to a specified path as the basis for the system to determine whether to log system events.
### Basic Concepts<a name="section123181432175143"></a>
Understanding the following concepts would be helpful for you in configuring HiSysEvent logging.
- Event domain
Represents the domain to which an event belongs. It is specified by the **domain** field in the YAML file. For details, see [domain](#section123181432175123) in the example YAML file.
- Event name
Indicates the events in an event domain. For details, see [EVENT\_NAMEA/EVENT\_NAMEB](#section123181432175123) in the example YAML file.
- Parameter
Defines the key values in an event name. For details, see [__BASE/NAME1/NAME2](#section123181432175123) in the example YAML file.
### Constraints<a name="section123181432175114"></a>
- Each YAML file can contain only one event domain, and the domain name cannot be the same as that defined in other YAML files.
- Zero or more event names can be defined for one event domain. The event names in the same event domain must be unique.
- Multiple parameters can be defined for one event name. The parameters in the same event name must be unique. There must be one and only one parameter named **\__BASE** in each event name. See Table 1 for the fields of this parameter and Table 2 for the fields of other custom parameters.
**Table 1** Fields in the \__BASE parameter
| Field| Description|
| ----- | ----- |
| type | Indicates the type of the event. This field is mandatory. <br><br>Value:<ul><li>**FAULT**: fault </li><li>**STATISTIC**: statistics </li><li>**SECURITY**: security </li><li>**BEHAVIOR**: user behavior</li></ul> |
| level | Indicates the level of the event. This field is mandatory. <br><br>Value: <ul><li>**CRITICAL**: critical </li><li>**MINOR**: minor</li></ul> |
| tag | Indicates the tag of the event. This field is mandatory. <br><br>Rule:<ul><li>You can define a maximum of five tags,separated with a space. </li><li>A single tag can contain a maximum of 16 characters, including a to z, A to Z, and 0 to 9.</li></ul>|
| desc | Describes the event name. This field is mandatory. <br><br>Rule:<ul><li>The description contains 3 to 128 characters, including a to z, A to Z, 0 to 9, and underscores (&#95;).</li></ul>|
**Table 2** Description of custom parameters
| Field| Description|
| ----- | ----- |
| type | Indicates the type of a parameter. This field is mandatory. <br><br>Value: <ul><li>BOOL</li><li>UINT8</li><li>UINT16</li><li>INT32</li><li>UINT32</li><li>UINT64</li><li>FLOAT</li><li>DOUBLE</li><li>STRING</li></ul>|
| arrsize | Specifies the length of the parameter of the array type. This field is optional. <br><br>Value range: <ul><li>1-100</li></ul>|
| desc | Describes the parameter. This field is mandatory. <br><br>Rule:<ul><li>The description contains 3 to 128 characters, including a to z, A to Z, 0 to 9, and underscores (&#95;).</li></ul>|
## Writing a YAML File<a name="section123181432175113"></a>
### Writing Rules<a name="section123181432175133"></a>
- Event domain naming rules:
- The name must start with a letter and can contain only uppercase letters, digits, and underscores (&#95;).
- The name contains 1 to 16 characters.
- Event naming rules:
- The name must start with a letter and can contain only uppercase letters, digits, and underscores (&#95;).
- The name contains 1 to 32 characters.
- The number of internal event names in an event domain cannot exceed 4096.
- Parameter naming rules:
- The name must start with a letter and can contain only uppercase letters, digits, and underscores (&#95;).
- The name contains 1 to 32 characters.
- The number of parameters in an event domain cannot exceed 128.
### Example<a name="section123181432175123"></a>
- In the example YAML file, the event domain name is **MODULEA**. The event domain contains two events named **EVENT\_NAMEA** and **EVENT\_NAMEB**.
- **EVENT\_NAMEA** is defined as a critical event of the fault type. The event contains the **NAME1** parameter of the string type, the **NAME2** parameter of the string type, and the **NAME3** parameter of the unsigned short integer type. Therefore, you can perform [real-time subscription](subsys-dfx-hisysevent-listening.md) to the event based on the event domain **MODULEA** and event name **EVENT\_NAMEA**.
- **EVENT\_NAMEB** is defined as a general event of the statistics type. The event contains the **NAME1** parameter of the unsigned short integer type and the **NAME2** parameter of the integer type. Because two event tags named **tag1** and **tag2** are defined for **EVENT\_NAMEB** in the **\__BASE** parameter, you can perform [real-time subscription](subsys-dfx-hisysevent-read.md) to the event based on the event domain **MODULEA** and event name **EVENT\_NAMEB**, or based on the event tag.
```
##########################################
# HiSysEvent definition for MODULEA
##########################################
domain: MODULEA
EVENT_NAMEA:
__BASE: {type: FAULT, level: CRITICAL, desc: event name a}
NAME1: {type: STRING, desc: name1}
NAME2: {type: STRING, desc: name2}
NAME3: {type: UINT16, desc: name3}
EVENT_NAMEB:
__BASE: {type: STATISTIC, level: MINOR, tag: tag1 tag2, desc: event name b}
NAME1: {type: UINT16, desc: name1}
NAME2: {type: INT32, desc: name2}
```
## Verifying the YAML File<a name="section123181432175115"></a>
### Configuring the YAML File Path<a name="section123181432175135"></a>
In the **bundle.js** file, use the ```hisysevent_config``` attribute to specify the YAML file path.
```
{
"name": "@ohos/moduel_a",
"description": "module a",
"version": "3.1",
"license": "Apache License 2.0",
"publishAs": "code-segment",
"segment": {
"destPath": "moduel_a_path"
},
"dirs": {},
"scripts": {},
"component": {
"name": "hisysevent_native",
"subsystem": "hiviewdfx",
"adapted_system_type": [
"standard"
],
"rom": "",
"ram": "",
"hisysevent_config": [
"//moduel_a_path/yaml_file1.yaml",
"//moduel_a_path/yaml_file2.yaml"
],
"deps": {
"components": [
"hilog_native",
"hitrace_native",
"ipc",
"safwk",
"samgr_standard",
"utils_base"
],
"third_party": []
},
"build": {
}
}
}
```
>![](../public_sys-resources/icon-note.gif) **Note:**
>The YAML file can be placed in any directory of the component project as needed. You only need to specify the path in the **bundle.js** file.
### Compiling the YAML File<a name="section123181432175137"></a>
- Perform full compilation.
- During full compilation of the system, the configuration in the YAML files of all components are summarized. After the compilation is complete, the **hisysevent.def** file will be generated in the specified directory.
```
cd absolute path of the project's root directory
./build --product-name <product name>
```
- To obtain the **hisysevent.def** file generated after full compilation, run the following command:
```
cd absolute path of the project's root directory
find out -name hisysevent.def -type f
```
- Single-file compilation:
You can also compile the YAML file of a single component by running the following commands:
```
cd absolute path of the project's root directory
./build/ohos/hisysevent/gen_def_from_all_yaml.py --yaml-list <yaml file list> --def-path <file store directory>
```
**Table 3** Parameters for single-file compilation
| Parameter| Description|
| ------ | ------ |
| --yaml-list | Specifies the paths of the YAML files to be compiled. If there are multiple YAML file paths, separate each of them with a space.|
| --def-path | Specifies the path of the **hisysevent.def** file generated after compilation.|
### Logging and Querying Events<a name="section123181432175139"></a>
1. Push the **hisysevent.def** file to the **/system/etc/hiview/** directory of the device by using the [hdc_std tool](subsys-toolchain-hdc-guide.md).
2. Trigger logging of the custom system events in the YAML file. Then, run [hisysevent -l](subsys-dfx-hisysevent-tool.md) to query historical system events to find out if the logging of the custom system events is successful.
# HiSysEvent Logging<a name="EN-US_TOPIC_0000001231373947"></a> # HiSysEvent Logging<a name="EN-US_TOPIC_0000001231373947"></a>
- [Overview](#section77571101789)
- [Introduction](#section123133332175224)
- [Constraints](#section123181432175224)
- [Development Guidelines](#section314416685113)
- [Available APIs](#section13480315886)
- [Development Example](#section112771171317)
## Overview<a name="section77571101789"></a> ## Overview<a name="section77571101789"></a>
### Introduction<a name="section123133332175224"></a>
HiSysEvent provides event logging APIs for OpenHarmony to record important information of key processes during system running, helping you locate faults. In addition, you can upload the log data to the cloud for big data analytics. HiSysEvent provides event logging APIs for OpenHarmony to record important information of key processes during system running, helping you locate faults. In addition, you can upload the log data to the cloud for big data analytics.
## Available APIs<a name="section13480315886"></a> ### Constraints<a name="section123181432175224"></a>
The following table lists the C++ APIs provided by the **HiSysEvent** class. Before logging system events, you need to configure HiSysEvent logging. For details, see [HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md).
For details about the **HiSysEvent** class, see the API reference. ## Development Guidelines<a name="section314416685113"></a>
**Table 1** C++ APIs provided by HiSysEvent ### Available APIs<a name="section13480315886"></a>
<a name="table1972602519328"></a> The following table lists the C++ APIs provided by the HiSysEvent class.
<table><thead align="left"><tr id="row5726112593219"><th class="cellrowborder" valign="top" width="57.38999999999999%" id="mcps1.2.3.1.1"><p id="p1472602523216"><a name="p1472602523216"></a><a name="p1472602523216"></a>API</p>
</th>
<th class="cellrowborder" valign="top" width="42.61%" id="mcps1.2.3.1.2"><p id="p12726112512322"><a name="p12726112512322"></a><a name="p12726112512322"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row47261259328"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p15726112583213"><a name="p15726112583213"></a><a name="p15726112583213"></a>template&lt;typename... Types&gt; static int Write(const std::string &amp;domain, const std::string &amp;eventName, EventType type, Types... keyValues)</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p14727325133216"><a name="p14727325133216"></a><a name="p14727325133216"></a>Logs system events.</p>
<p id="p167271525203213"><a name="p167271525203213"></a><a name="p167271525203213"></a>Input arguments:</p>
<a name="ul0727102516327"></a><a name="ul0727102516327"></a><ul id="ul0727102516327"><li><strong id="b738811554915"><a name="b738811554915"></a><a name="b738811554915"></a>domain</strong>: Indicates the domain related to the event. You can use a preconfigured domain or customize a domain as needed. The name of a custom domain can contain a maximum of 16 characters, including digits (0-9) and uppercase letters (A-Z). It must start with a letter.</li><li><strong id="b6556916144913"><a name="b6556916144913"></a><a name="b6556916144913"></a>eventName</strong>: Indicates the event name. The value contains a maximum of 32 characters, including digits (0 to 9), letters (A-Z), and underscore (_). It must start with a letter and cannot end with an underscore (_).</li><li><strong id="b23385182493"><a name="b23385182493"></a><a name="b23385182493"></a>type</strong>: Indicates the event type. For details, see <strong id="b137231746124214"><a name="b137231746124214"></a><a name="b137231746124214"></a>EventType</strong>.</li><li><strong id="b8262191944912"><a name="b8262191944912"></a><a name="b8262191944912"></a>keyValues</strong>: Indicates the key-value pairs of event parameters. It can be in the format of the basic data type, <strong id="b1270524734214"><a name="b1270524734214"></a><a name="b1270524734214"></a>std::string</strong>, <strong id="b1870517478422"><a name="b1870517478422"></a><a name="b1870517478422"></a>std::vector<em id="i5705114724211"><a name="i5705114724211"></a><a name="i5705114724211"></a>&lt;basic data type&gt;</em></strong>, or <strong id="b2070614724211"><a name="b2070614724211"></a><a name="b2070614724211"></a>std:vector&lt;std::string&gt;</strong>. The value contains a maximum of 48 characters, including digits (0 to 9), letters (A-Z), and underscore (_). It must start with a letter and cannot end with an underscore (_). The number of parameter names cannot exceed 32.</li></ul>
<p id="p1727152513217"><a name="p1727152513217"></a><a name="p1727152513217"></a>Return value: Returns <strong id="b1893811237358"><a name="b1893811237358"></a><a name="b1893811237358"></a>0</strong> if the operation is successful; returns a value less than <strong id="b99381232350"><a name="b99381232350"></a><a name="b99381232350"></a>0</strong> otherwise.</p>
</td>
</tr>
</tbody>
</table>
**Table 2** Description of HiSysEvent::Domain APIs
<a name="table142141234133615"></a> For details about the HiSysEvent class, see the API reference.
<table><thead align="left"><tr id="row8214234193616"><th class="cellrowborder" valign="top" width="57.38999999999999%" id="mcps1.2.3.1.1"><p id="p13214183417365"><a name="p13214183417365"></a><a name="p13214183417365"></a>API</p>
</th>
<th class="cellrowborder" valign="top" width="42.61%" id="mcps1.2.3.1.2"><p id="p1721593463618"><a name="p1721593463618"></a><a name="p1721593463618"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row14215133418366"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p22151634123614"><a name="p22151634123614"></a><a name="p22151634123614"></a>static const std::string AAFWK</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p19215163483612"><a name="p19215163483612"></a><a name="p19215163483612"></a>Ability management framework</p>
</td>
</tr>
<tr id="row10215134203618"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p1935112710382"><a name="p1935112710382"></a><a name="p1935112710382"></a>static const std::string APPEXECFWK</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p2215183419362"><a name="p2215183419362"></a><a name="p2215183419362"></a>Application framework</p>
</td>
</tr>
<tr id="row2021515343365"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p03509723812"><a name="p03509723812"></a><a name="p03509723812"></a>static const std::string ACCOUNT</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p142155348362"><a name="p142155348362"></a><a name="p142155348362"></a>Account subsystem</p>
</td>
</tr>
<tr id="row162151334143616"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p2349778386"><a name="p2349778386"></a><a name="p2349778386"></a>static const std::string ACE</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p721510342365"><a name="p721510342365"></a><a name="p721510342365"></a>ACE subsystem</p>
</td>
</tr>
<tr id="row4215193413618"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p173487753812"><a name="p173487753812"></a><a name="p173487753812"></a>static const std::string AI</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p182159347368"><a name="p182159347368"></a><a name="p182159347368"></a>AI subsystem</p>
</td>
</tr>
<tr id="row112151534193614"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p19348975387"><a name="p19348975387"></a><a name="p19348975387"></a>static const std::string BARRIER_FREE</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p6215183412369"><a name="p6215183412369"></a><a name="p6215183412369"></a>Accessibility subsystem</p>
</td>
</tr>
<tr id="row1721573415364"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p163474783815"><a name="p163474783815"></a><a name="p163474783815"></a>static const std::string BIOMETRICS</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1521583443619"><a name="p1521583443619"></a><a name="p1521583443619"></a>Biometric recognition subsystem</p>
</td>
</tr>
<tr id="row321513423619"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p334617713387"><a name="p334617713387"></a><a name="p334617713387"></a>static const std::string CCRUNTIME</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1421513417361"><a name="p1421513417361"></a><a name="p1421513417361"></a>C/C++ operating environment subsystem</p>
</td>
</tr>
<tr id="row192165341362"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p33458773814"><a name="p33458773814"></a><a name="p33458773814"></a>static const std::string COMMUNICATION</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p2216143411364"><a name="p2216143411364"></a><a name="p2216143411364"></a>Communication subsystem</p>
</td>
</tr>
<tr id="row52162034183611"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p1634417123816"><a name="p1634417123816"></a><a name="p1634417123816"></a>static const std::string DEVELOPTOOLS</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1121643473611"><a name="p1121643473611"></a><a name="p1121643473611"></a>Development toolchain subsystem</p>
</td>
</tr>
<tr id="row10216133483618"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p834314716385"><a name="p834314716385"></a><a name="p834314716385"></a>static const std::string DISTRIBUTED_DATAMGR</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p621693417364"><a name="p621693417364"></a><a name="p621693417364"></a>Distributed data management subsystem</p>
</td>
</tr>
<tr id="row10216153414361"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p8342127193813"><a name="p8342127193813"></a><a name="p8342127193813"></a>static const std::string DISTRIBUTED_SCHEDULE</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1321603418362"><a name="p1321603418362"></a><a name="p1321603418362"></a>Distributed scheduler subsystem</p>
</td>
</tr>
<tr id="row18216934193616"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p6342670388"><a name="p6342670388"></a><a name="p6342670388"></a>static const std::string GLOBAL</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p12162342368"><a name="p12162342368"></a><a name="p12162342368"></a>Globalization subsystem</p>
</td>
</tr>
<tr id="row1921643473618"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p43413743815"><a name="p43413743815"></a><a name="p43413743815"></a>static const std::string GRAPHIC</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p921663443620"><a name="p921663443620"></a><a name="p921663443620"></a>Graphics subsystem</p>
</td>
</tr>
<tr id="row1216113412368"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p434015743812"><a name="p434015743812"></a><a name="p434015743812"></a>static const std::string HIVIEWDFX</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p32165345365"><a name="p32165345365"></a><a name="p32165345365"></a>DFX subsystem</p>
</td>
</tr>
<tr id="row122165342363"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p333912703815"><a name="p333912703815"></a><a name="p333912703815"></a>static const std::string IAWARE</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p82161134113614"><a name="p82161134113614"></a><a name="p82161134113614"></a>Scheduling and resource management subsystem</p>
</td>
</tr>
<tr id="row221673473618"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p233815723812"><a name="p233815723812"></a><a name="p233815723812"></a>static const std::string INTELLI_ACCESSORIES</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1121793463615"><a name="p1121793463615"></a><a name="p1121793463615"></a>Smart accessory subsystem</p>
</td>
</tr>
<tr id="row1821783414362"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p173371976381"><a name="p173371976381"></a><a name="p173371976381"></a>static const std::string INTELLI_TV</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1121716345369"><a name="p1121716345369"></a><a name="p1121716345369"></a>Smart TV subsystem</p>
</td>
</tr>
<tr id="row20217123483613"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p733610743820"><a name="p733610743820"></a><a name="p733610743820"></a>static const std::string IVI_HARDWARE</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p321723443615"><a name="p321723443615"></a><a name="p321723443615"></a>IVI-dedicated hardware subsystem</p>
</td>
</tr>
<tr id="row112171334143617"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p03351274383"><a name="p03351274383"></a><a name="p03351274383"></a>static const std::string LOCATION</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p6217193453611"><a name="p6217193453611"></a><a name="p6217193453611"></a>Location subsystem</p>
</td>
</tr>
<tr id="row221773418362"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p03359773815"><a name="p03359773815"></a><a name="p03359773815"></a>static const std::string MSDP</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p621714342361"><a name="p621714342361"></a><a name="p621714342361"></a>MSDP subsystem</p>
</td>
</tr>
<tr id="row6217113473615"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p18334177386"><a name="p18334177386"></a><a name="p18334177386"></a>static const std::string MULTI_MEDIA</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1521763418365"><a name="p1521763418365"></a><a name="p1521763418365"></a>Multimedia subsystem</p>
</td>
</tr>
<tr id="row1621719347364"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p18333147173816"><a name="p18333147173816"></a><a name="p18333147173816"></a>static const std::string MULTI_MODAL_INPUT</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p92171234133620"><a name="p92171234133620"></a><a name="p92171234133620"></a>Multimodal input subsystem</p>
</td>
</tr>
<tr id="row1121710348363"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p153320793817"><a name="p153320793817"></a><a name="p153320793817"></a>static const std::string NOTIFICATION</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p10217163414360"><a name="p10217163414360"></a><a name="p10217163414360"></a>Common event and notification subsystem</p>
</td>
</tr>
<tr id="row9217133493616"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p133315763820"><a name="p133315763820"></a><a name="p133315763820"></a>static const std::string POWERMGR</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p321715349360"><a name="p321715349360"></a><a name="p321715349360"></a>Power management subsystem</p>
</td>
</tr>
<tr id="row8217143413368"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p163301279387"><a name="p163301279387"></a><a name="p163301279387"></a>static const std::string ROUTER</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p5218123414363"><a name="p5218123414363"></a><a name="p5218123414363"></a>Router subsystem</p>
</td>
</tr>
<tr id="row2021813344362"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p1233027113819"><a name="p1233027113819"></a><a name="p1233027113819"></a>static const std::string SECURITY</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p92181034193613"><a name="p92181034193613"></a><a name="p92181034193613"></a>Security subsystem</p>
</td>
</tr>
<tr id="row1321812344367"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p113291753813"><a name="p113291753813"></a><a name="p113291753813"></a>static const std::string SENSORS</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p20218143417362"><a name="p20218143417362"></a><a name="p20218143417362"></a>Pan-sensor subsystem</p>
</td>
</tr>
<tr id="row1721810349368"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p8328270388"><a name="p8328270388"></a><a name="p8328270388"></a>static const std::string SOURCE_CODE_TRANSFORMER</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1121893413614"><a name="p1121893413614"></a><a name="p1121893413614"></a>Application porting subsystem</p>
</td>
</tr>
<tr id="row1221812343368"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p73273715382"><a name="p73273715382"></a><a name="p73273715382"></a>static const std::string STARTUP</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p021816348364"><a name="p021816348364"></a><a name="p021816348364"></a>Startup subsystem</p>
</td>
</tr>
<tr id="row62181634113613"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p93261674389"><a name="p93261674389"></a><a name="p93261674389"></a>static const std::string TELEPHONY</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1021843453616"><a name="p1021843453616"></a><a name="p1021843453616"></a>Telephony subsystem</p>
</td>
</tr>
<tr id="row2218153416363"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p20326117193818"><a name="p20326117193818"></a><a name="p20326117193818"></a>static const std::string UPDATE</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1221813473617"><a name="p1221813473617"></a><a name="p1221813473617"></a>Update subsystem</p>
</td>
</tr>
<tr id="row921893411361"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p23251372386"><a name="p23251372386"></a><a name="p23251372386"></a>static const std::string USB</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1421963493612"><a name="p1421963493612"></a><a name="p1421963493612"></a>USB subsystem</p>
</td>
</tr>
<tr id="row102191534183614"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p1232397193818"><a name="p1232397193818"></a><a name="p1232397193818"></a>static const std::string WEARABLE_HARDWARE</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1921919346367"><a name="p1921919346367"></a><a name="p1921919346367"></a>Wearable-dedicated hardware subsystem</p>
</td>
</tr>
<tr id="row721963413368"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p63041770381"><a name="p63041770381"></a><a name="p63041770381"></a>static const std::string WEARABLE</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p18219143493618"><a name="p18219143493618"></a><a name="p18219143493618"></a>Wearable-dedicated service subsystem</p>
</td>
</tr>
<tr id="row845612549416"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p13457155424112"><a name="p13457155424112"></a><a name="p13457155424112"></a>static const std::string OTHERS</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p44573548414"><a name="p44573548414"></a><a name="p44573548414"></a>Others</p>
</td>
</tr>
</tbody>
</table>
**Table 3** Description of HiSysEvent::EventType APIs **Table 1** C++ APIs provided by HiSysEvent
<a name="table0944173117434"></a> | API| Description|
<table><thead align="left"><tr id="row694473134311"><th class="cellrowborder" valign="top" width="57.38999999999999%" id="mcps1.2.3.1.1"><p id="p394413113439"><a name="p394413113439"></a><a name="p394413113439"></a>API</p> | -------- | --------- |
</th> | template&lt;typename... Types&gt; static int Write(const std::string &amp;domain, const std::string &amp;eventName, EventType type, Types... keyValues) | Logs system events. <br><br>Input arguments: <ul><li>**domain**: Indicates the domain related to the event. You can use a preconfigured domain or customize a domain as needed. The name of a custom domain can contain a maximum of 16 characters, including digits (0-9) and uppercase letters (A-Z). It must start with a letter. </li><li>**eventName**: Indicates the event name. The value contains a maximum of 32 characters, including digits (0 to 9), letters (A-Z), and underscores (&#95;). It must start with a letter and cannot end with an underscore. </li><li>**type**: Indicates the event type. For details, see EventType. </li><li>**keyValues**: Indicates the key-value pairs of event parameters. It can be in the format of the basic data type, std::string, std::vector&lt;basic data type&gt;, or std:vector&lt;std::string&gt;. The value contains a maximum of 48 characters, including digits (0 to 9), letters (A-Z), and underscores (&#95;). It must start with a letter and cannot end with an underscore. The number of parameter names cannot exceed 32. </li></ul>Return value: <ul><li>**0**: The logging is successful. </li><li>Negative value: The logging has failed.</li></ul> |
<th class="cellrowborder" valign="top" width="42.61%" id="mcps1.2.3.1.2"><p id="p199441431154317"><a name="p199441431154317"></a><a name="p199441431154317"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row1894416312438"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p2094483154311"><a name="p2094483154311"></a><a name="p2094483154311"></a>FAULT</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p5944153124316"><a name="p5944153124316"></a><a name="p5944153124316"></a>Fault event</p>
</td>
</tr>
<tr id="row2944193134318"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p494443144312"><a name="p494443144312"></a><a name="p494443144312"></a>STATISTIC</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1494423111435"><a name="p1494423111435"></a><a name="p1494423111435"></a>Statistical event</p>
</td>
</tr>
<tr id="row094463144311"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p594443184315"><a name="p594443184315"></a><a name="p594443184315"></a>SECURITY</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p1194417316435"><a name="p1194417316435"></a><a name="p1194417316435"></a>Security event</p>
</td>
</tr>
<tr id="row1294403119434"><td class="cellrowborder" valign="top" width="57.38999999999999%" headers="mcps1.2.3.1.1 "><p id="p17944431164319"><a name="p17944431164319"></a><a name="p17944431164319"></a>BEHAVIOR</p>
</td>
<td class="cellrowborder" valign="top" width="42.61%" headers="mcps1.2.3.1.2 "><p id="p5945203184318"><a name="p5945203184318"></a><a name="p5945203184318"></a>System behavior event</p>
</td>
</tr>
</tbody>
</table>
## How to Develop<a name="section112771171317"></a> **Table 2** Description of HiSysEvent::Domain APIs
**C++** | API| Description|
| -------- | --------- |
| static const std::string AAFWK | Atomic ability subsystem|
| static const std::string APPEXECFWK | User program framework subsystem|
| static const std::string ACCOUNT | Account subsystem|
| static const std::string ACE | JS application framework|
| static const std::string AI | AI subsystem|
| static const std::string BARRIER_FREE | Accessibility subsystem|
| static const std::string BIOMETRICS | Biometric recognition subsystem|
| static const std::string CCRUNTIME |C/C++ operating environment subsystem|
| static const std::string COMMUNICATION | Public communication subsystem|
| static const std::string DEVELOPTOOLS | Development toolchain subsystem|
| static const std::string DISTRIBUTED_DATAMGR | Distributed data management subsystem|
| static const std::string DISTRIBUTED_SCHEDULE | Distributed Scheduler subsystem|
| static const std::string GLOBAL | Globalization subsystem|
| static const std::string GRAPHIC | Graphics subsystem|
| static const std::string HIVIEWDFX | DFX subsystem|
| static const std::string IAWARE | Scheduling and resource management subsystem|
| static const std::string INTELLI_ACCESSORIES | Smart accessory subsystem|
| static const std::string INTELLI_TV | Smart TV subsystem|
| static const std::string IVI_HARDWARE | IVI-dedicated hardware subsystem|
| static const std::string LOCATION | LBS subsystem|
| static const std::string MSDP | MSDP subsystem|
| static const std::string MULTI_MEDIA | Media subsystem|
| static const std::string MULTI_MODAL_INPUT | Multimode input subsystem|
| static const std::string NOTIFICATION | Common event and notification subsystem|
| static const std::string POWERMGR | Power management subsystem|
| static const std::string ROUTER | Router subsystem|
| static const std::string SECURITY | Security subsystem|
| static const std::string SENSORS | Pan-sensor subsystem|
| static const std::string SOURCE_CODE_TRANSFORMER | Application porting subsystem|
| static const std::string STARTUP | Startup subsystem|
| static const std::string TELEPHONY | Telephony subsystem|
| static const std::string UPDATE | Update subsystem|
| static const std::string USB | USB subsystem|
| static const std::string WEARABLE_HARDWARE | Wearable-dedicated hardware subsystem|
| static const std::string WEARABLE_HARDWARE | Wearable-dedicated service subsystem|
| static const std::string OTHERS | Others|
**Table 3** Description of HiSysEvent::EventType
| Name| Description|
| -------- | --------- |
| FAULT | Fault event|
| STATISTIC | Statistical event|
| SECURITY | Security event|
| BEHAVIOR | System behavior event|
### Development Example<a name="section112771171317"></a>
C++
1. Develop the source code. 1. Develop the source code.
Include the **HiSysEvent** header file in the class definition header file or class implementation source file. For example: Include the HiSysEvent header file in the class definition header file or class implementation source file. For example:
``` ```
#include "hisysevent.h" #include "hisysevent.h"
``` ```
Add the event logging code. For example, if you want to log events specific to the app start time \(**start\_app**\), then add the following code to the service implementation source file: Add the event logging code. For example, if you want to log events specific to the app start time (start\_app), then add the following code to the service implementation source file:
``` ```
HiSysEvent::Write(HiSysEvent::Domain::AAFWK, "start_app", HiSysEvent::EventType::FAULT, "app_name", "com.demo"); HiSysEvent::Write(HiSysEvent::Domain::AAFWK, "start_app", HiSysEvent::EventType::FAULT, "app_name", "com.demo");
...@@ -277,5 +104,3 @@ For details about the **HiSysEvent** class, see the API reference. ...@@ -277,5 +104,3 @@ For details about the **HiSysEvent** class, see the API reference.
``` ```
external_deps = [ "hisysevent_native:libhisysevent" ] external_deps = [ "hisysevent_native:libhisysevent" ]
``` ```
# HiSysEvent Query<a name="EN-US_TOPIC_0000001231455461"></a>
- [Overview](#section279684125212)
- [Development Guidelines](#section315316761113)
- [Available APIs](#section03869128521)
- [Development Example](#section14286111855212)
## Overview<a name="section279684125212"></a>
HiSysEvent provides an API for you to query system events. You can query concerned events by specifying search criteria. For example, for a power consumption module, you can query required system events for analysis.
## Development Guidelines<a name="section315316761113"></a>
### Available APIs<a name="section03869128521"></a>
**Table 1** HiSysEvent query API
| API| Description|
| -------- | --------- |
| bool HiSysEventManager::QueryHiSysEvent(struct QueryArg&amp; queryArg, std::vector&lt;struct QueryRule&gt;&amp; queryRules, std::shared_ptr&lt;HiSysEventQueryCallBackBase&gt; queryCallBack) | Queries system events by specifying search criteria such as the time segment, event domain, and event name. <br><br>Input arguments:<ul><li>**queryArg**: event query parameter. </li><li>**queryRules**: event filtering rules. </li><li>**queryRules**: callback object for query results. </li></ul>Return value:<ul><li>**true**: The query is successful. </li><li>**false**: The query has failed.</li></ul> |
**Table 2** Description of QueryArg
| Attribute| Description|
| -------- | --------- |
| beginTime | Start time, in the **long long int** format.|
| endTime | End time, in the **long long int** format.|
| maxEvents | Maximum number of returned events, in the **int** format.|
**Table 3** Description of QueryRule
| Attribute| Description|
| -------- | --------- |
| ruleType | Rule type, in the **uint32_t** format. The default value is **0**.|
| domain | Domain to which the event belongs, in the **string** format. By default, an empty string indicates that the domain is successfully matched.|
| eventList | Event name list, in the std::vector&lt;std::string&gt; format. By default, an empty string indicates that the event names on the list are successfully matched.|
**Table 4** Description of HiSysEventQueryCallBackBase
| API| Description|
| -------- | --------- |
| void HiSysEventQueryCallBackBase::OnQuery(const ::std::vector&lt;std::string&gt;&amp; sysEvent, const ::std::vector&lt;int64_t&gt;&amp; seq) | Callback object for event query. <br><br>Input arguments:<ul><li>**sysEvent**: event set. </li><li>**seq**: event sequence set. </li></ul>Return value:<br>&emsp;&emsp;None.|
| void HiSysEventQueryCallBackBase::OnComplete(int32_t reason, int32_t total) | Callback object for completion of event query. <br><br>Input arguments:<ul><li>**reason**: reason for completion of event query. The default value is **0**. </li><li>**total**: total number of events returned in this query. </li></ul>Return value:<br>&emsp;&emsp;None.|
### Development Example<a name="section14286111855212"></a>
C++
1. Develop the source code.
- Import the corresponding header file:
hisysevent\_manager.h
- Implement the callback API.
void HiSysEventQueryCallBackBase::OnQuery\(const ::std::vector<std::string\>& sysEvent, const ::std::vector<int64\_t\>& seq\)
void HiSysEventQueryCallBackBase::OnComplete\(int32\_t reason, int32\_t total\)
- Invoke the query API in the corresponding service logic.
HiSysEventManager::QueryHiSysEvent\(struct QueryArg& queryArg, std::vector<struct QueryRule\>& queryRules, std::shared\_ptr<HiSysEventQueryCallBackBase\> queryCallBack\)
```
// In this example, you'll query all system events.
#include "hisysevent_manager.h"
#include <iostream>
namespace OHOS {
namespace HiviewDFX {
// Implement the query callback API.
void HiSysEventToolQuery::OnQuery(const ::std::vector<std::string>& sysEvent,
const ::std::vector<int64_t>& seq)
{
for_each(sysEvent.cbegin(), sysEvent.cend(), [](const std::string &tmp) {
std::cout << tmp << std::endl;
});
}
void HiSysEventToolQuery::OnComplete(int32_t reason, int32_t total)
{
return;
}
} // namespace HiviewDFX
} // namespace OHOS
// Invoke the query callback API to obtain system events.
auto queryCallBack = std::make_shared<HiSysEventToolQuery>();
struct QueryArg args(clientCmdArg.beginTime, clientCmdArg.endTime, clientCmdArg.maxEvents);
std::vector<struct QueryRule> mRules;
HiSysEventManager::QueryHiSysEvent(args, mRules, queryCallBack);
```
2. Modify the **BUILD.gn** file.
In the **BUILD.gn** file, add the **libhisyseventmanager** library that depends on the **hisysevent\_native** component.
```
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
```
# HiSysEvent Query<a name="EN-US_TOPIC_0000001231455461"></a>
## Overview<a name="section279684125212"></a>
HiSysEvent provides an API for you to query system events. You can query concerned events by specifying search criteria. For example, for a power consumption module, you can query required system events for analysis.
## Available APIs<a name="section03869128521"></a>
**Table 1** HiSysEvent query API
<a name="table1844019587496"></a>
<table><thead align="left"><tr id="row1440058184916"><th class="cellrowborder" valign="top" width="48.120000000000005%" id="mcps1.2.3.1.1"><p id="p19441135844915"><a name="p19441135844915"></a><a name="p19441135844915"></a>API</p>
</th>
<th class="cellrowborder" valign="top" width="51.88%" id="mcps1.2.3.1.2"><p id="p13441195815491"><a name="p13441195815491"></a><a name="p13441195815491"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row16441155818499"><td class="cellrowborder" valign="top" width="48.120000000000005%" headers="mcps1.2.3.1.1 "><p id="p114411558204915"><a name="p114411558204915"></a><a name="p114411558204915"></a>bool HiSysEventManager::QueryHiSysEvent(struct QueryArg&amp; queryArg, std::vector&lt;struct QueryRule&gt;&amp; queryRules, std::shared_ptr&lt;HiSysEventQueryCallBack&gt; queryCallBack)</p>
</td>
<td class="cellrowborder" valign="top" width="51.88%" headers="mcps1.2.3.1.2 "><p id="p14727325133216"><a name="p14727325133216"></a><a name="p14727325133216"></a>Queries system events by specifying search criteria such as the time segment, event domain, and event name.</p>
<p id="p167271525203213"><a name="p167271525203213"></a><a name="p167271525203213"></a>Input arguments:</p>
<a name="ul6717142214919"></a><a name="ul6717142214919"></a><ul id="ul6717142214919"><li><strong id="b13783124325410"><a name="b13783124325410"></a><a name="b13783124325410"></a>queryArg</strong>: event query parameter.</li><li><strong id="b179229305560"><a name="b179229305560"></a><a name="b179229305560"></a>queryRules</strong>: event filtering rules.</li><li><strong id="b1244153910574"><a name="b1244153910574"></a><a name="b1244153910574"></a>queryCallBack</strong>: callback object for query results.</li></ul>
<p id="p83591223153818"><a name="p83591223153818"></a><a name="p83591223153818"></a>Return values</p>
<a name="ul12105842111913"></a><a name="ul12105842111913"></a><ul id="ul12105842111913"><li><strong id="b16711328155919"><a name="b16711328155919"></a><a name="b16711328155919"></a>true</strong>: Operation successful.</li><li><strong id="b1421823714591"><a name="b1421823714591"></a><a name="b1421823714591"></a>false</strong>: Operation failed.</li></ul>
</td>
</tr>
</tbody>
</table>
**Table 2** HiSysEvent query parameters
<a name="table13783145132014"></a>
<table><thead align="left"><tr id="row11784451112013"><th class="cellrowborder" valign="top" width="47.85%" id="mcps1.2.3.1.1"><p id="p187841351152012"><a name="p187841351152012"></a><a name="p187841351152012"></a>Attribute</p>
</th>
<th class="cellrowborder" valign="top" width="52.15%" id="mcps1.2.3.1.2"><p id="p4784105182019"><a name="p4784105182019"></a><a name="p4784105182019"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row3784451122012"><td class="cellrowborder" valign="top" width="47.85%" headers="mcps1.2.3.1.1 "><p id="p2078414512209"><a name="p2078414512209"></a><a name="p2078414512209"></a>long long beginTime</p>
</td>
<td class="cellrowborder" valign="top" width="52.15%" headers="mcps1.2.3.1.2 "><p id="p37844517207"><a name="p37844517207"></a><a name="p37844517207"></a>Start time.</p>
</td>
</tr>
<tr id="row1564913158230"><td class="cellrowborder" valign="top" width="47.85%" headers="mcps1.2.3.1.1 "><p id="p11649191511239"><a name="p11649191511239"></a><a name="p11649191511239"></a>long long endTime</p>
</td>
<td class="cellrowborder" valign="top" width="52.15%" headers="mcps1.2.3.1.2 "><p id="p126491715182314"><a name="p126491715182314"></a><a name="p126491715182314"></a>End time.</p>
</td>
</tr>
<tr id="row461821212236"><td class="cellrowborder" valign="top" width="47.85%" headers="mcps1.2.3.1.1 "><p id="p461841262313"><a name="p461841262313"></a><a name="p461841262313"></a>int maxEvents</p>
</td>
<td class="cellrowborder" valign="top" width="52.15%" headers="mcps1.2.3.1.2 "><p id="p1161901214232"><a name="p1161901214232"></a><a name="p1161901214232"></a>Maximum number of query records.</p>
</td>
</tr>
</tbody>
</table>
**Table 3** HiSysEvent query rules
<a name="table1144011610564"></a>
<table><thead align="left"><tr id="row124411716175611"><th class="cellrowborder" valign="top" width="48.03%" id="mcps1.2.3.1.1"><p id="p19441151675610"><a name="p19441151675610"></a><a name="p19441151675610"></a>Attribute</p>
</th>
<th class="cellrowborder" valign="top" width="51.970000000000006%" id="mcps1.2.3.1.2"><p id="p16441171616563"><a name="p16441171616563"></a><a name="p16441171616563"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row174411216105615"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p496413536613"><a name="p496413536613"></a><a name="p496413536613"></a><span>uint32_t</span> ruleType</p>
</td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><p id="p94416160565"><a name="p94416160565"></a><a name="p94416160565"></a>Rule type. The default value is <strong id="b196007205817"><a name="b196007205817"></a><a name="b196007205817"></a>0</strong>.</p>
</td>
</tr>
<tr id="row64411816125614"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p1258135313712"><a name="p1258135313712"></a><a name="p1258135313712"></a>std::string domain;</p>
</td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><a name="ul14905926102311"></a><a name="ul14905926102311"></a><ul id="ul14905926102311"><li><strong id="b9813231789"><a name="b9813231789"></a><a name="b9813231789"></a>domain</strong>: domain to which the event belongs. By default, an empty string indicates that the domain is successfully matched.</li></ul>
</td>
</tr>
<tr id="row244161615619"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p227913101887"><a name="p227913101887"></a><a name="p227913101887"></a>std::vector&lt;std::string&gt; eventList</p>
</td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><a name="ul248063132319"></a><a name="ul248063132319"></a><ul id="ul248063132319"><li><strong id="b172129351784"><a name="b172129351784"></a><a name="b172129351784"></a>eventList</strong>: event name list. By default, an empty string indicates that the event names on the list are successfully matched.</li></ul>
</td>
</tr>
</tbody>
</table>
**Table 4** HiSysEvent query callback objects
<a name="table1451320549112"></a>
<table><thead align="left"><tr id="row951420547116"><th class="cellrowborder" valign="top" width="48.03%" id="mcps1.2.3.1.1"><p id="p15141546117"><a name="p15141546117"></a><a name="p15141546117"></a>API</p>
</th>
<th class="cellrowborder" valign="top" width="51.970000000000006%" id="mcps1.2.3.1.2"><p id="p165141654151113"><a name="p165141654151113"></a><a name="p165141654151113"></a>Description</p>
</th>
</tr>
</thead>
<tbody><tr id="row35141554151115"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p4714143785410"><a name="p4714143785410"></a><a name="p4714143785410"></a>void HiSysEventQueryCallBack::OnQuery(const ::std::vector&lt;std::string&gt;&amp; sysEvent, const ::std::vector&lt;int64_t&gt;&amp; seq)</p>
</td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><p id="p1772213111011"><a name="p1772213111011"></a><a name="p1772213111011"></a>Callback object for event query.</p>
<p id="p182081719151016"><a name="p182081719151016"></a><a name="p182081719151016"></a>Input arguments:</p>
<a name="ul02091819131015"></a><a name="ul02091819131015"></a><ul id="ul02091819131015"><li><strong id="b132316517135"><a name="b132316517135"></a><a name="b132316517135"></a>sysEvent</strong>: event set.</li><li><strong id="b185101961310"><a name="b185101961310"></a><a name="b185101961310"></a>seq</strong>: event sequence set.</li></ul>
<p id="p18209419201010"><a name="p18209419201010"></a><a name="p18209419201010"></a>Return value: none</p>
</td>
</tr>
<tr id="row15141154161111"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p561110151119"><a name="p561110151119"></a><a name="p561110151119"></a>void HiSysEventQueryCallBack::OnComplete(int32_t reason, int32_t total)</p>
</td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><p id="p126315352130"><a name="p126315352130"></a><a name="p126315352130"></a>Callback object for completion of event query.</p>
<p id="p6631235191316"><a name="p6631235191316"></a><a name="p6631235191316"></a>Input arguments:</p>
<a name="ul106383518130"></a><a name="ul106383518130"></a><ul id="ul106383518130"><li><strong id="b855743017177"><a name="b855743017177"></a><a name="b855743017177"></a>reason</strong>: reason for completion of event query. The default value is <strong id="b5175337111718"><a name="b5175337111718"></a><a name="b5175337111718"></a>0</strong>.</li><li><strong id="b1196583151911"><a name="b1196583151911"></a><a name="b1196583151911"></a>total</strong>: total number of events returned in this query.</li></ul>
<p id="p176313516133"><a name="p176313516133"></a><a name="p176313516133"></a>Return value: none</p>
</td>
</tr>
</tbody>
</table>
## How to Develop<a name="section14286111855212"></a>
### **C++**<a name="section162045551743"></a>
In this example, you'll be instructed to query all system events.
1. Develop the source code.
- Import the corresponding header file:
hisysevent\_manager.h
- Implement the callback API.
void HiSysEventQueryCallBack::OnQuery\(const ::std::vector<std::string\>& sysEvent, const ::std::vector<int64\_t\>& seq\)
void HiSysEventQueryCallBack::OnComplete\(int32\_t reason, int32\_t total\)
- Invoke the query API in the corresponding service logic.
HiSysEventManager::QueryHiSysEvent\(struct QueryArg& queryArg, std::vector<struct QueryRule\>& queryRules, std::shared\_ptr<HiSysEventQueryCallBack\> queryCallBack\)
```
// In this example, you'll query all system events.
#include "hisysevent_manager.h"
#include <iostream>
namespace OHOS {
namespace HiviewDFX {
// Implement the query callback API.
void HiSysEventToolQuery::OnQuery(const ::std::vector<std::string>& sysEvent,
const ::std::vector<int64_t>& seq)
{
for_each(sysEvent.cbegin(), sysEvent.cend(), [](const std::string &tmp) {
std::cout << tmp << std::endl;
});
}
void HiSysEventToolQuery::OnComplete(int32_t reason, int32_t total)
{
return;
}
} // namespace HiviewDFX
} // namespace OHOS
// Invoke the query callback API to obtain system events.
auto queryCallBack = std::make_shared<HiSysEventToolQuery>();
struct QueryArg args(clientCmdArg.beginTime, clientCmdArg.endTime, clientCmdArg.maxEvents);
std::vector<struct QueryRule> mRules;
HiSysEventManager::QueryHiSysEvent(args, mRules, queryCallBack);
```
2. Modify the **BUILD.gn** file.
In the **BUILD.gn** file, add the **libhisyseventmanager** library that depends on the** hisysevent\_native** component.
```
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
```
# HiSysEvent Development<a name="EN-US_TOPIC_0000001195021448"></a> # DHiSysEvent Development<a name="EN-US_TOPIC_0000001195021448"></a>
- **[HiSysEvent Logging Configuration](subsys-dfx-hisysevent-logging-config.md)**
- **[HiSysEvent Logging](subsys-dfx-hisysevent-logging.md)** - **[HiSysEvent Logging](subsys-dfx-hisysevent-logging.md)**
- **[HiSysEvent Listening](subsys-dfx-hisysevent-listening.md)** - **[HiSysEvent Listening](subsys-dfx-hisysevent-listening.md)**
- **[HiSysEvent Query](subsys-dfx-hisysevent-querying.md)** - **[HiSysEvent Query](subsys-dfx-hisysevent-query.md)**
- **[HiSysEvent Tool Usage](subsys-dfx-hisysevent-tool.md)** - **[HiSysEvent Tool Usage](subsys-dfx-hisysevent-tool.md)**
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
- [应用开发导读](application-dev-guide.md) - [应用开发导读](application-dev-guide.md)
- [DevEco Studio(OpenHarmony)使用指南](quick-start/deveco-studio-user-guide-for-openharmony.md) - [DevEco Studio(OpenHarmony)使用指南](quick-start/deveco-studio-user-guide-for-openharmony.md)
- [包结构说明](quick-start/package-structure.md) - [包结构说明](quick-start/package-structure.md)
- [快速入门](quick-start/start.md)
- [Ability框架](ability/Readme-CN.md) - [Ability框架](ability/Readme-CN.md)
- 方舟开发框架(ArkUI) - 方舟开发框架(ArkUI)
- [基于JS扩展的类Web开发范式](ui/ui-arkui-js.md) - [基于JS扩展的类Web开发范式](ui/ui-arkui-js.md)
......
...@@ -25,6 +25,9 @@ ...@@ -25,6 +25,9 @@
AudioPlayer支持的src媒体源输入类型可参考:[src属性说明](../reference/apis/js-apis-media.md#audioplayer_属性) AudioPlayer支持的src媒体源输入类型可参考:[src属性说明](../reference/apis/js-apis-media.md#audioplayer_属性)
```js ```js
import media from '@ohos.multimedia.media'
import fileIO from '@ohos.fileio'
function SetCallBack(audioPlayer) { function SetCallBack(audioPlayer) {
audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调 audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调
console.info('audio set source success'); console.info('audio set source success');
...@@ -80,7 +83,18 @@ function printfDescription(obj) { ...@@ -80,7 +83,18 @@ function printfDescription(obj) {
let audioPlayer = media.createAudioPlayer(); let audioPlayer = media.createAudioPlayer();
SetCallBack(audioPlayer); //设置事件回调 SetCallBack(audioPlayer); //设置事件回调
//2、用户选择音频,设置uri //2、用户选择音频,设置uri
audioPlayer.src = 'file:///data/data/ohos.xxx.xxx/files/test.mp3'; //设置src属性,并触发'dataLoad'事件回调 let fdPath = 'fd://'
let path = 'data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3';
await fileIO.open(path).then(fdNumber) => {
fdPath = fdPath + '' + fdNumber;
console.info('open fd sucess fd is' + fdPath);
}, (err) => {
console.info('open fd failed err is' + err);
}),catch((err) => {
console.info('open fd failed err is' + err);
});
audioPlayer.src = fdPath; //设置src属性,并触发'dataLoad'事件回调
//3、播放音频 //3、播放音频
audioPlayer.play(); //需等待'dataLoad'事件回调完成后,才可调用play进行播放,触发'play'事件回调 audioPlayer.play(); //需等待'dataLoad'事件回调完成后,才可调用play进行播放,触发'play'事件回调
//4、跳转播放位置 //4、跳转播放位置
...@@ -111,6 +125,9 @@ audioPlayer = undefined; ...@@ -111,6 +125,9 @@ audioPlayer = undefined;
### 正常播放场景 ### 正常播放场景
```js ```js
import media from '@ohos.multimedia.media'
import fileIO from '@ohos.fileio'
function SetCallBack(audioPlayer) { function SetCallBack(audioPlayer) {
audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调 audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调
console.info('audio set source success'); console.info('audio set source success');
...@@ -128,13 +145,27 @@ function SetCallBack(audioPlayer) { ...@@ -128,13 +145,27 @@ function SetCallBack(audioPlayer) {
let audioPlayer = media.createAudioPlayer(); //创建一个音频播放实例 let audioPlayer = media.createAudioPlayer(); //创建一个音频播放实例
SetCallBack(audioPlayer); //设置事件回调 SetCallBack(audioPlayer); //设置事件回调
/* 用户选择音频,设置uri */ /* 用户选择视频设置fd(本地播放) */
audioPlayer.src = 'file:///data/data/ohos.xxx.xxx/files/test.mp3'; //设置src属性,并触发'dataLoad'事件回调 let fdPath = 'fd://'
let path = 'data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3';
await fileIO.open(path).then(fdNumber) => {
fdPath = fdPath + '' + fdNumber;
console.info('open fd sucess fd is' + fdPath);
}, (err) => {
console.info('open fd failed err is' + err);
}),catch((err) => {
console.info('open fd failed err is' + err);
});
audioPlayer.src = fdPath; //设置src属性,并触发'dataLoad'事件回调
``` ```
### 切歌场景 ### 切歌场景
```js ```js
import media from '@ohos.multimedia.media'
import fileIO from '@ohos.fileio'
function SetCallBack(audioPlayer) { function SetCallBack(audioPlayer) {
audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调 audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调
console.info('audio set source success'); console.info('audio set source success');
...@@ -152,16 +183,42 @@ function SetCallBack(audioPlayer) { ...@@ -152,16 +183,42 @@ function SetCallBack(audioPlayer) {
let audioPlayer = media.createAudioPlayer(); //创建一个音频播放实例 let audioPlayer = media.createAudioPlayer(); //创建一个音频播放实例
SetCallBack(audioPlayer); //设置事件回调 SetCallBack(audioPlayer); //设置事件回调
/* 用户选择音频,设置uri */ /* 用户选择视频设置fd(本地播放) */
audioPlayer.src = 'file:///data/data/ohos.xxx.xxx/files/test.mp3'; //设置src属性,并触发'dataLoad'事件回调 let fdPath = 'fd://'
let path = 'data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3';
await fileIO.open(path).then(fdNumber) => {
fdPath = fdPath + '' + fdNumber;
console.info('open fd sucess fd is' + fdPath);
}, (err) => {
console.info('open fd failed err is' + err);
}),catch((err) => {
console.info('open fd failed err is' + err);
});
audioPlayer.src = fdPath; //设置src属性,并触发'dataLoad'事件回调
/* 播放一段时间后,下发切歌指令 */ /* 播放一段时间后,下发切歌指令 */
audioPlayer.reset(); audioPlayer.reset();
audioPlayer.src = 'file:///data/data/ohos.xxx.xxx/files/next.mp3';
/* 用户选择视频设置fd(本地播放) */
let fdNextPath = 'fd://'
let nextPath = 'data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3';
await fileIO.open(nextPath).then(fdNumber) => {
fdNextPath = fdNextPath + '' + fdNumber;
console.info('open fd sucess fd is' + fdNextPath);
}, (err) => {
console.info('open fd failed err is' + err);
}),catch((err) => {
console.info('open fd failed err is' + err);
});
audioPlayer.src = fdNextPath;
``` ```
### 单曲循环场景 ### 单曲循环场景
```js ```js
import media from '@ohos.multimedia.media'
import fileIO from '@ohos.fileio'
function SetCallBack(audioPlayer) { function SetCallBack(audioPlayer) {
audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调 audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调
console.info('audio set source success'); console.info('audio set source success');
...@@ -179,7 +236,19 @@ function SetCallBack(audioPlayer) { ...@@ -179,7 +236,19 @@ function SetCallBack(audioPlayer) {
let audioPlayer = media.createAudioPlayer(); //创建一个音频播放实例 let audioPlayer = media.createAudioPlayer(); //创建一个音频播放实例
SetCallBack(audioPlayer); //设置事件回调 SetCallBack(audioPlayer); //设置事件回调
/* 用户选择音频,设置uri */
audioPlayer.src = 'file:///data/data/ohos.xxx.xxx/files/test.mp3'; //设置src属性,并触发'dataLoad'事件回调 /* 用户选择视频设置fd(本地播放) */
let fdPath = 'fd://'
let path = 'data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3';
await fileIO.open(path).then(fdNumber) => {
fdPath = fdPath + '' + fdNumber;
console.info('open fd sucess fd is' + fdPath);
}, (err) => {
console.info('open fd failed err is' + err);
}),catch((err) => {
console.info('open fd failed err is' + err);
});
audioPlayer.src = fdPath; //设置src属性,并触发'dataLoad'事件回调
audioPlayer.loop = true; //设置循环播放属性 audioPlayer.loop = true; //设置循环播放属性
``` ```
\ No newline at end of file
...@@ -23,6 +23,11 @@ ...@@ -23,6 +23,11 @@
包含流程:创建实例,设置录制参数,录制音频,暂停录制,恢复录制,停止录制,释放资源等流程。 包含流程:创建实例,设置录制参数,录制音频,暂停录制,恢复录制,停止录制,释放资源等流程。
```js ```js
import media from '@ohos.multimedia.media'
import mediaLibrary from '@ohos.multimedia.mediaLibrary'
let testFdNumber;
function SetCallBack(audioRecorder) { function SetCallBack(audioRecorder) {
audioRecorder.on('prepare', () => { // 设置'prepare'事件回调 audioRecorder.on('prepare', () => { // 设置'prepare'事件回调
console.log('prepare success'); console.log('prepare success');
...@@ -57,6 +62,31 @@ function SetCallBack(audioRecorder) { ...@@ -57,6 +62,31 @@ function SetCallBack(audioRecorder) {
}); });
} }
// pathName是传入的录制文件名,例如:01.mp3,生成后的文件地址:/storage/media/100/local/files/Movies/01.mp3
// 使用mediaLibrary需要添加以下权限, ohos.permission.MEDIA_LOCATION、ohos.permission.WRITE_MEDIA、ohos.permission.READ_MEDIA
async function getFd(pathName) {
let displayName = pathName;
const mediaTest = mediaLibrary.getMediaLibrary();
let fileKeyObj = mediaLibrary.FileKey;
let mediaType = mediaLibrary.MediaType.VIDEO;
let publicPath = await mediaTest.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO);
let dataUri = await mediaTest.createAsset(mediaType, displayName, publicPath);
if (dataUri != undefined) {
let args = dataUri.id.toString();
let fetchOp = {
selections : fileKeyObj.ID + "=?",
selectionArgs : [args],
}
let fetchFileResult = await mediaTest.getFileAssets(fetchOp);
let fileAsset = await fetchFileResult.getAllObject();
let fdNumber = await fileAsset[0].open('Rw');
fdNumber = "fd://" + fdNumber.toString();
testFdNumber = fdNumber;
}
}
await getFd('01.mp3');
// 1.创建实例 // 1.创建实例
let audioRecorder = media.createAudioRecorder(); let audioRecorder = media.createAudioRecorder();
// 2.设置回调 // 2.设置回调
...@@ -68,7 +98,7 @@ let audioRecorderConfig = { ...@@ -68,7 +98,7 @@ let audioRecorderConfig = {
audioSampleRate : 22050, audioSampleRate : 22050,
numberOfChannels : 2, numberOfChannels : 2,
format : media.AudioOutputFormat.AAC_ADTS, format : media.AudioOutputFormat.AAC_ADTS,
uri : 'file:///data/accounts/account_0/appdata/appdata/recorder/test.m4a', // 文件需先由调用者创建,并给予适当的权限 uri : testFdNumber, // testFdNumber由getFd生成
location : { latitude : 30, longitude : 130}, location : { latitude : 30, longitude : 130},
} }
audioRecorder.prepare(audioRecorderConfig); audioRecorder.prepare(audioRecorderConfig);
...@@ -92,6 +122,11 @@ audioRecorder = undefined; ...@@ -92,6 +122,11 @@ audioRecorder = undefined;
与全流程场景不同,不包括暂停录制,恢复录制的过程。 与全流程场景不同,不包括暂停录制,恢复录制的过程。
```js ```js
import media from '@ohos.multimedia.media'
import mediaLibrary from '@ohos.multimedia.mediaLibrary'
let testFdNumber;
function SetCallBack(audioPlayer) { function SetCallBack(audioPlayer) {
audioRecorder.on('prepare', () => { // 设置'prepare'事件回调 audioRecorder.on('prepare', () => { // 设置'prepare'事件回调
console.log('prepare success'); console.log('prepare success');
...@@ -108,6 +143,32 @@ function SetCallBack(audioPlayer) { ...@@ -108,6 +143,32 @@ function SetCallBack(audioPlayer) {
console.log('audio recorder release success'); console.log('audio recorder release success');
}); });
} }
// pathName是传入的录制文件名,例如:01.mp3,生成后的文件地址:/storage/media/100/local/files/Movies/01.mp3
// 使用mediaLibrary需要添加以下权限, ohos.permission.MEDIA_LOCATION、ohos.permission.WRITE_MEDIA、ohos.permission.READ_MEDIA
async function getFd(pathName) {
let displayName = pathName;
const mediaTest = mediaLibrary.getMediaLibrary();
let fileKeyObj = mediaLibrary.FileKey;
let mediaType = mediaLibrary.MediaType.VIDEO;
let publicPath = await mediaTest.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO);
let dataUri = await mediaTest.createAsset(mediaType, displayName, publicPath);
if (dataUri != undefined) {
let args = dataUri.id.toString();
let fetchOp = {
selections : fileKeyObj.ID + "=?",
selectionArgs : [args],
}
let fetchFileResult = await mediaTest.getFileAssets(fetchOp);
let fileAsset = await fetchFileResult.getAllObject();
let fdNumber = await fileAsset[0].open('Rw');
fdNumber = "fd://" + fdNumber.toString();
testFdNumber = fdNumber;
}
}
await getFd('01.mp3');
// 1.创建实例 // 1.创建实例
let audioRecorder = media.createAudioRecorder(); let audioRecorder = media.createAudioRecorder();
// 2.设置回调 // 2.设置回调
...@@ -119,7 +180,7 @@ let audioRecorderConfig = { ...@@ -119,7 +180,7 @@ let audioRecorderConfig = {
audioSampleRate : 22050, audioSampleRate : 22050,
numberOfChannels : 2, numberOfChannels : 2,
format : media.AudioOutputFormat.AAC_ADTS, format : media.AudioOutputFormat.AAC_ADTS,
uri : 'file:///data/accounts/account_0/appdata/appdata/recorder/test.m4a', // 文件需先由调用者创建,并给予适当的权限 uri : testFdNumber, // testFdNumber由getFd生成
location : { latitude : 30, longitude : 130}, location : { latitude : 30, longitude : 130},
} }
audioRecorder.prepare(audioRecorderConfig) audioRecorder.prepare(audioRecorderConfig)
......
...@@ -30,10 +30,21 @@ ...@@ -30,10 +30,21 @@
VideoPlayer支持的url媒体源输入类型可参考:[url属性说明](../reference/apis/js-apis-media.md#videoplayer_属性) VideoPlayer支持的url媒体源输入类型可参考:[url属性说明](../reference/apis/js-apis-media.md#videoplayer_属性)
Xcomponent创建方法可参考:[Xcomponent创建方法](#Xcomponent创建方法)
```js ```js
import media from '@ohos.multimedia.media'
import fileIO from '@ohos.fileio'
let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象 let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象
let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID
// 调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中,该接口由XComponent组件默认加载,非主动调用
LoadXcomponent() {
surfaceID = this.$element('Xcomponent').getXComponentSurfaceId();
console.info('LoadXcomponent surfaceID is' + surfaceID);
}
// 函数调用发生错误时用于上报错误信息 // 函数调用发生错误时用于上报错误信息
function failureCallback(error) { function failureCallback(error) {
console.info(`error happened,error Name is ${error.name}`); console.info(`error happened,error Name is ${error.name}`);
...@@ -67,10 +78,19 @@ await media.createVideoPlayer().then((video) => { ...@@ -67,10 +78,19 @@ await media.createVideoPlayer().then((video) => {
} }
}, failureCallback).catch(catchCallback); }, failureCallback).catch(catchCallback);
// 用户选择视频设置url // 用户选择视频设置fd(本地播放)
videoPlayer.url = 'file:///data/data/ohos.xxx.xxx/files/test.mp4'; let fdPath = 'fd://'
let path = 'data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp4';
await fileIO.open(path).then(fdNumber) => {
fdPath = fdPath + '' + fdNumber;
console.info('open fd sucess fd is' + fdPath);
}, (err) => {
console.info('open fd failed err is' + err);
}),catch((err) => {
console.info('open fd failed err is' + err);
});
// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中 videoPlayer.url = fdPath;
// 设置surfaceID用于显示视频画面 // 设置surfaceID用于显示视频画面
await videoPlayer.setDisplaySurface(surfaceID).then(() => { await videoPlayer.setDisplaySurface(surfaceID).then(() => {
...@@ -147,9 +167,18 @@ surfaceID = undefined; ...@@ -147,9 +167,18 @@ surfaceID = undefined;
### 正常播放场景 ### 正常播放场景
```js ```js
import media from '@ohos.multimedia.media'
import fileIO from '@ohos.fileio'
let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象 let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象
let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID
// 调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中,该接口由XComponent组件默认加载,非主动调用
LoadXcomponent() {
surfaceID = this.$element('Xcomponent').getXComponentSurfaceId();
console.info('LoadXcomponent surfaceID is' + surfaceID);
}
// 函数调用发生错误时用于上报错误信息 // 函数调用发生错误时用于上报错误信息
function failureCallback(error) { function failureCallback(error) {
console.info(`error happened,error Name is ${error.name}`); console.info(`error happened,error Name is ${error.name}`);
...@@ -191,10 +220,19 @@ await media.createVideoPlayer().then((video) => { ...@@ -191,10 +220,19 @@ await media.createVideoPlayer().then((video) => {
// 设置事件回调 // 设置事件回调
SetCallBack(videoPlayer); SetCallBack(videoPlayer);
// 用户选择视频设置url // 用户选择视频设置fd(本地播放)
videoPlayer.url = 'file:///data/data/ohos.xxx.xxx/files/test.mp4'; let fdPath = 'fd://'
let path = 'data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp4';
await fileIO.open(path).then(fdNumber) => {
fdPath = fdPath + '' + fdNumber;
console.info('open fd sucess fd is' + fdPath);
}, (err) => {
console.info('open fd failed err is' + err);
}),catch((err) => {
console.info('open fd failed err is' + err);
});
// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中 videoPlayer.url = fdPath;
// 设置surfaceID用于显示视频画面 // 设置surfaceID用于显示视频画面
await videoPlayer.setDisplaySurface(surfaceID).then(() => { await videoPlayer.setDisplaySurface(surfaceID).then(() => {
...@@ -215,9 +253,18 @@ await videoPlayer.play().then(() => { ...@@ -215,9 +253,18 @@ await videoPlayer.play().then(() => {
### 切视频场景 ### 切视频场景
```js ```js
import media from '@ohos.multimedia.media'
import fileIO from '@ohos.fileio'
let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象 let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象
let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID
// 调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中,该接口由XComponent组件默认加载,非主动调用
LoadXcomponent() {
surfaceID = this.$element('Xcomponent').getXComponentSurfaceId();
console.info('LoadXcomponent surfaceID is' + surfaceID);
}
// 函数调用发生错误时用于上报错误信息 // 函数调用发生错误时用于上报错误信息
function failureCallback(error) { function failureCallback(error) {
console.info(`error happened,error Name is ${error.name}`); console.info(`error happened,error Name is ${error.name}`);
...@@ -259,10 +306,19 @@ await media.createVideoPlayer().then((video) => { ...@@ -259,10 +306,19 @@ await media.createVideoPlayer().then((video) => {
// 设置事件回调 // 设置事件回调
SetCallBack(videoPlayer); SetCallBack(videoPlayer);
// 用户选择视频设置url // 用户选择视频设置fd(本地播放)
videoPlayer.url = 'file:///data/data/ohos.xxx.xxx/files/test.mp4'; let fdPath = 'fd://'
let path = 'data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp4';
await fileIO.open(path).then(fdNumber) => {
fdPath = fdPath + '' + fdNumber;
console.info('open fd sucess fd is' + fdPath);
}, (err) => {
console.info('open fd failed err is' + err);
}),catch((err) => {
console.info('open fd failed err is' + err);
});
// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中 videoPlayer.url = fdPath;
// 设置surfaceID用于显示视频画面 // 设置surfaceID用于显示视频画面
await videoPlayer.setDisplaySurface(surfaceID).then(() => { await videoPlayer.setDisplaySurface(surfaceID).then(() => {
...@@ -285,7 +341,19 @@ await videoPlayer.reset().then(() => { ...@@ -285,7 +341,19 @@ await videoPlayer.reset().then(() => {
console.info('reset success'); console.info('reset success');
}, failureCallback).catch(catchCallback); }, failureCallback).catch(catchCallback);
videoPlayer.url = 'file:///data/data/ohos.xxx.xxx/files/next.mp4'; // 用户选择视频设置fd(本地播放)
let fdNextPath = 'fd://'
let nextPath = 'data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/02.mp4';
await fileIO.open(nextPath).then(fdNumber) => {
fdNextPath = fdNextPath + '' + fdNumber;
console.info('open fd sucess fd is' + fdNextPath);
}, (err) => {
console.info('open fd failed err is' + err);
}),catch((err) => {
console.info('open fd failed err is' + err);
});
videoPlayer.url = fdNextPath;
// 设置surfaceID用于显示视频画面 // 设置surfaceID用于显示视频画面
await videoPlayer.setDisplaySurface(surfaceID).then(() => { await videoPlayer.setDisplaySurface(surfaceID).then(() => {
...@@ -306,9 +374,18 @@ await videoPlayer.play().then(() => { ...@@ -306,9 +374,18 @@ await videoPlayer.play().then(() => {
### 单个视频循环场景 ### 单个视频循环场景
```js ```js
import media from '@ohos.multimedia.media'
import fileIO from '@ohos.fileio'
let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象 let videoPlayer = undefined; // 用于保存createVideoPlayer创建的对象
let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID let surfaceID = undefined; // 用于保存Xcomponent接口返回的surfaceID
// 调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中,该接口由XComponent组件默认加载,非主动调用
LoadXcomponent() {
surfaceID = this.$element('Xcomponent').getXComponentSurfaceId();
console.info('LoadXcomponent surfaceID is' + surfaceID);
}
// 函数调用发生错误时用于上报错误信息 // 函数调用发生错误时用于上报错误信息
function failureCallback(error) { function failureCallback(error) {
console.info(`error happened,error Name is ${error.name}`); console.info(`error happened,error Name is ${error.name}`);
...@@ -350,10 +427,19 @@ await media.createVideoPlayer().then((video) => { ...@@ -350,10 +427,19 @@ await media.createVideoPlayer().then((video) => {
// 设置事件回调 // 设置事件回调
SetCallBack(videoPlayer); SetCallBack(videoPlayer);
// 用户选择视频设置url // 用户选择视频设置fd(本地播放)
videoPlayer.url = 'file:///data/data/ohos.xxx.xxx/files/test.mp4'; let fdPath = 'fd://'
let path = 'data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp4';
await fileIO.open(path).then(fdNumber) => {
fdPath = fdPath + '' + fdNumber;
console.info('open fd sucess fd is' + fdPath);
}, (err) => {
console.info('open fd failed err is' + err);
}),catch((err) => {
console.info('open fd failed err is' + err);
});
// 该处需要调用Xcomponent的接口用于获取surfaceID,并保存在surfaceID变量中 videoPlayer.url = fdPath;
// 设置surfaceID用于显示视频画面 // 设置surfaceID用于显示视频画面
await videoPlayer.setDisplaySurface(surfaceID).then(() => { await videoPlayer.setDisplaySurface(surfaceID).then(() => {
...@@ -373,3 +459,15 @@ await videoPlayer.play().then(() => { ...@@ -373,3 +459,15 @@ await videoPlayer.play().then(() => {
console.info('play success'); console.info('play success');
}, failureCallback).catch(catchCallback); }, failureCallback).catch(catchCallback);
``` ```
### Xcomponent创建方法
```js
播放视频中获取surfaceID依赖了Xcomponent,需要创建一个和xxx.js同名的xxx.hml文件,xxx.hml里面需要添加如下代码
<xcomponent id = 'Xcomponent'
if = "{{isFlush}}" // 刷新surfaceID,isFlush赋值false再赋值true为一次刷新,会主动再次加载LoadXcomponet获取新的surfaceID
type = 'surface'
onload = 'LoadXcomponet' // 默认加载接口
style = "wodth:720px;height:480px;border-color:red;border-width:5px;"> // 设置窗口宽高等属性
</xcomponent>
```
...@@ -23,6 +23,36 @@ ...@@ -23,6 +23,36 @@
包含流程:创建实例,设置录制参数,录制视频,暂停录制,恢复录制,停止录制,释放资源等流程。 包含流程:创建实例,设置录制参数,录制视频,暂停录制,恢复录制,停止录制,释放资源等流程。
```js ```js
import media from '@ohos.multimedia.media'
import mediaLibrary from '@ohos.multimedia.mediaLibrary'
let testFdNumber;
// pathName是传入的录制文件名,例如:01.mp4,生成后的文件地址:/storage/media/100/local/files/Movies/01.mp4
// 使用mediaLibrary需要添加以下权限, ohos.permission.MEDIA_LOCATION、ohos.permission.WRITE_MEDIA、ohos.permission.READ_MEDIA
async function getFd(pathName) {
let displayName = pathName;
const mediaTest = mediaLibrary.getMediaLibrary();
let fileKeyObj = mediaLibrary.FileKey;
let mediaType = mediaLibrary.MediaType.VIDEO;
let publicPath = await mediaTest.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO);
let dataUri = await mediaTest.createAsset(mediaType, displayName, publicPath);
if (dataUri != undefined) {
let args = dataUri.id.toString();
let fetchOp = {
selections : fileKeyObj.ID + "=?",
selectionArgs : [args],
}
let fetchFileResult = await mediaTest.getFileAssets(fetchOp);
let fileAsset = await fetchFileResult.getAllObject();
let fdNumber = await fileAsset[0].open('Rw');
fdNumber = "fd://" + fdNumber.toString();
testFdNumber = fdNumber;
}
}
await getFd('01.mp4');
let videoProfile = { let videoProfile = {
audioBitrate : 48000, audioBitrate : 48000,
audioChannels : 2, audioChannels : 2,
...@@ -40,7 +70,7 @@ let videoConfig = { ...@@ -40,7 +70,7 @@ let videoConfig = {
audioSourceType : 1, audioSourceType : 1,
videoSourceType : 0, videoSourceType : 0,
profile : videoProfile, profile : videoProfile,
url : 'file:///data/media/01.mp4', url : testFdNumber, // testFdNumber由getFd生成
orientationHint : 0, orientationHint : 0,
location : { latitude : 30, longitude : 130 }, location : { latitude : 30, longitude : 130 },
} }
...@@ -61,6 +91,7 @@ function catchCallback(error) { ...@@ -61,6 +91,7 @@ function catchCallback(error) {
let videoRecorder = null; // videoRecorder空对象在createVideoRecorder成功后赋值 let videoRecorder = null; // videoRecorder空对象在createVideoRecorder成功后赋值
let surfaceID = null; // 用于保存getInputSurface返回的surfaceID let surfaceID = null; // 用于保存getInputSurface返回的surfaceID
// 创建videoRecorder对象 // 创建videoRecorder对象
await media.createVideoRecorder().then((recorder) => { await media.createVideoRecorder().then((recorder) => {
console.info('case createVideoRecorder called'); console.info('case createVideoRecorder called');
......
...@@ -10,7 +10,3 @@ ...@@ -10,7 +10,3 @@
- [配置OpenHarmony应用签名信息](configuring-openharmony-app-signature.md) - [配置OpenHarmony应用签名信息](configuring-openharmony-app-signature.md)
- [安装运行OpenHarmony应用](installing-openharmony-app.md) - [安装运行OpenHarmony应用](installing-openharmony-app.md)
- [包结构说明](package-structure.md) - [包结构说明](package-structure.md)
- 快速入门
- [开发准备](start-overview.md)
- [使用JS语言开发](start-with-js.md)
- [使用eTS语言开发](start-with-ets.md)
# 开发准备
## 任务说明
本文档适用于应用开发的初学者。通过构建一个简单的具有页面跳转功能的应用(如下图[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)运行效果所示),熟悉应用开发流程。
为确保运行效果,本文以使用**DevEco Studio 3.0 Beta2**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
![zh-cn_image_0000001089359413](figures/zh-cn_image_0000001089359413.png)
**表1** 方舟开发框架的对比
| 比较项 | 基于JS扩展的类Web开发范式 | 基于TS扩展的声明式开发范式 |
| -------- | -------- | -------- |
| 语言生态 | JS | eTS |
| 接口方式 | 类Web范式 | 声明式 |
| 执行方式 | 框架层处理,基于数据驱动的UI自动变更 | 框架层处理,基于数据驱动的UI自动变更 |
| 相对优势 | 轻量化,开发更简便 | 极简开发,内存占用更少、运行性能更高 |
接下来,分别使用JS语言、eTS语言实现上述两个页面跳转的功能。
## 开发准备
1. 开始前请参考[配置OpenHarmony SDK](../quick-start/configuring-openharmony-sdk.md),完成**DevEco Studio**的安装和开发环境配置。
2. 开发环境配置完成后,请参考[创建OpenHarmony工程](../quick-start/use-wizard-to-create-project.md)创建工程。
- 使用JS语言开发,模板选择Empty Ability,Language选择JS。
- 使用eTS语言开发,模板选择Empty Ability,Language选择eTS。
3. 工程创建完成后,使用[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)运行该工程。
完成上述操作后,请参考[使用JS语言开发](../quick-start/start-with-js.md)[使用eTS语言开发](../quick-start/start-with-ets.md)继续下一步的学习。
# 使用eTS语言开发
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 请使用DevEco Studio V3.0.0.601 Beta1及更高版本。本文以使用**DevEco Studio 3.0 Beta2**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
## 创建eTS工程
1. 打开DevEco Studio,创建一个新工程,选择模板,如Empty Ability:
![zh-cn_image_0000001238733799](figures/zh-cn_image_0000001238733799.png)
2. 进入配置工程界面,Project Type选择Application,Language选择eTS,其他参数根据实际需要设置即可。
![zh-cn_image_0000001238853759](figures/zh-cn_image_0000001238853759.png)
## 编写第一个页面
1. 工程创建完成后,在"Project"窗口,点击entry &gt; src &gt; main &gt; ets &gt; default &gt; pages,打开index.ets文件。
![zh-cn_image_0000001213883165](figures/zh-cn_image_0000001213883165.png)
2. 第一个页面由Flex容器组件、Text组件和Button组件构成。在index.ets中编写并设置页面组件的属性和样式,示例代码如下所示:
```
@Entry
@Component
struct Index {
build() {
//Flex容器组件
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
//Text组件
Text('Hello World')
.fontSize(60)
.fontWeight(500)
//Button组件
Button('Next')
.fontSize(40)
.fontWeight(500)
.width(280)
.height(60)
}
//容器整体宽高
.width('100%')
.height('100%')
}
}
```
3. 使用[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)运行项目,效果如下图所示:
![zh-cn_image_0000001168898456](figures/zh-cn_image_0000001168898456.png)
## 创建第二个页面
1. 在"Project"窗口,打开entry &gt; src &gt; main &gt; ets &gt; default,右键点击pages文件夹,选择NeweTS Page,命名为details,单击回车键。创建完成后,可以看到pages文件夹下的文件目录结构如下:
![zh-cn_image_0000001214043107](figures/zh-cn_image_0000001214043107.png)
2. 第二个页面由Flex容器组件、Text组件构成。在details.ets中编写并设置页面组件的属性和样式,示例代码如下所示:
```
@Entry
@Component
struct Details {
build() {
//Flex容器组件
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
//Text组件
Text('Hi there')
.fontSize(60)
.fontWeight(500)
}
//容器整体宽高
.width('100%')
.height('100%')
}
}
```
## 实现页面跳转
1. 打开第一个页面的index.ets文件,导入router模块,页面路由router根据页面的uri来找到目标页面,从而实现跳转。示例代码如下:
```
//导入router模块
import router from '@system.router';
@Entry
@Component
struct Index {
build() {
//Flex容器组件
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
//Text组件
Text('Hello World')
.fontSize(60)
.fontWeight(500)
//Button组件
Button('Next')
.fontSize(40)
.fontWeight(500)
.width(280)
.height(60)
//点击Button实现页面跳转
.onClick(() => { router.push({ uri: 'pages/details' }) })
}
//容器整体宽高
.width('100%')
.height('100%')
}
}
```
2. 再次使用[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)运行项目,效果如下图所示:
![zh-cn_image_0000001169221404](figures/zh-cn_image_0000001169221404.png)
恭喜你,至此已成功完成快速入门-使用eTS语言开发。
# 使用JS语言开发(传统代码方式)
为确保运行效果,本文以使用**DevEco Studio 3.0 Beta2**版本为例,点击[此处](https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta)获取下载链接。
## 编写第一个页面
1. 第一个页面内有一个文本和一个按钮,通过text和button组件来实现。
在"Project"窗口,选择entry &gt; src &gt; main &gt; js &gt; default &gt; pages &gt; index,打开index.hml文件,添加一个文本和一个按钮,示例代码如下:
```
<!-- index.hml -->
<div class="container">
<!-- 添加一个文本 -->
<text class="text">
Hello World
</text>
<!-- 添加一个按钮,按钮样式设置为胶囊型,文本显示为Next,绑定launch事件 -->
<button class="button" type="capsule" value="Next" onclick="launch"></button>
</div>
```
2. 打开index.css文件,设置文本和按钮的样式,示例代码如下:
```
/* index.css */
.container {
flex-direction: column; /* 设置容器内的项目纵向排列 */
justify-content: center; /* 设置项目位于容器主轴的中心 */
align-items: center; /* 项目在交叉轴居中 */
width:100%;
height:100%;
}
/* 对class="text"的组件设置样式 */
.text{
font-size: 42px;
}
/* 对class="button"的组件设置样式 */
.button {
width: 240px;
height: 60px;
background-color: #007dff;
font-size: 30px;
text-color: white;
margin-top: 20px;
}
```
3. 使用[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)运行项目,效果如下图所示:
![zh-cn_image_0000001167690688](figures/zh-cn_image_0000001167690688.png)
## 创建另一个页面
1. 在"Project"窗口,打开entry &gt; src &gt; main &gt; js &gt; default,右键点击pages文件夹,选择NewJS Page,命名为details,单击回车键。
创建完成后,可以看到pages文件夹下的文件目录结构如下:
![zh-cn_image_0000001167850660](figures/zh-cn_image_0000001167850660.png)
2. 打开details.hml文件,添加一个文本,示例代码如下:
```
<!-- details.hml -->
<div class="container">
<text class="text">
Hi there
</text>
</div>
```
3. 打开details.css文件,设置文本的样式,示例代码如下:
```
/* details.css */
.container {
flex-direction: column;
justify-content: center;
align-items: center;
width:100%;
height:100%;
}
.text {
font-size: 42px;
text-align: center;
}
```
## 实现页面跳转
1. 打开第一个页面的index.js文件,导入router模块,页面路由router根据页面的uri来找到目标页面,从而实现跳转。示例代码如下:
```
// index.js
import router from '@system.router';
export default {
launch() {
router.push ({
uri:'pages/details/details', // 指定要跳转的页面
})
}
}
```
2. 再次使用[预览器](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/previewer-0000001054328973#ZH-CN_TOPIC_0000001056725592__section16523172216252)运行项目,效果如下图所示:
![zh-cn_image_0000001213130527](figures/zh-cn_image_0000001213130527.png)
恭喜你,至此已成功完成快速入门-使用JS语言开发。
# 快速入门
- **[开发准备](start-overview.md)**
- **[使用JS语言开发](start-with-js.md)**
- **[使用eTS语言开发](start-with-ets.md)**
\ No newline at end of file
...@@ -217,3 +217,12 @@ promise.then(data => { ...@@ -217,3 +217,12 @@ promise.then(data => {
console.log(`promise: data->${JSON.stringify(data)}`); console.log(`promise: data->${JSON.stringify(data)}`);
}); });
``` ```
### GrantStatus
表示授权状态的枚举。
| 名称 | 默认值 | 描述 |
| ----------------------------- | ---------------------- | ----------------------- |
| PERMISSION_DENIED | -1 | 表示未授权。 |
| PERMISSION_GRANTED | 0 | 表示已授权。 |
\ No newline at end of file
...@@ -55,15 +55,15 @@ add(element: T): boolean ...@@ -55,15 +55,15 @@ add(element: T): boolean
**示例:** **示例:**
``` ```
let arrayList = new ArrayList(); let arrayList = new ArrayList();
arrayList.add("a"); let result = arrayList.add("a");
arrayList.add(1); let result1 = arrayList.add(1);
let b = [1, 2, 3]; let b = [1, 2, 3];
arrayList.add(b); let result2 = arrayList.add(b);
let c = {name: "lala", age: "13"}; let c = {name: "lala", age: "13"};
arrayList.add(false); let result3 = arrayList.add(false);
``` ```
### insert ### insert
...@@ -109,9 +109,9 @@ has(element: T): boolean ...@@ -109,9 +109,9 @@ has(element: T): boolean
``` ```
let arrayList = new ArrayList(); let arrayList = new ArrayList();
arrayList.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result = arrayList.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
arrayList.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); arrayList.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
arrayList.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result1 = arrayList.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
``` ```
### getIndexOf ### getIndexOf
...@@ -143,7 +143,7 @@ arrayList.add(2); ...@@ -143,7 +143,7 @@ arrayList.add(2);
arrayList.add(1); arrayList.add(1);
arrayList.add(2); arrayList.add(2);
arrayList.add(4); arrayList.add(4);
arrayList.getIndexOf(2); let result = arrayList.getIndexOf(2);
``` ```
### getLastIndexOf ### getLastIndexOf
...@@ -175,7 +175,7 @@ arrayList.add(2); ...@@ -175,7 +175,7 @@ arrayList.add(2);
arrayList.add(1); arrayList.add(1);
arrayList.add(2); arrayList.add(2);
arrayList.add(4); arrayList.add(4);
arrayList.getLastIndexOf(2); let result = arrayList.getLastIndexOf(2);
``` ```
### removeByIndex ### removeByIndex
...@@ -205,7 +205,7 @@ arrayList.add(4); ...@@ -205,7 +205,7 @@ arrayList.add(4);
arrayList.add(5); arrayList.add(5);
arrayList.add(2); arrayList.add(2);
arrayList.add(4); arrayList.add(4);
arrayList.removeByIndex(2); let result = arrayList.removeByIndex(2);
``` ```
### remove ### remove
...@@ -234,7 +234,7 @@ arrayList.add(2); ...@@ -234,7 +234,7 @@ arrayList.add(2);
arrayList.add(4); arrayList.add(4);
arrayList.add(5); arrayList.add(5);
arrayList.add(4); arrayList.add(4);
arrayList.remove(2); let result = arrayList.remove(2);
``` ```
### removeByRange ### removeByRange
...@@ -264,7 +264,7 @@ arrayList.removeByRange(2, 6); ...@@ -264,7 +264,7 @@ arrayList.removeByRange(2, 6);
``` ```
### replaceAllElements ### replaceAllElements
replaceAllElements(callbackfn: (value: T, index?: number, arraylist?: ArrayList&lt;T&gt;) => T, replaceAllElements(callbackfn: (value: T, index?: number, arrlist?: ArrayList&lt;T&gt;) => T,
thisArg?: Object): void thisArg?: Object): void
用户操作ArrayList中的元素,用操作后的元素替换原元素并返回操作后的元素。 用户操作ArrayList中的元素,用操作后的元素替换原元素并返回操作后的元素。
...@@ -280,9 +280,9 @@ callbackfn的参数说明: ...@@ -280,9 +280,9 @@ callbackfn的参数说明:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 当前遍历到的元素 | | value | T | 是 | 当前遍历到的元素 |
| index | number | 否 | 当前遍历到的下标值 | | index | number | 否 | 当前遍历到的下标值 |
| arraylist | ArrayList&lt;T&gt; | 否 | 当前调用replaceAllElements方法的实例对象 | | arrlist | ArrayList&lt;T&gt; | 否 | 当前调用replaceAllElements方法的实例对象。 |
**示例:** **示例:**
...@@ -301,7 +301,7 @@ arrayList.replaceAllElements((value, index) => { ...@@ -301,7 +301,7 @@ arrayList.replaceAllElements((value, index) => {
``` ```
### forEach ### forEach
forEach(callbackfn: (value: T, index?: number, arraylist?: ArrayList&lt;T&gt;) => void, forEach(callbackfn: (value: T, index?: number, arrlist?: ArrayList&lt;T&gt;) => void,
thisArg?: Object): void thisArg?: Object): void
通过回调函数来遍历ArrayList实例对象上的元素以及元素对应的下标。 通过回调函数来遍历ArrayList实例对象上的元素以及元素对应的下标。
...@@ -319,7 +319,7 @@ callbackfn的参数说明: ...@@ -319,7 +319,7 @@ callbackfn的参数说明:
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 当前遍历到的元素。 | | value | T | 是 | 当前遍历到的元素。 |
| index | number | 否 | 当前遍历到的下标值。 | | index | number | 否 | 当前遍历到的下标值。 |
| arraylist | ArrayList&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 | | arrlist | ArrayList&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 |
**示例:** **示例:**
...@@ -391,9 +391,9 @@ arrayList.add(2); ...@@ -391,9 +391,9 @@ arrayList.add(2);
arrayList.add(4); arrayList.add(4);
arrayList.add(5); arrayList.add(5);
arrayList.add(4); arrayList.add(4);
arrayList.subArrayList(2, 4); let result1 = arrayList.subArrayList(2, 4);
arrayList.subArrayList(4, 3); let result2 = arrayList.subArrayList(4, 3);
arrayList.subArrayList(2, 6); let result3 = arrayList.subArrayList(2, 6);
``` ```
### clear ### clear
...@@ -415,7 +415,8 @@ arrayList.clear(); ...@@ -415,7 +415,8 @@ arrayList.clear();
### clone ### clone
clone(): ArrayList&lt;T&gt; clone(): ArrayList&lt;T&gt;
克隆一个与ArrayList一模一样的实例,并返回克隆后的实例,修改克隆后的实例并不会影响原实例。 克隆一个与ArrayList相同的实例,并返回克隆后的实例。修改克隆后的实例并不会影响原实例。
**返回值:** **返回值:**
...@@ -431,7 +432,7 @@ arrayList.add(2); ...@@ -431,7 +432,7 @@ arrayList.add(2);
arrayList.add(4); arrayList.add(4);
arrayList.add(5); arrayList.add(5);
arrayList.add(4); arrayList.add(4);
arrayList.clone(); let result = arrayList.clone();
``` ```
### getCapacity ### getCapacity
...@@ -453,7 +454,7 @@ arrayList.add(2); ...@@ -453,7 +454,7 @@ arrayList.add(2);
arrayList.add(4); arrayList.add(4);
arrayList.add(5); arrayList.add(5);
arrayList.add(4); arrayList.add(4);
arrayList.getCapacity(); let result = arrayList.getCapacity();
``` ```
### convertToArray ### convertToArray
...@@ -475,7 +476,7 @@ arrayList.add(2); ...@@ -475,7 +476,7 @@ arrayList.add(2);
arrayList.add(4); arrayList.add(4);
arrayList.add(5); arrayList.add(5);
arrayList.add(4); arrayList.add(4);
arrayList.convertToArray(); let result = arrayList.convertToArray();
``` ```
### isEmpty ### isEmpty
...@@ -497,7 +498,7 @@ arrayList.add(2); ...@@ -497,7 +498,7 @@ arrayList.add(2);
arrayList.add(4); arrayList.add(4);
arrayList.add(5); arrayList.add(5);
arrayList.add(4); arrayList.add(4);
arrayList.isEmpty(); let result = arrayList.isEmpty();
``` ```
### increaseCapacityTo ### increaseCapacityTo
......
...@@ -239,7 +239,7 @@ getRemoteDeviceClass(deviceId: string): DeviceClass ...@@ -239,7 +239,7 @@ getRemoteDeviceClass(deviceId: string): DeviceClass
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| [DeviceClass](#DeviceClass) | 远程设备的类别。 | | [DeviceClass](#deviceclass) | 远程设备的类别。 |
**示例:** **示例:**
...@@ -1982,7 +1982,7 @@ if (retWriteDesc) { ...@@ -1982,7 +1982,7 @@ if (retWriteDesc) {
setBLEMtuSize(mtu: number): boolean setBLEMtuSize(mtu: number): boolean
client协商远端蓝牙低功耗设备的最大传输单元(Maximum Transmission Unit, MTU),调用connect接口连接成功后才能使用。 client协商远端蓝牙低功耗设备的最大传输单元(Maximum Transmission Unit, MTU),调用[connect](#connect)接口连接成功后才能使用。
**参数:** **参数:**
...@@ -2196,7 +2196,7 @@ let deviceName = gattClient.getDeviceName().then((data) => { ...@@ -2196,7 +2196,7 @@ let deviceName = gattClient.getDeviceName().then((data) => {
getRssiValue(callback: AsyncCallback&lt;number&gt;): void getRssiValue(callback: AsyncCallback&lt;number&gt;): void
client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect](#connect-boolean)接口连接成功后才能使用。 client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect](#connect)接口连接成功后才能使用。
**参数:** **参数:**
...@@ -2225,7 +2225,7 @@ let rssi = gattClient.getRssiValue((err, data)=> { ...@@ -2225,7 +2225,7 @@ let rssi = gattClient.getRssiValue((err, data)=> {
getRssiValue(): Promise&lt;number&gt; getRssiValue(): Promise&lt;number&gt;
client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect](#connect-boolean)接口连接成功后才能使用。 client获取远端蓝牙低功耗设备的信号强度 (Received Signal Strength Indication, RSSI),调用[connect](#connect)接口连接成功后才能使用。
**返回值:** **返回值:**
...@@ -2277,7 +2277,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2277,7 +2277,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| uuid | string | 是 | 是 | spp单据的uuid。 | | uuid | string | 是 | 是 | spp单据的uuid。 |
| isPrimary | boolean | 是 | 是 | 是否是安全通道。 | | isPrimary | boolean | 是 | 是 | 是否是安全通道。 |
| type | [SppType](#SppType) | 是 | 是 | Spp链路类型。 | | type | [SppType](#spptype) | 是 | 是 | Spp链路类型。 |
## SppType ## SppType
...@@ -2297,8 +2297,8 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2297,8 +2297,8 @@ let rssi = gattClient.getRssiValue().then((data) => {
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | | serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 |
| isPrimary | boolean | 是 | 是 | 如果是主服务设置为true,否则设置为false。 | | isPrimary | boolean | 是 | 是 | 如果是主服务设置为true,否则设置为false。 |
| characteristics | Array&lt;[BLECharacteristic](#BLECharacteristic)&gt; | 是 | 是 | 当前服务包含的特征列表。 | | characteristics | Array&lt;[BLECharacteristic](#blecharacteristic)&gt; | 是 | 是 | 当前服务包含的特征列表。 |
| includeServices | Array&lt;[GattService](#GattService)&gt; | 是 | 是 | 当前服务依赖的其它服务。 | | includeServices | Array&lt;[GattService](#gattservice)&gt; | 是 | 是 | 当前服务依赖的其它服务。 |
## BLECharacteristic ## BLECharacteristic
...@@ -2310,7 +2310,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2310,7 +2310,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 | | serviceUuid | string | 是 | 是 | 特定服务(service)的UUID,例如:00001888-0000-1000-8000-00805f9b34fb。 |
| characteristicUuid | string | 是 | 是 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 | | characteristicUuid | string | 是 | 是 | 特定特征(characteristic)的UUID,例如:00002a11-0000-1000-8000-00805f9b34fb。 |
| characteristicValue | ArrayBuffer | 是 | 是 | 特征对应的二进制值。 | | characteristicValue | ArrayBuffer | 是 | 是 | 特征对应的二进制值。 |
| descriptors | Array&lt;[BLEDescriptor](#BLEDescriptor)&gt; | 是 | 是 | 特定特征的描述符列表。 | | descriptors | Array&lt;[BLEDescriptor](#bledescriptor)&gt; | 是 | 是 | 特定特征的描述符列表。 |
## BLEDescriptor ## BLEDescriptor
...@@ -2415,7 +2415,7 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2415,7 +2415,7 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 否 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 | | deviceId | string | 是 | 否 | 表示远端设备地址,例如:"XX:XX:XX:XX:XX:XX"。 |
| state | [ProfileConnectionState](#ProfileConnectionState) | 是 | 是 | 表示BLE连接状态的枚举。 | | state | [ProfileConnectionState](#profileconnectionState) | 是 | 是 | 表示BLE连接状态的枚举。 |
## ProfileConnectionState ## ProfileConnectionState
...@@ -2448,8 +2448,8 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2448,8 +2448,8 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| interval | number | 是 | 是 | 表示扫描结果上报延迟时间,默认值为0。 | | interval | number | 是 | 是 | 表示扫描结果上报延迟时间,默认值为0。 |
| dutyMode | [ScanDuty](#ScanDuty) | 是 | 是 | 表示扫描模式,默认值为SCAN_MODE_LOW_POWER。 | | dutyMode | [ScanDuty](#scanduty) | 是 | 是 | 表示扫描模式,默认值为SCAN_MODE_LOW_POWER。 |
| matchMode | [MatchMode](#MatchMode) | 是 | 是 | 表示硬件的过滤匹配模式,默认值为MATCH_MODE_AGGRESSIVE。 | | matchMode | [MatchMode](#matchmode) | 是 | 是 | 表示硬件的过滤匹配模式,默认值为MATCH_MODE_AGGRESSIVE。 |
## ScanDuty ## ScanDuty
...@@ -2517,8 +2517,8 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2517,8 +2517,8 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| serviceUuids | Array&lt;string&gt; | 是 | 是 | 表示要广播的服务&nbsp;UUID&nbsp;列表。 | | serviceUuids | Array&lt;string&gt; | 是 | 是 | 表示要广播的服务&nbsp;UUID&nbsp;列表。 |
| manufactureData | Array&lt;[ManufactureData](#ManufactureData)&gt; | 是 | 是 | 表示要广播的广播的制造商信息列表。 | | manufactureData | Array&lt;[ManufactureData](#manufacturedata)&gt; | 是 | 是 | 表示要广播的广播的制造商信息列表。 |
| serviceData | Array&lt;[ServiceData](#ServiceData)&gt; | 是 | 是 | 表示要广播的服务数据列表。 | | serviceData | Array&lt;[ServiceData](#servicedata)&gt; | 是 | 是 | 表示要广播的服务数据列表。 |
## ManufactureData ## ManufactureData
...@@ -2557,8 +2557,8 @@ let rssi = gattClient.getRssiValue().then((data) => { ...@@ -2557,8 +2557,8 @@ let rssi = gattClient.getRssiValue().then((data) => {
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| majorClass | [MajorClass](#MajorClass) | 是 | 否 | 表示蓝牙设备主要类别的枚举。 | | majorClass | [MajorClass](#majorclass) | 是 | 否 | 表示蓝牙设备主要类别的枚举。 |
| majorMinorClass | [MajorMinorClass](#MajorMinorClass) | 是 | 否 | 表示主要次要蓝牙设备类别的枚举。 | | majorMinorClass | [MajorMinorClass](#majorminorclass) | 是 | 否 | 表示主要次要蓝牙设备类别的枚举。 |
| classOfDevice | number | 是 | 否 | 表示设备类别。 | | classOfDevice | number | 是 | 否 | 表示设备类别。 |
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块 ## 导入模块
...@@ -23,13 +23,13 @@ import data_Preferences from '@ohos.data.preferences' ...@@ -23,13 +23,13 @@ import data_Preferences from '@ohos.data.preferences'
## data_Preferences.getPreferences ## data_Preferences.getPreferences
### 系统能力
SystemCapability.DistributedDataManager.Preferences.Core
getPreferences(context: Context, name: string, callback: AsyncCallback&lt;Preferences&gt;): void getPreferences(context: Context, name: string, callback: AsyncCallback&lt;Preferences&gt;): void
读取指定文件,将数据加载到Preferences实例,用于数据操作,使用callback形式返回结果。 读取指定文件,将数据加载到Preferences实例,用于数据操作,使用callback形式返回结果。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -55,13 +55,13 @@ getPreferences(context: Context, name: string, callback: AsyncCallback&lt;Prefer ...@@ -55,13 +55,13 @@ getPreferences(context: Context, name: string, callback: AsyncCallback&lt;Prefer
## data_Preferences.getPreferences ## data_Preferences.getPreferences
### 系统能力
SystemCapability.DistributedDataManager.Preferences.Core
getPreferences(context: Context, name: string): Promise&lt;Preferences&gt; getPreferences(context: Context, name: string): Promise&lt;Preferences&gt;
读取指定文件,将数据加载到Preferences实例,用于数据操作,使用Promise方式作为异步方法。 读取指定文件,将数据加载到Preferences实例,用于数据操作,使用Promise方式作为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -90,13 +90,13 @@ getPreferences(context: Context, name: string): Promise&lt;Preferences&gt; ...@@ -90,13 +90,13 @@ getPreferences(context: Context, name: string): Promise&lt;Preferences&gt;
## data_Preferences.deletePreferences ## data_Preferences.deletePreferences
### 系统能力
SystemCapability.DistributedDataManager.Preferences.Core
deletePreferences(context: Context, name: string, callback: AsyncCallback&lt;void&gt;) deletePreferences(context: Context, name: string, callback: AsyncCallback&lt;void&gt;)
从内存中移除指定文件对应的Preferences单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用callback方式作为异步方法。 从内存中移除指定文件对应的Preferences单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用callback方式作为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -120,13 +120,13 @@ deletePreferences(context: Context, name: string, callback: AsyncCallback&lt;voi ...@@ -120,13 +120,13 @@ deletePreferences(context: Context, name: string, callback: AsyncCallback&lt;voi
## data_Preferences.deletePreferences ## data_Preferences.deletePreferences
### 系统能力
SystemCapability.DistributedDataManager.Preferences.Core
deletePreferences(context: Context, name: string): Promise&lt;void&gt; deletePreferences(context: Context, name: string): Promise&lt;void&gt;
从内存中移除指定文件对应的Preferences单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用promise方式作为异步方法。 从内存中移除指定文件对应的Preferences单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题,使用promise方式作为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -153,15 +153,15 @@ deletePreferences(context: Context, name: string): Promise&lt;void&gt; ...@@ -153,15 +153,15 @@ deletePreferences(context: Context, name: string): Promise&lt;void&gt;
## data_Preferences.removePreferencesFromCache ## data_Preferences.removePreferencesFromCache
### 系统能力
SystemCapability.DistributedDataManager.Preferences.Core
removePreferencesFromCache(context: Context, name: string, callback: AsyncCallback&lt;Preferences&gt;): void removePreferencesFromCache(context: Context, name: string, callback: AsyncCallback&lt;Preferences&gt;): void
从内存中移除指定文件对应的Preferences单实例。移除Preferences单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。 从内存中移除指定文件对应的Preferences单实例。移除Preferences单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -185,14 +185,15 @@ removePreferencesFromCache(context: Context, name: string, callback: AsyncCallba ...@@ -185,14 +185,15 @@ removePreferencesFromCache(context: Context, name: string, callback: AsyncCallba
## data_Preferences.removePreferencesFromCache ## data_Preferences.removePreferencesFromCache
### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
removePreferencesFromCache(context: Context, name: string): Promise&lt;void&gt; removePreferencesFromCache(context: Context, name: string): Promise&lt;void&gt;
从内存中移除指定文件对应的Preferences单实例。移除Preferences单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。 从内存中移除指定文件对应的Preferences单实例。移除Preferences单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -224,14 +225,15 @@ removePreferencesFromCache(context: Context, name: string): Promise&lt;void&gt; ...@@ -224,14 +225,15 @@ removePreferencesFromCache(context: Context, name: string): Promise&lt;void&gt;
### get ### get
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
get(key: string, defValue: ValueType, callback: AsyncCallback&lt;ValueType&gt;): void get(key: string, defValue: ValueType, callback: AsyncCallback&lt;ValueType&gt;): void
获取键对应的值,如果值为null或者非默认值类型,返回默认数据。 获取键对应的值,如果值为null或者非默认值类型,返回默认数据。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -253,14 +255,15 @@ get(key: string, defValue: ValueType, callback: AsyncCallback&lt;ValueType&gt;): ...@@ -253,14 +255,15 @@ get(key: string, defValue: ValueType, callback: AsyncCallback&lt;ValueType&gt;):
### get ### get
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
get(key: string, defValue: ValueType): Promise&lt;ValueType&gt; get(key: string, defValue: ValueType): Promise&lt;ValueType&gt;
获取键对应的值,如果值为null或者非默认值类型,返默认数据。 获取键对应的值,如果值为null或者非默认值类型,返默认数据。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- **参数:** - **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -285,14 +288,15 @@ get(key: string, defValue: ValueType): Promise&lt;ValueType&gt; ...@@ -285,14 +288,15 @@ get(key: string, defValue: ValueType): Promise&lt;ValueType&gt;
### put ### put
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
put(key: string, value: ValueType, callback: AsyncCallback&lt;void&gt;): void put(key: string, value: ValueType, callback: AsyncCallback&lt;void&gt;): void
首先获取指定文件对应的Preferences实例,然后借助Preferences API将数据写入Preferences实例,通过flush或者flushSync将Preferences实例持久化。 首先获取指定文件对应的Preferences实例,然后借助Preferences API将数据写入Preferences实例,通过flush或者flushSync将Preferences实例持久化。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -314,14 +318,15 @@ put(key: string, value: ValueType, callback: AsyncCallback&lt;void&gt;): void ...@@ -314,14 +318,15 @@ put(key: string, value: ValueType, callback: AsyncCallback&lt;void&gt;): void
### put ### put
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
put(key: string, value: ValueType): Promise&lt;void&gt; put(key: string, value: ValueType): Promise&lt;void&gt;
首先获取指定文件对应的Preferences实例,然后借助Preferences API将数据写入Preferences实例,通过flush或者flushSync将Preferences实例持久化。 首先获取指定文件对应的Preferences实例,然后借助Preferences API将数据写入Preferences实例,通过flush或者flushSync将Preferences实例持久化。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -346,14 +351,15 @@ put(key: string, value: ValueType): Promise&lt;void&gt; ...@@ -346,14 +351,15 @@ put(key: string, value: ValueType): Promise&lt;void&gt;
### has ### has
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
has(key: string, callback: AsyncCallback&lt;boolean&gt;): boolean has(key: string, callback: AsyncCallback&lt;boolean&gt;): boolean
检查存储对象是否包含名为给定key的存储。 检查存储对象是否包含名为给定key的存储。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -381,14 +387,15 @@ has(key: string, callback: AsyncCallback&lt;boolean&gt;): boolean ...@@ -381,14 +387,15 @@ has(key: string, callback: AsyncCallback&lt;boolean&gt;): boolean
### has ### has
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
has(key: string): Promise&lt;boolean&gt; has(key: string): Promise&lt;boolean&gt;
检查存储对象是否包含名为给定key的存储。 检查存储对象是否包含名为给定key的存储。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -414,14 +421,15 @@ has(key: string): Promise&lt;boolean&gt; ...@@ -414,14 +421,15 @@ has(key: string): Promise&lt;boolean&gt;
### delete ### delete
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
delete(key: string, callback: AsyncCallback&lt;void&gt;): void delete(key: string, callback: AsyncCallback&lt;void&gt;): void
从存储对象中删除名为给定key的存储。 从存储对象中删除名为给定key的存储。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -442,14 +450,15 @@ delete(key: string, callback: AsyncCallback&lt;void&gt;): void ...@@ -442,14 +450,15 @@ delete(key: string, callback: AsyncCallback&lt;void&gt;): void
### delete ### delete
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
delete(key: string): Promise&lt;void&gt; delete(key: string): Promise&lt;void&gt;
从存储对象删除名为给定key的存储。 从存储对象删除名为给定key的存储。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -473,14 +482,15 @@ delete(key: string): Promise&lt;void&gt; ...@@ -473,14 +482,15 @@ delete(key: string): Promise&lt;void&gt;
### flush ### flush
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
flush(callback: AsyncCallback&lt;void&gt;): void flush(callback: AsyncCallback&lt;void&gt;): void
将当前preferences对象中的修改保存到当前的preferences,并异步存储到文件中。 将当前preferences对象中的修改保存到当前的preferences,并异步存储到文件中。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -500,14 +510,15 @@ flush(callback: AsyncCallback&lt;void&gt;): void ...@@ -500,14 +510,15 @@ flush(callback: AsyncCallback&lt;void&gt;): void
### flush ### flush
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
flush(): Promise&lt;void&gt; flush(): Promise&lt;void&gt;
将当前preferences对象中的修改保存到当前的preferences,并异步存储到文件中。 将当前preferences对象中的修改保存到当前的preferences,并异步存储到文件中。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -526,14 +537,15 @@ flush(): Promise&lt;void&gt; ...@@ -526,14 +537,15 @@ flush(): Promise&lt;void&gt;
### clear ### clear
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
clear(callback: AsyncCallback&lt;void&gt;): void clear(callback: AsyncCallback&lt;void&gt;): void
清除此存储对象中的所有存储。 清除此存储对象中的所有存储。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -553,14 +565,15 @@ clear(callback: AsyncCallback&lt;void&gt;): void ...@@ -553,14 +565,15 @@ clear(callback: AsyncCallback&lt;void&gt;): void
### clear ### clear
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
clear(): Promise&lt;void&gt; clear(): Promise&lt;void&gt;
清除此存储对象中的所有存储。 清除此存储对象中的所有存储。
此方法为异步方法。 此方法为异步方法。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -579,12 +592,13 @@ clear(): Promise&lt;void&gt; ...@@ -579,12 +592,13 @@ clear(): Promise&lt;void&gt;
### on('change') ### on('change')
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
on(type: 'change', callback: Callback&lt;{ key : string }&gt;): void on(type: 'change', callback: Callback&lt;{ key : string }&gt;): void
订阅数据变更者类,订阅的key的值发生变更后,在执行flush方法后,callback方法会被回调。 订阅数据变更者类,订阅的key的值发生变更后,在执行flush方法后,callback方法会被回调。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 说明 | | 参数名 | 类型 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
...@@ -604,12 +618,13 @@ on(type: 'change', callback: Callback&lt;{ key : string }&gt;): void ...@@ -604,12 +618,13 @@ on(type: 'change', callback: Callback&lt;{ key : string }&gt;): void
### off('change') ### off('change')
#### 系统能力 SystemCapability.DistributedDataManager.Preferences.Core
off(type: 'change', callback: Callback&lt;{ key : string }&gt;): void off(type: 'change', callback: Callback&lt;{ key : string }&gt;): void
当不再进行订阅数据变更时,使用此接口取消订阅。 当不再进行订阅数据变更时,使用此接口取消订阅。
### 系统能力###
SystemCapability.DistributedDataManager.Preferences.Core
- 参数: - 参数:
| 参数名 | 类型 | 说明 | | 参数名 | 类型 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 从API Version 8开始,该接口不再维护,推荐使用新接口 [@ohos.data.preferences](js-apis-data-preferences.md) > 从API Version 9开始,该接口不再维护,推荐使用新接口 [@ohos.data.preferences](js-apis-data-preferences.md)
## 导入模块 ## 导入模块
......
...@@ -104,9 +104,9 @@ has(element: T): boolean ...@@ -104,9 +104,9 @@ has(element: T): boolean
``` ```
let deque = new Deque(); let deque = new Deque();
deque.has("Ahfbrgrbgnutfodgorrogorg"); let result = deque.has("Ahfbrgrbgnutfodgorrogorg");
deque.insertFront("Ahfbrgrbgnutfodgorrogorg"); deque.insertFront("Ahfbrgrbgnutfodgorrogorg");
deque.has("Ahfbrgrbgnutfodgorrogorg"); let result1 = deque.has("Ahfbrgrbgnutfodgorrogorg");
``` ```
### popFirst ### popFirst
...@@ -130,7 +130,7 @@ deque.insertFront(4); ...@@ -130,7 +130,7 @@ deque.insertFront(4);
deque.insertEnd(5); deque.insertEnd(5);
deque.insertFront(2); deque.insertFront(2);
deque.insertFront(4); deque.insertFront(4);
deque.popFirst(); let result = deque.popFirst();
``` ```
### popLast ### popLast
...@@ -155,6 +155,7 @@ deque.insertFront(5); ...@@ -155,6 +155,7 @@ deque.insertFront(5);
deque.insertFront(2); deque.insertFront(2);
deque.insertFront(4); deque.insertFront(4);
deque.popLast(); deque.popLast();
let result = deque.popLast();
``` ```
### forEach ### forEach
...@@ -211,7 +212,7 @@ deque.insertEnd(2); ...@@ -211,7 +212,7 @@ deque.insertEnd(2);
deque.insertEnd(4); deque.insertEnd(4);
deque.insertFront(5); deque.insertFront(5);
deque.insertFront(4); deque.insertFront(4);
deque.getFirst(); let result = deque.getFirst();
``` ```
### getLast ### getLast
...@@ -234,7 +235,7 @@ deque.insertFront(2); ...@@ -234,7 +235,7 @@ deque.insertFront(2);
deque.insertFront(4); deque.insertFront(4);
deque.insertFront(5); deque.insertFront(5);
deque.insertFront(4); deque.insertFront(4);
deque.getLast(); let result = deque.getLast();
``` ```
### [Symbol.iterator] ### [Symbol.iterator]
......
...@@ -53,7 +53,7 @@ isEmpty(): boolean ...@@ -53,7 +53,7 @@ isEmpty(): boolean
``` ```
const hashMap = new HashMap(); const hashMap = new HashMap();
hashMap.isEmpty(); let result = hashMap.isEmpty();
``` ```
...@@ -79,9 +79,9 @@ hasKey(key: K): boolean ...@@ -79,9 +79,9 @@ hasKey(key: K): boolean
``` ```
let hashMap = new HashMap(); let hashMap = new HashMap();
hashMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result = hashMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
hashMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result1 = hashMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
``` ```
...@@ -107,9 +107,9 @@ hasValue(value: V): boolean ...@@ -107,9 +107,9 @@ hasValue(value: V): boolean
``` ```
let hashMap = new HashMap(); let hashMap = new HashMap();
hashMap.hasValue(123); let result = hashMap.hasValue(123);
hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
hashMap.hasValue(123); let result1 = hashMap.hasValue(123);
``` ```
...@@ -137,7 +137,7 @@ get(key: K): V ...@@ -137,7 +137,7 @@ get(key: K): V
let hashMap = new HashMap(); let hashMap = new HashMap();
hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
hashMap.set("sdfs", 356); hashMap.set("sdfs", 356);
hashMap.get("sdfs"); let result = hashMap.get("sdfs");
``` ```
...@@ -145,13 +145,13 @@ hashMap.get("sdfs"); ...@@ -145,13 +145,13 @@ hashMap.get("sdfs");
setAll(map: HashMap<K, V>): void setAll(map: HashMap<K, V>): void
将一个HashMap中的所有元素组添加到另一个hashmap中。 将一个HashMap中的所有元素组添加到另一个hashMap中。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| map | HashMap<K, V> | 是 | 被添加元素的hashmap。 | | map | HashMap<K, V> | 是 | 被添加元素的hashMap。 |
**示例:** **示例:**
...@@ -181,13 +181,13 @@ set(key: K, value: V): Object ...@@ -181,13 +181,13 @@ set(key: K, value: V): Object
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| Object | 返回添加后的hashmap。 | | Object | 返回添加后的hashMap。 |
**示例:** **示例:**
``` ```
let hashMap = new HashMap(); let hashMap = new HashMap();
hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); let result = hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
``` ```
...@@ -195,13 +195,13 @@ hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); ...@@ -195,13 +195,13 @@ hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
remove(key: K): V remove(key: K): V
删除指定的元素 删除指定key所对应元素。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | K | 是 | 依据key指定删除的元素。 | | key | K | 是 | 指定key。 |
**返回值:** **返回值:**
...@@ -215,7 +215,7 @@ remove(key: K): V ...@@ -215,7 +215,7 @@ remove(key: K): V
let hashMap = new HashMap(); let hashMap = new HashMap();
hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); hashMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
hashMap.set("sdfs", 356); hashMap.set("sdfs", 356);
hashMap.remove("sdfs"); let result = hashMap.remove("sdfs");
``` ```
...@@ -239,7 +239,7 @@ hashMap.clear(); ...@@ -239,7 +239,7 @@ hashMap.clear();
keys(): IterableIterator&lt;K&gt; keys(): IterableIterator&lt;K&gt;
返回包含此映射中包含的键的新迭代器对象。 返回包含此映射中包含的键的新迭代器对象。
**返回值:** **返回值:**
...@@ -291,7 +291,7 @@ while(temp != undefined) { ...@@ -291,7 +291,7 @@ while(temp != undefined) {
### replace ### replace
replace(key: K, value: V): boolean replace(key: K, newValue: V): boolean
对HashMap中一组数据进行更新(替换)。 对HashMap中一组数据进行更新(替换)。
...@@ -300,7 +300,7 @@ replace(key: K, value: V): boolean ...@@ -300,7 +300,7 @@ replace(key: K, value: V): boolean
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | K | 是 | 依据key指定替换的元素。 | | key | K | 是 | 依据key指定替换的元素。 |
| value | V | 是 | 成员数据的新值。 | | newValue | V | 是 | 替换成员数据的值。 |
**返回值:** **返回值:**
...@@ -313,13 +313,13 @@ replace(key: K, value: V): boolean ...@@ -313,13 +313,13 @@ replace(key: K, value: V): boolean
``` ```
let hashMap = new HashMap(); let hashMap = new HashMap();
hashMap.set("sdfs", 123); hashMap.set("sdfs", 123);
hashMap.replace("sdfs", 357); let result = hashMap.replace("sdfs", 357);
``` ```
### forEach ### forEach
forEach(callbackfn: (value: V, key?: K, hashMap?: HashMap<K, V>) => void, thisArg?: Object): void forEach(callbackfn: (value: V, key?: K, map?: HashMap<K, V>) => void, thisArg?: Object): void
通过回调函数来遍历HashMap实例对象上的元素以及元素对应的下标。 通过回调函数来遍历HashMap实例对象上的元素以及元素对应的下标。
...@@ -335,7 +335,7 @@ callbackfn的参数说明: ...@@ -335,7 +335,7 @@ callbackfn的参数说明:
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | V | 是 | 当前遍历到的元素键值对的值。 | | value | V | 是 | 当前遍历到的元素键值对的值。 |
| key | K | 是 | 当前遍历到的元素键值对的键。 | | key | K | 是 | 当前遍历到的元素键值对的键。 |
| hashMap | HashMap<K, V> | 否 | 当前调用forEach方法的实例对象。 | | map | HashMap<K, V> | 否 | 当前调用forEach方法的实例对象。 |
**示例:** **示例:**
...@@ -353,7 +353,7 @@ hashMap.forEach((value, key) => { ...@@ -353,7 +353,7 @@ hashMap.forEach((value, key) => {
entries(): IterableIterator<[K, V]> entries(): IterableIterator<[K, V]>
返回包含此映射中包含的元素的新迭代器对象。 返回包含此映射中包含的键值对的新迭代器对象。
**返回值:** **返回值:**
......
...@@ -79,9 +79,9 @@ has(value: T): boolean ...@@ -79,9 +79,9 @@ has(value: T): boolean
``` ```
let hashSet = new HashSet(); let hashSet = new HashSet();
hashSet.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result = hashSet.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
hashSet.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result1 = hashSet.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
``` ```
...@@ -107,7 +107,7 @@ add(value: T): boolean ...@@ -107,7 +107,7 @@ add(value: T): boolean
``` ```
let hashSet = new HashSet(); let hashSet = new HashSet();
hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result = hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
``` ```
...@@ -135,7 +135,7 @@ remove(value: T): boolean ...@@ -135,7 +135,7 @@ remove(value: T): boolean
let hashSet = new HashSet(); let hashSet = new HashSet();
hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); hashSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
hashSet.add("sdfs"); hashSet.add("sdfs");
hashSet.remove("sdfs"); let result = hashSet.remove("sdfs");
``` ```
...@@ -184,7 +184,7 @@ while(temp != undefined) { ...@@ -184,7 +184,7 @@ while(temp != undefined) {
### forEach ### forEach
forEach(callbackfn: (value: T, key?: T, hashSet?: HashSet&lt;T&gt;) => void, thisArg?: Object): void forEach(callbackfn: (value: T, key?: T, set?: HashSet&lt;T&gt;) => void, thisArg?: Object): void
通过回调函数来遍历实例对象上的元素以及元素对应的下标。 通过回调函数来遍历实例对象上的元素以及元素对应的下标。
...@@ -200,7 +200,7 @@ callbackfn的参数说明: ...@@ -200,7 +200,7 @@ callbackfn的参数说明:
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 当前遍历到的元素键值对的值。 | | value | T | 是 | 当前遍历到的元素键值对的值。 |
| key | T | 否 | 当前遍历到的元素键值对的值(和value相同)。 | | key | T | 否 | 当前遍历到的元素键值对的值(和value相同)。 |
| hashSet | HashSet&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 | | set | HashSet&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 |
**示例:** **示例:**
...@@ -217,13 +217,13 @@ hashSet.forEach((value, key) => { ...@@ -217,13 +217,13 @@ hashSet.forEach((value, key) => {
### entries ### entries
entries(): IterableIterator<[T, T]> entries(): IterableIterator<[T, T]>
返回包含此映射中包含的元素的新迭代器对象。 返回包含此映射中包含的键值对的新迭代器对象。
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| IterableIterator<[T, T]> | 返回一个迭代器 | | IterableIterator<[T, T]> | 返回一个迭代器 |
**示例:** **示例:**
......
...@@ -13,17 +13,14 @@ import i18n from '@ohos.i18n'; ...@@ -13,17 +13,14 @@ import i18n from '@ohos.i18n';
``` ```
## 权限
## i18n.getDisplayLanguage ## i18n.getDisplayLanguage
getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string
获取指定语言的本地化显示文本。 获取指定语言的本地化显示文本。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -49,6 +46,8 @@ getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): stri ...@@ -49,6 +46,8 @@ getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): stri
获取指定国家的本地化显示文本。 获取指定国家的本地化显示文本。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -74,6 +73,8 @@ isRTL(locale: string): boolean ...@@ -74,6 +73,8 @@ isRTL(locale: string): boolean
获取是否为从右至左显示语言。 获取是否为从右至左显示语言。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 说明 | | 参数名 | 类型 | 说明 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
...@@ -97,6 +98,8 @@ getSystemLanguage(): string ...@@ -97,6 +98,8 @@ getSystemLanguage(): string
获取系统语言。 获取系统语言。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -114,6 +117,8 @@ getSystemRegion(): string ...@@ -114,6 +117,8 @@ getSystemRegion(): string
获取系统地区。 获取系统地区。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -131,6 +136,8 @@ getSystemLocale(): string ...@@ -131,6 +136,8 @@ getSystemLocale(): string
获取系统区域。 获取系统区域。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -148,6 +155,8 @@ getCalendar(locale: string, type? : string): Calendar ...@@ -148,6 +155,8 @@ getCalendar(locale: string, type? : string): Calendar
获取日历对象。 获取日历对象。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -174,6 +183,8 @@ setTime(date: Date): void ...@@ -174,6 +183,8 @@ setTime(date: Date): void
设置日历对象内部的时间日期。 设置日历对象内部的时间日期。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -193,6 +204,8 @@ setTime(time: number): void ...@@ -193,6 +204,8 @@ setTime(time: number): void
设置日历对象内部的时间日期, time为从1970.1.1 00:00:00 GMT逝去的毫秒数。 设置日历对象内部的时间日期, time为从1970.1.1 00:00:00 GMT逝去的毫秒数。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -211,6 +224,8 @@ set(year: number, month: number, date:number, hour?: number, minute?: number, se ...@@ -211,6 +224,8 @@ set(year: number, month: number, date:number, hour?: number, minute?: number, se
设置日历对象的年、月、日、时、分、秒。 设置日历对象的年、月、日、时、分、秒。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -234,6 +249,8 @@ setTimeZone(timezone: string): void ...@@ -234,6 +249,8 @@ setTimeZone(timezone: string): void
设置日历对象的时区。 设置日历对象的时区。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -252,6 +269,8 @@ getTimeZone(): string ...@@ -252,6 +269,8 @@ getTimeZone(): string
获取日历对象的时区。 获取日历对象的时区。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -271,6 +290,8 @@ getFirstDayOfWeek(): number ...@@ -271,6 +290,8 @@ getFirstDayOfWeek(): number
获取日历对象的一周起始日。 获取日历对象的一周起始日。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -289,6 +310,8 @@ setFirstDayOfWeek(value: number): void ...@@ -289,6 +310,8 @@ setFirstDayOfWeek(value: number): void
设置每一周的起始日。 设置每一周的起始日。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -307,6 +330,8 @@ getMinimalDaysInFirstWeek(): number ...@@ -307,6 +330,8 @@ getMinimalDaysInFirstWeek(): number
获取一年中第一周的最小天数。 获取一年中第一周的最小天数。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -325,6 +350,8 @@ setMinimalDaysInFirstWeek(value: number): void ...@@ -325,6 +350,8 @@ setMinimalDaysInFirstWeek(value: number): void
设置一年中第一周的最小天数。 设置一年中第一周的最小天数。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -343,6 +370,8 @@ get(field: string): number ...@@ -343,6 +370,8 @@ get(field: string): number
获取日历对象中与field相关联的值。 获取日历对象中与field相关联的值。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -367,6 +396,8 @@ getDisplayName(locale: string): string ...@@ -367,6 +396,8 @@ getDisplayName(locale: string): string
获取日历对象在locale所指定的区域的名字。 获取日历对象在locale所指定的区域的名字。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -390,6 +421,8 @@ isWeekend(date?: Date): boolean ...@@ -390,6 +421,8 @@ isWeekend(date?: Date): boolean
判断给定的日期是否在日历中是周末。 判断给定的日期是否在日历中是周末。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -419,6 +452,8 @@ constructor(country: string, options?: PhoneNumberFormatOptions) ...@@ -419,6 +452,8 @@ constructor(country: string, options?: PhoneNumberFormatOptions)
创建电话号码格式化对象。 创建电话号码格式化对象。
**系统能力**:SystemCapability.Global.I18n
参数: 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -437,6 +472,8 @@ isValidNumber(number: string): boolean ...@@ -437,6 +472,8 @@ isValidNumber(number: string): boolean
判断传入的电话号码格式是否正确。 判断传入的电话号码格式是否正确。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -460,6 +497,8 @@ format(number: string): string ...@@ -460,6 +497,8 @@ format(number: string): string
对电话号码进行格式化。 对电话号码进行格式化。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -484,7 +523,7 @@ format(number: string): string ...@@ -484,7 +523,7 @@ format(number: string): string
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| type | string | 是 | 是 | 表示对电话号码格式化的类型,取值范围:"E164",&nbsp;"INTERNATIONAL",&nbsp;"NATIONAL",&nbsp;"RFC3966"。 | | type | string | 是 | 是 | 表示对电话号码格式化的类型,取值范围:"E164",&nbsp;"INTERNATIONAL",&nbsp;"NATIONAL",&nbsp;"RFC3966"。<br/>**系统能力**:SystemCapability.Global.I18n |
## UnitInfo<sup>8+</sup> ## UnitInfo<sup>8+</sup>
...@@ -495,7 +534,7 @@ format(number: string): string ...@@ -495,7 +534,7 @@ format(number: string): string
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| unit | string | 是 | 是 | 单位的名称,如:"meter",&nbsp;"inch",&nbsp;"cup"等。 | | unit | string | 是 | 是 | 单位的名称,如:"meter",&nbsp;"inch",&nbsp;"cup"等。 |
| measureSystem | string | 是 | 是 | 单位的度量体系,取值包括:"SI",&nbsp;"US",&nbsp;"UK"。 | | measureSystem | string | 是 | 是 | 单位的度量体系,取值包括:"SI",&nbsp;"US",&nbsp;"UK"。<br/>**系统能力**:SystemCapability.Global.I18n |
## Util<sup>8+</sup> ## Util<sup>8+</sup>
...@@ -507,6 +546,8 @@ unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: string, ...@@ -507,6 +546,8 @@ unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: string,
将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。 将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -536,6 +577,8 @@ getInstance(): IndexUtil ...@@ -536,6 +577,8 @@ getInstance(): IndexUtil
创建并返回IndexUtil对象。 创建并返回IndexUtil对象。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -558,6 +601,8 @@ getIndexList(): Array&lt;string&gt; ...@@ -558,6 +601,8 @@ getIndexList(): Array&lt;string&gt;
获取当前locale对应的索引列表。 获取当前locale对应的索引列表。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -576,6 +621,8 @@ addLocale(locale: string) ...@@ -576,6 +621,8 @@ addLocale(locale: string)
将新的locale对应的索引加入当前索引列表。 将新的locale对应的索引加入当前索引列表。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -594,6 +641,8 @@ getIndex(text: string): string ...@@ -594,6 +641,8 @@ getIndex(text: string): string
获取text对应的索引。 获取text对应的索引。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -620,6 +669,8 @@ isDigit(char: string): boolean ...@@ -620,6 +669,8 @@ isDigit(char: string): boolean
判断字符串char是否是数字。 判断字符串char是否是数字。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -642,6 +693,8 @@ isSpaceChar(char: string): boolean ...@@ -642,6 +693,8 @@ isSpaceChar(char: string): boolean
判断字符串char是否是空格符。 判断字符串char是否是空格符。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -664,6 +717,8 @@ isWhitespace(char: string): boolean ...@@ -664,6 +717,8 @@ isWhitespace(char: string): boolean
判断字符串char是否是空白符。 判断字符串char是否是空白符。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -686,6 +741,8 @@ isRTL(char: string): boolean ...@@ -686,6 +741,8 @@ isRTL(char: string): boolean
判断字符串char是否是从右到左语言的字符。 判断字符串char是否是从右到左语言的字符。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -708,6 +765,8 @@ isIdeograph(char: string): boolean ...@@ -708,6 +765,8 @@ isIdeograph(char: string): boolean
判断字符串char是否是表意文字。 判断字符串char是否是表意文字。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -730,6 +789,8 @@ isLetter(char: string): boolean ...@@ -730,6 +789,8 @@ isLetter(char: string): boolean
判断字符串char是否是字母。 判断字符串char是否是字母。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -752,6 +813,8 @@ isLowerCase(char: string): boolean ...@@ -752,6 +813,8 @@ isLowerCase(char: string): boolean
判断字符串char是否是小写字母。 判断字符串char是否是小写字母。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -774,6 +837,8 @@ isUpperCase(char: string): boolean ...@@ -774,6 +837,8 @@ isUpperCase(char: string): boolean
判断字符串char是否是大写字母。 判断字符串char是否是大写字母。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -796,6 +861,8 @@ getType(char: string): string ...@@ -796,6 +861,8 @@ getType(char: string): string
获取输入字符串的一般类别值。 获取输入字符串的一般类别值。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -818,6 +885,8 @@ getLineInstance(locale: string): BreakIterator ...@@ -818,6 +885,8 @@ getLineInstance(locale: string): BreakIterator
获取一个用于断句的[BreakIterator](#breakiterator8)对象。 获取一个用于断句的[BreakIterator](#breakiterator8)对象。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -843,6 +912,8 @@ setLineBreakText(text: string): void ...@@ -843,6 +912,8 @@ setLineBreakText(text: string): void
设置[BreakIterator](#breakiterator8)要处理的文本。 设置[BreakIterator](#breakiterator8)要处理的文本。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -861,6 +932,8 @@ getLineBreakText(): string ...@@ -861,6 +932,8 @@ getLineBreakText(): string
获取[BreakIterator](#breakiterator8)当前处理的文本。 获取[BreakIterator](#breakiterator8)当前处理的文本。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -880,6 +953,8 @@ current(): number ...@@ -880,6 +953,8 @@ current(): number
获取[BreakIterator](#breakiterator8)对象在当前处理的文本中的位置。 获取[BreakIterator](#breakiterator8)对象在当前处理的文本中的位置。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -899,6 +974,8 @@ first(): number ...@@ -899,6 +974,8 @@ first(): number
[BreakIterator](#breakiterator8)对象设置到第一个可断句的分割点。第一个分割点总是被处理的文本的起始位置。 [BreakIterator](#breakiterator8)对象设置到第一个可断句的分割点。第一个分割点总是被处理的文本的起始位置。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -918,6 +995,8 @@ last(): number ...@@ -918,6 +995,8 @@ last(): number
[BreakIterator](#breakiterator8)对象的位置设置到最后一个可断句的分割点。最后一个分割点总是被处理文本末尾的下一个位置。 [BreakIterator](#breakiterator8)对象的位置设置到最后一个可断句的分割点。最后一个分割点总是被处理文本末尾的下一个位置。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -937,6 +1016,8 @@ next(index?: number): number ...@@ -937,6 +1016,8 @@ next(index?: number): number
如果index给出,并且index是一个正数将[BreakIterator](#breakiterator8)向后移动number个可断句的分割点,如果n是一个负数,向前移动相应个分割点。若index没有给出,则相当于index = 1。 如果index给出,并且index是一个正数将[BreakIterator](#breakiterator8)向后移动number个可断句的分割点,如果n是一个负数,向前移动相应个分割点。若index没有给出,则相当于index = 1。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -963,6 +1044,8 @@ previous(): number ...@@ -963,6 +1044,8 @@ previous(): number
[BreakIterator](#breakiterator8)移动到前一个分割点处。 [BreakIterator](#breakiterator8)移动到前一个分割点处。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -984,6 +1067,8 @@ following(offset: number): number ...@@ -984,6 +1067,8 @@ following(offset: number): number
[BreakIterator](#breakiterator8)设置到由offset指定的位置的后面一个分割点。返回移动后[BreakIterator](#breakiterator8)的位置。 [BreakIterator](#breakiterator8)设置到由offset指定的位置的后面一个分割点。返回移动后[BreakIterator](#breakiterator8)的位置。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -1010,6 +1095,8 @@ isBoundary(offset: number): boolean ...@@ -1010,6 +1095,8 @@ isBoundary(offset: number): boolean
如果offset所指定的文本位置是一个分割点,那么返回true,否则返回false。如果返回true, 将[BreakIterator](#breakiterator8)对象设置到offset所指定的位置, 否则相当于调用[following](#following8)(offset) 如果offset所指定的文本位置是一个分割点,那么返回true,否则返回false。如果返回true, 将[BreakIterator](#breakiterator8)对象设置到offset所指定的位置, 否则相当于调用[following](#following8)(offset)
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -1029,12 +1116,14 @@ isBoundary(offset: number): boolean ...@@ -1029,12 +1116,14 @@ isBoundary(offset: number): boolean
``` ```
## i18n.is24HourClock ## i18n.is24HourClock<sup>8+</sup>
is24HourClock(): boolean is24HourClock(): boolean
判断系统时间是否为24小时制。 判断系统时间是否为24小时制。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -1046,12 +1135,14 @@ is24HourClock(): boolean ...@@ -1046,12 +1135,14 @@ is24HourClock(): boolean
``` ```
## i18n.set24HourClock ## i18n.set24HourClock<sup>8+</sup>
set24HourClock(option: boolean): boolean set24HourClock(option: boolean): boolean
修改系统时间的24小时制设置。 修改系统时间的24小时制设置。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -1069,12 +1160,14 @@ set24HourClock(option: boolean): boolean ...@@ -1069,12 +1160,14 @@ set24HourClock(option: boolean): boolean
``` ```
## i18n.addPreferredLanguage ## i18n.addPreferredLanguage<sup>8+</sup>
addPreferredLanguage(language: string, index?: number): boolean addPreferredLanguage(language: string, index?: number): boolean
在系统偏好语言列表中的指定位置添加偏好语言。 在系统偏好语言列表中的指定位置添加偏好语言。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -1095,12 +1188,14 @@ addPreferredLanguage(language: string, index?: number): boolean ...@@ -1095,12 +1188,14 @@ addPreferredLanguage(language: string, index?: number): boolean
``` ```
## i18n.removeDisplayLanguage ## i18n.removeDisplayLanguage<sup>8+</sup>
removeDisplayLanguage(index: number): boolean removeDisplayLanguage(index: number): boolean
删除系统偏好语言列表中指定位置的偏好语言。 删除系统偏好语言列表中指定位置的偏好语言。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -1119,12 +1214,14 @@ removeDisplayLanguage(index: number): boolean ...@@ -1119,12 +1214,14 @@ removeDisplayLanguage(index: number): boolean
``` ```
## i18n.getPreferredLanguageList ## i18n.getPreferredLanguageList<sup>8+</sup>
getPreferredLanguageList(): Array<string> getPreferredLanguageList(): Array<string>
获取系统偏好语言列表。 获取系统偏好语言列表。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -1136,12 +1233,14 @@ getPreferredLanguageList(): Array<string> ...@@ -1136,12 +1233,14 @@ getPreferredLanguageList(): Array<string>
``` ```
## i18n.getFirstPreferredLanguage ## i18n.getFirstPreferredLanguage<sup>8+</sup>
getFirstPreferredLanguage(): string getFirstPreferredLanguage(): string
获取与Hap资源最佳匹配的偏好语言。 获取与Hap资源最佳匹配的偏好语言。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
......
...@@ -13,11 +13,6 @@ import Intl from '@ohos.intl'; ...@@ -13,11 +13,6 @@ import Intl from '@ohos.intl';
``` ```
## 权限列表
## Locale ## Locale
...@@ -25,16 +20,16 @@ import Intl from '@ohos.intl'; ...@@ -25,16 +20,16 @@ import Intl from '@ohos.intl';
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| language | string | 是 | 否 | 与区域设置关联的语,&nbsp;如:zh。 | | language | string | 是 | 否 | 与区域设置关联的语,&nbsp;如:zh。<br/>**系统能力**:SystemCapability.Global.I18n |
| script | string | 是 | 否 | 语言的书写方式,如:Hans。 | | script | string | 是 | 否 | 语言的书写方式,如:Hans。<br/>**系统能力**:SystemCapability.Global.I18n |
| region | string | 是 | 否 | 与区域设置相关的地区,如:CN。 | | region | string | 是 | 否 | 与区域设置相关的地区,如:CN。<br/>**系统能力**:SystemCapability.Global.I18n |
| baseName | string | 是 | 否 | Locale的基本核心信息(由语言脚本与地区组成),如:zh-Hans-CN。 | | baseName | string | 是 | 否 | Locale的基本核心信息(由语言脚本与地区组成),如:zh-Hans-CN。<br/>**系统能力**:SystemCapability.Global.I18n |
| caseFirst | string | 是 | 否 | 区域的整理规则是否考虑大小写,取值包括:"upper",&nbsp;"lower",&nbsp;"false"。 | | caseFirst | string | 是 | 否 | 区域的整理规则是否考虑大小写,取值包括:"upper",&nbsp;"lower",&nbsp;"false"。<br/>**系统能力**:SystemCapability.Global.I18n |
| calendar | string | 是 | 否 | 区域的日历信息,取值包括:"buddhist",&nbsp;"chinese",&nbsp;"coptic","dangi",&nbsp;"ethioaa",&nbsp;"ethiopic",&nbsp;"gregory",&nbsp;"hebrew",&nbsp;"indian",&nbsp;"islamic",&nbsp;"islamic-umalqura",&nbsp;"islamic-tbla",&nbsp;"islamic-civil",&nbsp;"islamic-rgsa",&nbsp;"iso8601",&nbsp;"japanese",&nbsp;"persian",&nbsp;"roc",&nbsp;"islamicc"。 | | calendar | string | 是 | 否 | 区域的日历信息,取值包括:"buddhist",&nbsp;"chinese",&nbsp;"coptic","dangi",&nbsp;"ethioaa",&nbsp;"ethiopic",&nbsp;"gregory",&nbsp;"hebrew",&nbsp;"indian",&nbsp;"islamic",&nbsp;"islamic-umalqura",&nbsp;"islamic-tbla",&nbsp;"islamic-civil",&nbsp;"islamic-rgsa",&nbsp;"iso8601",&nbsp;"japanese",&nbsp;"persian",&nbsp;"roc",&nbsp;"islamicc"。<br/>**系统能力**:SystemCapability.Global.I18n |
| collation | string | 是 | 否 | 区域的排序规则,取值包括:"big5han",&nbsp;"compat",&nbsp;"dict",&nbsp;"direct",&nbsp;"ducet",&nbsp;"eor",&nbsp;"gb2312",&nbsp;"phonebk",&nbsp;"phonetic",&nbsp;"pinyin",&nbsp;"reformed",&nbsp;"searchjl",&nbsp;"stroke",&nbsp;"trad",&nbsp;"unihan",&nbsp;"zhuyin"。 | | collation | string | 是 | 否 | 区域的排序规则,取值包括:"big5han",&nbsp;"compat",&nbsp;"dict",&nbsp;"direct",&nbsp;"ducet",&nbsp;"eor",&nbsp;"gb2312",&nbsp;"phonebk",&nbsp;"phonetic",&nbsp;"pinyin",&nbsp;"reformed",&nbsp;"searchjl",&nbsp;"stroke",&nbsp;"trad",&nbsp;"unihan",&nbsp;"zhuyin"。<br/>**系统能力**:SystemCapability.Global.I18n |
| hourCycle | string | 是 | 否 | 区域的时制信息,取值包括:"h12",&nbsp;"h23",&nbsp;"h11",&nbsp;"h24"。 | | hourCycle | string | 是 | 否 | 区域的时制信息,取值包括:"h12",&nbsp;"h23",&nbsp;"h11",&nbsp;"h24"。<br/>**系统能力**:SystemCapability.Global.I18n |
| numberingSystem | string | 是 | 否 | 区域使用的数字系统,取值包括:"adlm",&nbsp;"ahom",&nbsp;"arab",&nbsp;"arabext",&nbsp;"bali",&nbsp;"beng",&nbsp;"bhks",&nbsp;"brah",&nbsp;"cakm",&nbsp;"cham",&nbsp;"deva",&nbsp;"diak",&nbsp;"fullwide",&nbsp;"gong",&nbsp;"gonm",&nbsp;"gujr",&nbsp;"guru",&nbsp;"hanidec",&nbsp;"hmng",&nbsp;"hmnp",&nbsp;"java",&nbsp;"kali",&nbsp;"khmr",&nbsp;"knda",&nbsp;"lana",&nbsp;"lanatham",&nbsp;"laoo",&nbsp;"latn",&nbsp;"lepc",&nbsp;"limb",&nbsp;"mathbold",&nbsp;"mathdbl",&nbsp;"mathmono",&nbsp;"mathsanb",&nbsp;"mathsans",&nbsp;"mlym",&nbsp;"modi",&nbsp;"mong",&nbsp;"mroo",&nbsp;"mtei",&nbsp;"mymr",&nbsp;"mymrshan",&nbsp;"mymrtlng",&nbsp;"newa",&nbsp;"nkoo",&nbsp;"olck",&nbsp;"orya",&nbsp;"osma",&nbsp;"rohg",&nbsp;"saur",&nbsp;"segment",&nbsp;"shrd",&nbsp;"sind",&nbsp;"sinh",&nbsp;"sora",&nbsp;"sund",&nbsp;"takr",&nbsp;"talu",&nbsp;"tamldec",&nbsp;"telu",&nbsp;"thai",&nbsp;"tibt",&nbsp;"tirh",&nbsp;"vaii",&nbsp;"wara",&nbsp;"wcho"。 | | numberingSystem | string | 是 | 否 | 区域使用的数字系统,取值包括:"adlm",&nbsp;"ahom",&nbsp;"arab",&nbsp;"arabext",&nbsp;"bali",&nbsp;"beng",&nbsp;"bhks",&nbsp;"brah",&nbsp;"cakm",&nbsp;"cham",&nbsp;"deva",&nbsp;"diak",&nbsp;"fullwide",&nbsp;"gong",&nbsp;"gonm",&nbsp;"gujr",&nbsp;"guru",&nbsp;"hanidec",&nbsp;"hmng",&nbsp;"hmnp",&nbsp;"java",&nbsp;"kali",&nbsp;"khmr",&nbsp;"knda",&nbsp;"lana",&nbsp;"lanatham",&nbsp;"laoo",&nbsp;"latn",&nbsp;"lepc",&nbsp;"limb",&nbsp;"mathbold",&nbsp;"mathdbl",&nbsp;"mathmono",&nbsp;"mathsanb",&nbsp;"mathsans",&nbsp;"mlym",&nbsp;"modi",&nbsp;"mong",&nbsp;"mroo",&nbsp;"mtei",&nbsp;"mymr",&nbsp;"mymrshan",&nbsp;"mymrtlng",&nbsp;"newa",&nbsp;"nkoo",&nbsp;"olck",&nbsp;"orya",&nbsp;"osma",&nbsp;"rohg",&nbsp;"saur",&nbsp;"segment",&nbsp;"shrd",&nbsp;"sind",&nbsp;"sinh",&nbsp;"sora",&nbsp;"sund",&nbsp;"takr",&nbsp;"talu",&nbsp;"tamldec",&nbsp;"telu",&nbsp;"thai",&nbsp;"tibt",&nbsp;"tirh",&nbsp;"vaii",&nbsp;"wara",&nbsp;"wcho"。<br/>**系统能力**:SystemCapability.Global.I18n |
| numeric | boolean | 是 | 否 | 是否对数字字符具有特殊的排序规则处理。 | | numeric | boolean | 是 | 否 | 是否对数字字符具有特殊的排序规则处理。<br/>**系统能力**:SystemCapability.Global.I18n |
### constructor ### constructor
...@@ -43,6 +38,8 @@ constructor(locale: string, options?: options) ...@@ -43,6 +38,8 @@ constructor(locale: string, options?: options)
创建区域对象 创建区域对象
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -61,6 +58,8 @@ toString(): string ...@@ -61,6 +58,8 @@ toString(): string
将区域信息转换为字符串 将区域信息转换为字符串
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -79,6 +78,8 @@ maximize(): Locale ...@@ -79,6 +78,8 @@ maximize(): Locale
最大化区域信息,若缺少脚本与地区信息,则补齐。 最大化区域信息,若缺少脚本与地区信息,则补齐。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -97,6 +98,8 @@ minimize(): Locale ...@@ -97,6 +98,8 @@ minimize(): Locale
最小化区域信息,若包含脚本与地区信息,则去除。 最小化区域信息,若包含脚本与地区信息,则去除。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -118,6 +121,8 @@ constructor(locale: string, options?: DateTimeOptions) ...@@ -118,6 +121,8 @@ constructor(locale: string, options?: DateTimeOptions)
创建时间日期格式化对象。 创建时间日期格式化对象。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -136,6 +141,8 @@ constructor(locales: Array&lt;string&gt;, options?: DateTimeOptions) ...@@ -136,6 +141,8 @@ constructor(locales: Array&lt;string&gt;, options?: DateTimeOptions)
创建时间日期格式化对象。 创建时间日期格式化对象。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -154,6 +161,8 @@ format(date: Date): string ...@@ -154,6 +161,8 @@ format(date: Date): string
格式化时间日期字符串。 格式化时间日期字符串。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -178,6 +187,8 @@ formatRange(fromDate: Date, toDate: Date): string ...@@ -178,6 +187,8 @@ formatRange(fromDate: Date, toDate: Date): string
格式化时间日期段字符串。 格式化时间日期段字符串。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -204,6 +215,8 @@ resolvedOptions(): DateTimeOptions ...@@ -204,6 +215,8 @@ resolvedOptions(): DateTimeOptions
获取DateTimeFormat对象的格式化选项。 获取DateTimeFormat对象的格式化选项。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -222,25 +235,25 @@ resolvedOptions(): DateTimeOptions ...@@ -222,25 +235,25 @@ resolvedOptions(): DateTimeOptions
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| locale | string | 是 | 否 | 区域参数,&nbsp;如:zh-Hans-CN。 | | locale | string | 是 | 否 | 区域参数,&nbsp;如:zh-Hans-CN。<br/>**系统能力**:SystemCapability.Global.I18n |
| dateStyle | string | 是 | 是 | 日期显示格式,取值包括:"long",&nbsp;"short",&nbsp;"medium",&nbsp;"full"。 | | dateStyle | string | 是 | 是 | 日期显示格式,取值包括:"long",&nbsp;"short",&nbsp;"medium",&nbsp;"full"。<br/>**系统能力**:SystemCapability.Global.I18n |
| timeStyle | string | 是 | 是 | 时间显示格式,取值包括:"long",&nbsp;"short",&nbsp;"medium",&nbsp;"full"。 | | timeStyle | string | 是 | 是 | 时间显示格式,取值包括:"long",&nbsp;"short",&nbsp;"medium",&nbsp;"full"。<br/>**系统能力**:SystemCapability.Global.I18n |
| hourCycle | string | 是 | 是 | 时制格式,取值包括:"h11",&nbsp;"h12",&nbsp;"h23",&nbsp;"h24"。 | | hourCycle | string | 是 | 是 | 时制格式,取值包括:"h11",&nbsp;"h12",&nbsp;"h23",&nbsp;"h24"。<br/>**系统能力**:SystemCapability.Global.I18n |
| timeZone | string | 是 | 是 | 使用的时区(合法的IANA时区ID)。 | | timeZone | string | 是 | 是 | 使用的时区(合法的IANA时区ID)。<br/>**系统能力**:SystemCapability.Global.I18n |
| numberingSystem | string | 是 | 是 | 数字系统,取值包括:"adlm",&nbsp;"ahom",&nbsp;"arab",&nbsp;"arabext",&nbsp;"bali",&nbsp;"beng",&nbsp;"bhks",&nbsp;"brah",&nbsp;"cakm",&nbsp;"cham",&nbsp;"deva",&nbsp;"diak",&nbsp;"fullwide",&nbsp;"gong",&nbsp;"gonm",&nbsp;"gujr",&nbsp;"guru",&nbsp;"hanidec",&nbsp;"hmng",&nbsp;"hmnp",&nbsp;"java",&nbsp;"kali",&nbsp;"khmr",&nbsp;"knda",&nbsp;"lana",&nbsp;"lanatham",&nbsp;"laoo",&nbsp;"latn",&nbsp;"lepc",&nbsp;"limb",&nbsp;"mathbold",&nbsp;"mathdbl",&nbsp;"mathmono",&nbsp;"mathsanb",&nbsp;"mathsans",&nbsp;"mlym",&nbsp;"modi",&nbsp;"mong",&nbsp;"mroo",&nbsp;"mtei",&nbsp;"mymr",&nbsp;"mymrshan",&nbsp;"mymrtlng",&nbsp;"newa",&nbsp;"nkoo",&nbsp;"olck",&nbsp;"orya",&nbsp;"osma",&nbsp;"rohg",&nbsp;"saur",&nbsp;"segment",&nbsp;"shrd",&nbsp;"sind",&nbsp;"sinh",&nbsp;"sora",&nbsp;"sund",&nbsp;"takr",&nbsp;"talu",&nbsp;"tamldec",&nbsp;"telu",&nbsp;"thai",&nbsp;"tibt",&nbsp;"tirh",&nbsp;"vaii",&nbsp;"wara",&nbsp;"wcho"。 | | numberingSystem | string | 是 | 是 | 数字系统,取值包括:"adlm",&nbsp;"ahom",&nbsp;"arab",&nbsp;"arabext",&nbsp;"bali",&nbsp;"beng",&nbsp;"bhks",&nbsp;"brah",&nbsp;"cakm",&nbsp;"cham",&nbsp;"deva",&nbsp;"diak",&nbsp;"fullwide",&nbsp;"gong",&nbsp;"gonm",&nbsp;"gujr",&nbsp;"guru",&nbsp;"hanidec",&nbsp;"hmng",&nbsp;"hmnp",&nbsp;"java",&nbsp;"kali",&nbsp;"khmr",&nbsp;"knda",&nbsp;"lana",&nbsp;"lanatham",&nbsp;"laoo",&nbsp;"latn",&nbsp;"lepc",&nbsp;"limb",&nbsp;"mathbold",&nbsp;"mathdbl",&nbsp;"mathmono",&nbsp;"mathsanb",&nbsp;"mathsans",&nbsp;"mlym",&nbsp;"modi",&nbsp;"mong",&nbsp;"mroo",&nbsp;"mtei",&nbsp;"mymr",&nbsp;"mymrshan",&nbsp;"mymrtlng",&nbsp;"newa",&nbsp;"nkoo",&nbsp;"olck",&nbsp;"orya",&nbsp;"osma",&nbsp;"rohg",&nbsp;"saur",&nbsp;"segment",&nbsp;"shrd",&nbsp;"sind",&nbsp;"sinh",&nbsp;"sora",&nbsp;"sund",&nbsp;"takr",&nbsp;"talu",&nbsp;"tamldec",&nbsp;"telu",&nbsp;"thai",&nbsp;"tibt",&nbsp;"tirh",&nbsp;"vaii",&nbsp;"wara",&nbsp;"wcho"。<br/>**系统能力**:SystemCapability.Global.I18n |
| hour12 | boolean | 是 | 是 | 是否使用12小时制。 | | hour12 | boolean | 是 | 是 | 是否使用12小时制。<br/>**系统能力**:SystemCapability.Global.I18n |
| weekday | string | 是 | 是 | 工作日的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 | | weekday | string | 是 | 是 | 工作日的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。<br/>**系统能力**:SystemCapability.Global.I18n |
| era | string | 是 | 是 | 时代的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 | | era | string | 是 | 是 | 时代的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。<br/>**系统能力**:SystemCapability.Global.I18n |
| year | string | 是 | 是 | 年份的显示格式,取值包括:"numeric",&nbsp;"2-digit"。 | | year | string | 是 | 是 | 年份的显示格式,取值包括:"numeric",&nbsp;"2-digit"。<br/>**系统能力**:SystemCapability.Global.I18n |
| month | string | 是 | 是 | 月份的显示格式,取值包括:"numeric",&nbsp;"2-digit",&nbsp;"long",&nbsp;"short",&nbsp;"narrow"。 | | month | string | 是 | 是 | 月份的显示格式,取值包括:"numeric",&nbsp;"2-digit",&nbsp;"long",&nbsp;"short",&nbsp;"narrow"。<br/>**系统能力**:SystemCapability.Global.I18n |
| day | string | 是 | 是 | 日期的显示格式,取值包括:"numeric",&nbsp;"2-digit"。 | | day | string | 是 | 是 | 日期的显示格式,取值包括:"numeric",&nbsp;"2-digit"。<br/>**系统能力**:SystemCapability.Global.I18n |
| hour | string | 是 | 是 | 小时的显示格式,取值包括:"numeric",&nbsp;"2-digit"。 | | hour | string | 是 | 是 | 小时的显示格式,取值包括:"numeric",&nbsp;"2-digit"。<br/>**系统能力**:SystemCapability.Global.I18n |
| minute | string | 是 | 是 | 分钟的显示格式,取值包括:"numeric",&nbsp;"2-digit"。 | | minute | string | 是 | 是 | 分钟的显示格式,取值包括:"numeric",&nbsp;"2-digit"。<br/>**系统能力**:SystemCapability.Global.I18n |
| second | string | 是 | 是 | 秒钟的显示格式,取值包括:"numeric",&nbsp;"2-digit"。 | | second | string | 是 | 是 | 秒钟的显示格式,取值包括:"numeric",&nbsp;"2-digit"。<br/>**系统能力**:SystemCapability.Global.I18n |
| timeZoneName | string | 是 | 是 | 时区名称的本地化表示。 | | timeZoneName | string | 是 | 是 | 时区名称的本地化表示。<br/>**系统能力**:SystemCapability.Global.I18n |
| dayPeriod | string | 是 | 是 | 时段的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 | | dayPeriod | string | 是 | 是 | 时段的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。<br/>**系统能力**:SystemCapability.Global.I18n |
| localeMatcher | string | 是 | 是 | 要使用的区域匹配算法,取值包括:"lookup",&nbsp;"best&nbsp;fit"。 | | localeMatcher | string | 是 | 是 | 要使用的区域匹配算法,取值包括:"lookup",&nbsp;"best&nbsp;fit"。<br/>**系统能力**:SystemCapability.Global.I18n |
| formatMatcher | string | 是 | 是 | 要使用的格式匹配算法,取值包括:"basic",&nbsp;"best&nbsp;fit"。 | | formatMatcher | string | 是 | 是 | 要使用的格式匹配算法,取值包括:"basic",&nbsp;"best&nbsp;fit"。<br/>**系统能力**:SystemCapability.Global.I18n |
## NumberFormat ## NumberFormat
...@@ -252,6 +265,8 @@ constructor(locale: string, options?: NumberOptions) ...@@ -252,6 +265,8 @@ constructor(locale: string, options?: NumberOptions)
创建数字格式化对象。 创建数字格式化对象。
**系统能力**:SystemCapability.Global.I18n
参数: 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -270,6 +285,8 @@ constructor(locales: Array&lt;string&gt;, options?: NumberOptions) ...@@ -270,6 +285,8 @@ constructor(locales: Array&lt;string&gt;, options?: NumberOptions)
创建数字格式化对象。 创建数字格式化对象。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -288,6 +305,8 @@ format(number: number): string; ...@@ -288,6 +305,8 @@ format(number: number): string;
格式化数字字符串。 格式化数字字符串。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -312,6 +331,8 @@ resolvedOptions(): NumberOptions ...@@ -312,6 +331,8 @@ resolvedOptions(): NumberOptions
获取NumberFormat 对象的格式化选项。 获取NumberFormat 对象的格式化选项。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -331,25 +352,25 @@ resolvedOptions(): NumberOptions ...@@ -331,25 +352,25 @@ resolvedOptions(): NumberOptions
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| locale | string | 是 | 否 | 区域参数,&nbsp;如:"zh-Hans-CN"。 | | locale | string | 是 | 否 | 区域参数,&nbsp;如:"zh-Hans-CN"。<br/>**系统能力**:SystemCapability.Global.I18n |
| currency | string | 是 | 是 | 货币单位,&nbsp;如:"EUR","CNY","USD"等。 | | currency | string | 是 | 是 | 货币单位,&nbsp;如:"EUR","CNY","USD"等。<br/>**系统能力**:SystemCapability.Global.I18n |
| currencySign | string | 是 | 是 | 货币单位的符号显示,取值包括:&nbsp;"symbol","narrowSymbol","code","name"&nbsp;。 | | currencySign | string | 是 | 是 | 货币单位的符号显示,取值包括:&nbsp;"symbol","narrowSymbol","code","name"&nbsp;<br/>**系统能力**:SystemCapability.Global.I18n |
| currencyDisplay | string | 是 | 是 | 货币的显示方式,取值包括:"symbol",&nbsp;"narrowSymbol",&nbsp;"code",&nbsp;"name"。 | | currencyDisplay | string | 是 | 是 | 货币的显示方式,取值包括:"symbol",&nbsp;"narrowSymbol",&nbsp;"code",&nbsp;"name"。<br/>**系统能力**:SystemCapability.Global.I18n |
| unit | string | 是 | 是 | 单位名称,如:"meter","inch",“hectare”等。 | | unit | string | 是 | 是 | 单位名称,如:"meter","inch",“hectare”等。<br/>**系统能力**:SystemCapability.Global.I18n |
| unitDisplay | string | 是 | 是 | 单位的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"medium"。 | | unitDisplay | string | 是 | 是 | 单位的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"medium"。<br/>**系统能力**:SystemCapability.Global.I18n |
| unitUsage | string | 是 | 是 | 单位的使用场景,取值包括:"default",&nbsp;"area-land-agricult",&nbsp;"area-land-commercl",&nbsp;"area-land-residntl",&nbsp;"length-person",&nbsp;"length-person-small",&nbsp;"length-rainfall",&nbsp;"length-road",&nbsp;"length-road-small",&nbsp;"length-snowfall",&nbsp;"length-vehicle",&nbsp;"length-visiblty",&nbsp;"length-visiblty-small",&nbsp;"length-person-informal",&nbsp;"length-person-small-informal",&nbsp;"length-road-informal",&nbsp;"speed-road-travel",&nbsp;"speed-wind",&nbsp;"temperature-person",&nbsp;"temperature-weather",&nbsp;"volume-vehicle-fuel"。 | | unitUsage | string | 是 | 是 | 单位的使用场景,取值包括:"default",&nbsp;"area-land-agricult",&nbsp;"area-land-commercl",&nbsp;"area-land-residntl",&nbsp;"length-person",&nbsp;"length-person-small",&nbsp;"length-rainfall",&nbsp;"length-road",&nbsp;"length-road-small",&nbsp;"length-snowfall",&nbsp;"length-vehicle",&nbsp;"length-visiblty",&nbsp;"length-visiblty-small",&nbsp;"length-person-informal",&nbsp;"length-person-small-informal",&nbsp;"length-road-informal",&nbsp;"speed-road-travel",&nbsp;"speed-wind",&nbsp;"temperature-person",&nbsp;"temperature-weather",&nbsp;"volume-vehicle-fuel"。<br/>**系统能力**:SystemCapability.Global.I18n |
| signDisplay | string | 是 | 是 | 数字符号的显示格式,取值包括:"auto",&nbsp;"never",&nbsp;"always",&nbsp;"expectZero"。 | | signDisplay | string | 是 | 是 | 数字符号的显示格式,取值包括:"auto",&nbsp;"never",&nbsp;"always",&nbsp;"expectZero"。<br/>**系统能力**:SystemCapability.Global.I18n |
| compactDisplay | string | 是 | 是 | 紧凑型的显示格式,取值包括:"long",&nbsp;"short"。 | | compactDisplay | string | 是 | 是 | 紧凑型的显示格式,取值包括:"long",&nbsp;"short"。<br/>**系统能力**:SystemCapability.Global.I18n |
| notation | string | 是 | 是 | 数字的格式化规格,取值包括:"standard",&nbsp;"scientific",&nbsp;"engineering",&nbsp;"compact"。 | | notation | string | 是 | 是 | 数字的格式化规格,取值包括:"standard",&nbsp;"scientific",&nbsp;"engineering",&nbsp;"compact"。<br/>**系统能力**:SystemCapability.Global.I18n |
| localeMatcher | string | 是 | 是 | 要使用的区域匹配算法,取值包括:"lookup",&nbsp;"best&nbsp;fit"。 | | localeMatcher | string | 是 | 是 | 要使用的区域匹配算法,取值包括:"lookup",&nbsp;"best&nbsp;fit"。<br/>**系统能力**:SystemCapability.Global.I18n |
| style | string | 是 | 是 | 数字的显示格式,取值包括:"decimal",&nbsp;"currency",&nbsp;"percent",&nbsp;"unit"。 | | style | string | 是 | 是 | 数字的显示格式,取值包括:"decimal",&nbsp;"currency",&nbsp;"percent",&nbsp;"unit"。<br/>**系统能力**:SystemCapability.Global.I18n |
| numberingSystem | string | 是 | 是 | 数字系统,取值包括:"adlm",&nbsp;"ahom",&nbsp;"arab",&nbsp;"arabext",&nbsp;"bali",&nbsp;"beng",&nbsp;"bhks",&nbsp;"brah",&nbsp;"cakm",&nbsp;"cham",&nbsp;"deva",&nbsp;"diak",&nbsp;"fullwide",&nbsp;"gong",&nbsp;"gonm",&nbsp;"gujr",&nbsp;"guru",&nbsp;"hanidec",&nbsp;"hmng",&nbsp;"hmnp",&nbsp;"java",&nbsp;"kali",&nbsp;"khmr",&nbsp;"knda",&nbsp;"lana",&nbsp;"lanatham",&nbsp;"laoo",&nbsp;"latn",&nbsp;"lepc",&nbsp;"limb",&nbsp;"mathbold",&nbsp;"mathdbl",&nbsp;"mathmono",&nbsp;"mathsanb",&nbsp;"mathsans",&nbsp;"mlym",&nbsp;"modi",&nbsp;"mong",&nbsp;"mroo",&nbsp;"mtei",&nbsp;"mymr",&nbsp;"mymrshan",&nbsp;"mymrtlng",&nbsp;"newa",&nbsp;"nkoo",&nbsp;"olck",&nbsp;"orya",&nbsp;"osma",&nbsp;"rohg",&nbsp;"saur",&nbsp;"segment",&nbsp;"shrd",&nbsp;"sind",&nbsp;"sinh",&nbsp;"sora",&nbsp;"sund",&nbsp;"takr",&nbsp;"talu",&nbsp;"tamldec",&nbsp;"telu",&nbsp;"thai",&nbsp;"tibt",&nbsp;"tirh",&nbsp;"vaii",&nbsp;"wara",&nbsp;"wcho"。 | | numberingSystem | string | 是 | 是 | 数字系统,取值包括:"adlm",&nbsp;"ahom",&nbsp;"arab",&nbsp;"arabext",&nbsp;"bali",&nbsp;"beng",&nbsp;"bhks",&nbsp;"brah",&nbsp;"cakm",&nbsp;"cham",&nbsp;"deva",&nbsp;"diak",&nbsp;"fullwide",&nbsp;"gong",&nbsp;"gonm",&nbsp;"gujr",&nbsp;"guru",&nbsp;"hanidec",&nbsp;"hmng",&nbsp;"hmnp",&nbsp;"java",&nbsp;"kali",&nbsp;"khmr",&nbsp;"knda",&nbsp;"lana",&nbsp;"lanatham",&nbsp;"laoo",&nbsp;"latn",&nbsp;"lepc",&nbsp;"limb",&nbsp;"mathbold",&nbsp;"mathdbl",&nbsp;"mathmono",&nbsp;"mathsanb",&nbsp;"mathsans",&nbsp;"mlym",&nbsp;"modi",&nbsp;"mong",&nbsp;"mroo",&nbsp;"mtei",&nbsp;"mymr",&nbsp;"mymrshan",&nbsp;"mymrtlng",&nbsp;"newa",&nbsp;"nkoo",&nbsp;"olck",&nbsp;"orya",&nbsp;"osma",&nbsp;"rohg",&nbsp;"saur",&nbsp;"segment",&nbsp;"shrd",&nbsp;"sind",&nbsp;"sinh",&nbsp;"sora",&nbsp;"sund",&nbsp;"takr",&nbsp;"talu",&nbsp;"tamldec",&nbsp;"telu",&nbsp;"thai",&nbsp;"tibt",&nbsp;"tirh",&nbsp;"vaii",&nbsp;"wara",&nbsp;"wcho"。<br/>**系统能力**:SystemCapability.Global.I18n |
| useGrouping | boolean | 是 | 是 | 是否分组显示。 | | useGrouping | boolean | 是 | 是 | 是否分组显示。<br/>**系统能力**:SystemCapability.Global.I18n |
| miniumumIntegerDigits | number | 是 | 是 | 表示要使用的最小整数位数,取值范围:1~21。 | | miniumumIntegerDigits | number | 是 | 是 | 表示要使用的最小整数位数,取值范围:1~21。<br/>**系统能力**:SystemCapability.Global.I18n |
| miniumumFractionDigits | number | 是 | 是 | 表示要使用的最小分数位数,取值范围:0~20。 | | miniumumFractionDigits | number | 是 | 是 | 表示要使用的最小分数位数,取值范围:0~20。<br/>**系统能力**:SystemCapability.Global.I18n |
| maxiumumFractionDigits | number | 是 | 是 | 表示要使用的最大分数位数,取值范围:1~21。 | | maxiumumFractionDigits | number | 是 | 是 | 表示要使用的最大分数位数,取值范围:1~21。<br/>**系统能力**:SystemCapability.Global.I18n |
| miniumumSignificantDigits | number | 是 | 是 | 表示要使用的最低有效位数,取值范围:1~21。 | | miniumumSignificantDigits | number | 是 | 是 | 表示要使用的最低有效位数,取值范围:1~21。<br/>**系统能力**:SystemCapability.Global.I18n |
| maxiumumSignificantDigits | number | 是 | 是 | 表示要使用的最大有效位数,取值范围:1~21。 | | maxiumumSignificantDigits | number | 是 | 是 | 表示要使用的最大有效位数,取值范围:1~21。<br/>**系统能力**:SystemCapability.Global.I18n |
## Collator<sup>8+</sup> ## Collator<sup>8+</sup>
...@@ -361,6 +382,8 @@ constructor() ...@@ -361,6 +382,8 @@ constructor()
创建排序对象。 创建排序对象。
**系统能力**:SystemCapability.Global.I18n
- 示例: - 示例:
``` ```
var collator = new Intl.Collator(); var collator = new Intl.Collator();
...@@ -373,6 +396,8 @@ constructor(locale: string | Array&lt;string&gt;, options?: CollatorOptions) ...@@ -373,6 +396,8 @@ constructor(locale: string | Array&lt;string&gt;, options?: CollatorOptions)
创建排序对象。 创建排序对象。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -392,6 +417,8 @@ compare(first: string, second: string): number ...@@ -392,6 +417,8 @@ compare(first: string, second: string): number
依据Collator的排序策略对两个字符串进行比较。 依据Collator的排序策略对两个字符串进行比较。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -416,6 +443,8 @@ resolvedOptions(): CollatorOptions ...@@ -416,6 +443,8 @@ resolvedOptions(): CollatorOptions
返回Collator对象的属性。 返回Collator对象的属性。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -434,13 +463,13 @@ resolvedOptions(): CollatorOptions ...@@ -434,13 +463,13 @@ resolvedOptions(): CollatorOptions
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| localeMatcher | string | 是 | 是 | locale匹配算法,取值范围:"best&nbsp;fit",&nbsp;"lookup"。 | | localeMatcher | string | 是 | 是 | locale匹配算法,取值范围:"best&nbsp;fit",&nbsp;"lookup"。<br/>**系统能力**:SystemCapability.Global.I18n |
| usage | string | 是 | 是 | 比较的用途,取值范围:"sort",&nbsp;"search"。 | | usage | string | 是 | 是 | 比较的用途,取值范围:"sort",&nbsp;"search"。<br/>**系统能力**:SystemCapability.Global.I18n |
| sensitivity | string | 是 | 是 | 表示字符串中的哪些差异会导致非零结果值,取值范围:"base",&nbsp;"accent",&nbsp;"case",&nbsp;"variant"。 | | sensitivity | string | 是 | 是 | 表示字符串中的哪些差异会导致非零结果值,取值范围:"base",&nbsp;"accent",&nbsp;"case",&nbsp;"variant"。<br/>**系统能力**:SystemCapability.Global.I18n |
| ignorePunctuation | boolean | 是 | 是 | 表示是否忽略标点符号,取值范围:true,&nbsp;false。 | | ignorePunctuation | boolean | 是 | 是 | 表示是否忽略标点符号,取值范围:true,&nbsp;false。<br/>**系统能力**:SystemCapability.Global.I18n |
| collation | string | 是 | 是 | 排序规则,取值范围:"big5han",&nbsp;"compat",&nbsp;"dict",&nbsp;"direct",&nbsp;"ducet",&nbsp;"eor",&nbsp;"gb2312",&nbsp;"phonebk",&nbsp;"phonetic",&nbsp;"pinyin",&nbsp;"reformed",&nbsp;"searchjl",&nbsp;"stroke",&nbsp;"trad",&nbsp;"unihan",&nbsp;"zhuyin"。 | | collation | string | 是 | 是 | 排序规则,取值范围:"big5han",&nbsp;"compat",&nbsp;"dict",&nbsp;"direct",&nbsp;"ducet",&nbsp;"eor",&nbsp;"gb2312",&nbsp;"phonebk",&nbsp;"phonetic",&nbsp;"pinyin",&nbsp;"reformed",&nbsp;"searchjl",&nbsp;"stroke",&nbsp;"trad",&nbsp;"unihan",&nbsp;"zhuyin"。<br/>**系统能力**:SystemCapability.Global.I18n |
| numeric | boolean | 是 | 是 | 是否使用数字排序,取值范围:true,&nbsp;false。 | | numeric | boolean | 是 | 是 | 是否使用数字排序,取值范围:true,&nbsp;false。<br/>**系统能力**:SystemCapability.Global.I18n |
| caseFirst | string | 是 | 是 | 表示大写、小写的排序顺序,取值范围:"upper",&nbsp;"lower",&nbsp;"false"。 | | caseFirst | string | 是 | 是 | 表示大写、小写的排序顺序,取值范围:"upper",&nbsp;"lower",&nbsp;"false"。<br/>**系统能力**:SystemCapability.Global.I18n |
## PluralRules<sup>8+</sup> ## PluralRules<sup>8+</sup>
...@@ -452,6 +481,8 @@ constructor() ...@@ -452,6 +481,8 @@ constructor()
创建PluralRules对象。 创建PluralRules对象。
**系统能力**:SystemCapability.Global.I18n
- 示例: - 示例:
``` ```
var pluralRules = new Intl.PluralRules(); var pluralRules = new Intl.PluralRules();
...@@ -464,6 +495,8 @@ constructor(locale: string | Array&lt;string&gt;, options?: PluralRulesOptions) ...@@ -464,6 +495,8 @@ constructor(locale: string | Array&lt;string&gt;, options?: PluralRulesOptions)
创建PluralRules对象。 创建PluralRules对象。
**系统能力**:SystemCapability.Global.I18n
参数: 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -482,6 +515,8 @@ select(n: number): string ...@@ -482,6 +515,8 @@ select(n: number): string
返回一个字符串表示该数字的单复数类别。 返回一个字符串表示该数字的单复数类别。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -505,13 +540,13 @@ select(n: number): string ...@@ -505,13 +540,13 @@ select(n: number): string
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| localeMatcher | string | 是 | 是 | locale匹配算法,取值包括:"best&nbsp;fit",&nbsp;"lookup"。 | | localeMatcher | string | 是 | 是 | locale匹配算法,取值包括:"best&nbsp;fit",&nbsp;"lookup"。<br/>**系统能力**:SystemCapability.Global.I18n |
| type | string | 是 | 是 | 排序的类型,取值包括:"cardinal",&nbsp;"ordinal"。 | | type | string | 是 | 是 | 排序的类型,取值包括:"cardinal",&nbsp;"ordinal"。<br/>**系统能力**:SystemCapability.Global.I18n |
| minimumIntegerDigits | number | 是 | 是 | 表示要使用的最小整数位数,取值范围:1~21。 | | minimumIntegerDigits | number | 是 | 是 | 表示要使用的最小整数位数,取值范围:1~21。<br/>**系统能力**:SystemCapability.Global.I18n |
| minimumFractionDigits | number | 是 | 是 | 表示要使用的最小分数位数,取值范围:0~20。 | | minimumFractionDigits | number | 是 | 是 | 表示要使用的最小分数位数,取值范围:0~20。<br/>**系统能力**:SystemCapability.Global.I18n |
| maximumFractionDigits | number | 是 | 是 | 表示要使用的最大分数位数,取值范围:1~21。 | | maximumFractionDigits | number | 是 | 是 | 表示要使用的最大分数位数,取值范围:1~21。<br/>**系统能力**:SystemCapability.Global.I18n |
| minimumSignificantDigits | number | 是 | 是 | 表示要使用的最低有效位数,取值范围:1~21。 | | minimumSignificantDigits | number | 是 | 是 | 表示要使用的最低有效位数,取值范围:1~21。<br/>**系统能力**:SystemCapability.Global.I18n |
| maximumSignificantDigits | number | 是 | 是 | 表示要使用的最大有效位数,取值范围:1~21。 | | maximumSignificantDigits | number | 是 | 是 | 表示要使用的最大有效位数,取值范围:1~21。<br/>**系统能力**:SystemCapability.Global.I18n |
## RelativeTimeFormat<sup>8+</sup> ## RelativeTimeFormat<sup>8+</sup>
...@@ -523,6 +558,8 @@ constructor() ...@@ -523,6 +558,8 @@ constructor()
创建相对时间格式化对象。 创建相对时间格式化对象。
**系统能力**:SystemCapability.Global.I18n
- 示例: - 示例:
``` ```
var relativetimefmt = new Intl.RelativeTimeFormat(); var relativetimefmt = new Intl.RelativeTimeFormat();
...@@ -535,6 +572,8 @@ constructor(locale: string | Array&lt;string&gt;, options?: RelativeTimeFormatIn ...@@ -535,6 +572,8 @@ constructor(locale: string | Array&lt;string&gt;, options?: RelativeTimeFormatIn
创建相对时间格式化对象。 创建相对时间格式化对象。
**系统能力**:SystemCapability.Global.I18n
参数: 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -553,6 +592,8 @@ format(value: numeric, unit: string): string ...@@ -553,6 +592,8 @@ format(value: numeric, unit: string): string
依据locale和格式化选项,对value和unit进行格式化。 依据locale和格式化选项,对value和unit进行格式化。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -577,6 +618,8 @@ formatToParts(value: numeric, unit: string): Array&lt;Object&gt; ...@@ -577,6 +618,8 @@ formatToParts(value: numeric, unit: string): Array&lt;Object&gt;
返回一个对象数组,表示可用于自定义区域设置格式的相对时间格式。 返回一个对象数组,表示可用于自定义区域设置格式的相对时间格式。
**系统能力**:SystemCapability.Global.I18n
- 参数: - 参数:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
...@@ -601,6 +644,8 @@ resolvedOptions(): RelativeTimeFormatResolvedOptions ...@@ -601,6 +644,8 @@ resolvedOptions(): RelativeTimeFormatResolvedOptions
获取RelativeTimeFormat对象的格式化选项。 获取RelativeTimeFormat对象的格式化选项。
**系统能力**:SystemCapability.Global.I18n
- 返回值: - 返回值:
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
...@@ -619,9 +664,9 @@ resolvedOptions(): RelativeTimeFormatResolvedOptions ...@@ -619,9 +664,9 @@ resolvedOptions(): RelativeTimeFormatResolvedOptions
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| localeMatcher | string | 是 | 是 | locale匹配算法,取值包括:"best&nbsp;fit",&nbsp;"lookup"。 | | localeMatcher | string | 是 | 是 | locale匹配算法,取值包括:"best&nbsp;fit",&nbsp;"lookup"。<br/>**系统能力**:SystemCapability.Global.I18n |
| numeric | string | 是 | 是 | 输出消息的格式,取值包括:"always",&nbsp;"auto"。 | | numeric | string | 是 | 是 | 输出消息的格式,取值包括:"always",&nbsp;"auto"。<br/>**系统能力**:SystemCapability.Global.I18n |
| style | string | 是 | 是 | 国际化消息的长度,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 | | style | string | 是 | 是 | 国际化消息的长度,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。<br/>**系统能力**:SystemCapability.Global.I18n |
## RelativeTimeFormatResolvedOptions<sup>8+</sup><a name=relativetimeformatresolvedoptions></a> ## RelativeTimeFormatResolvedOptions<sup>8+</sup><a name=relativetimeformatresolvedoptions></a>
...@@ -630,7 +675,7 @@ resolvedOptions(): RelativeTimeFormatResolvedOptions ...@@ -630,7 +675,7 @@ resolvedOptions(): RelativeTimeFormatResolvedOptions
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| locale | string | 是 | 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 | | locale | string | 是 | 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。<br/>**系统能力**:SystemCapability.Global.I18n |
| numeric | string | 是 | 是 | 输出消息的格式,取值包括:"always",&nbsp;"auto"。 | | numeric | string | 是 | 是 | 输出消息的格式,取值包括:"always",&nbsp;"auto"。<br/>**系统能力**:SystemCapability.Global.I18n |
| style | string | 是 | 是 | 国际化消息的长度,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 | | style | string | 是 | 是 | 国际化消息的长度,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。<br/>**系统能力**:SystemCapability.Global.I18n |
| numberingSystem | string | 是 | 是 | 使用的数字系统。 | | numberingSystem | string | 是 | 是 | 使用的数字系统。<br/>**系统能力**:SystemCapability.Global.I18n |
...@@ -53,7 +53,7 @@ isEmpty(): boolean ...@@ -53,7 +53,7 @@ isEmpty(): boolean
``` ```
const lightWeightMap = new LightWeightMap(); const lightWeightMap = new LightWeightMap();
lightWeightMap.isEmpty(); let result = lightWeightMap.isEmpty();
``` ```
...@@ -97,21 +97,22 @@ hasKey(key: K): boolean; ...@@ -97,21 +97,22 @@ hasKey(key: K): boolean;
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | K | 是 | 指定元素。 | | key | K | 是 | 指定key。 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| boolean | 包含指定元素返回true,否则返回false。 | | boolean | 包含指定key返回true,否则返回false。 |
**示例:** **示例:**
``` ```
let lightWeightMap = new LightWeightMap(); let lightWeightMap = new LightWeightMap();
let result = lightWeightMap.hasKey;
lightWeightMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); lightWeightMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result1 = lightWeightMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
``` ```
...@@ -137,9 +138,9 @@ hasValue(value: V): boolean ...@@ -137,9 +138,9 @@ hasValue(value: V): boolean
``` ```
let lightWeightMap = new LightWeightMap(); let lightWeightMap = new LightWeightMap();
lightWeightMap.hasValue(123); let result = lightWeightMap.hasValue(123);
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.hasValue(123); let result1 = lightWeightMap.hasValue(123);
``` ```
...@@ -187,7 +188,7 @@ get(key: K): V ...@@ -187,7 +188,7 @@ get(key: K): V
let lightWeightMap = new LightWeightMap(); let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356); lightWeightMap.set("sdfs", 356);
lightWeightMap.get("sdfs"); let result = lightWeightMap.get("sdfs");
``` ```
...@@ -215,7 +216,7 @@ getIndexOfKey(key: K): number ...@@ -215,7 +216,7 @@ getIndexOfKey(key: K): number
let lightWeightMap = new LightWeightMap(); let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356); lightWeightMap.set("sdfs", 356);
lightWeightMap.getIndexOfKey("sdfs"); let result = lightWeightMap.getIndexOfKey("sdfs");
``` ```
...@@ -243,7 +244,7 @@ getIndexOfValue(value: V): number ...@@ -243,7 +244,7 @@ getIndexOfValue(value: V): number
let lightWeightMap = new LightWeightMap(); let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356); lightWeightMap.set("sdfs", 356);
lightWeightMap.getIndexOfValue(123); let result = lightWeightMap.getIndexOfValue(123);
``` ```
...@@ -271,7 +272,7 @@ getKeyAt(index: number): K ...@@ -271,7 +272,7 @@ getKeyAt(index: number): K
let lightWeightMap = new LightWeightMap(); let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356); lightWeightMap.set("sdfs", 356);
lightWeightMap.getKeyAt(1); let result = lightWeightMap.getKeyAt(1);
``` ```
...@@ -279,13 +280,13 @@ lightWeightMap.getKeyAt(1); ...@@ -279,13 +280,13 @@ lightWeightMap.getKeyAt(1);
setAll(map: LightWeightMap<K, V>): void setAll(map: LightWeightMap<K, V>): void
将一个LightWeightMap中的所有元素组添加到另一个LightWeightMap中。 将一个LightWeightMap中的所有元素组添加到另一个lightWeightMap中。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| map | LightWeightMap<K, V> | 是 | 被添加元素的LightWeightMap。 | | map | LightWeightMap<K, V> | 是 | 被添加元素的lightWeightMap。 |
**示例:** **示例:**
...@@ -314,13 +315,13 @@ set(key: K, value: V): Object ...@@ -314,13 +315,13 @@ set(key: K, value: V): Object
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| Object | 返回添加数据后的LightWeightMap。 | | Object | 返回添加数据后的lightWeightMap。 |
**示例:** **示例:**
``` ```
let lightWeightMap = new LightWeightMap(); let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); let result = lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
``` ```
...@@ -328,13 +329,13 @@ lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); ...@@ -328,13 +329,13 @@ lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
remove(key: K): V remove(key: K): V
删除指定的元素。 删除并返回指定key映射的元素。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | K | 是 | 依据key指定删除的元素。 | | key | K | 是 | 指定key。 |
**返回值:** **返回值:**
...@@ -356,13 +357,13 @@ lightWeightMap.remove("sdfs"); ...@@ -356,13 +357,13 @@ lightWeightMap.remove("sdfs");
removeAt(index: number): boolean removeAt(index: number): boolean
删除指定下标的元素。 删除指定下标对应的元素。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| index | number | 是 | 指定想要删除元素下标 | | index | number | 是 | 指定下标。 |
**返回值:** **返回值:**
...@@ -376,7 +377,7 @@ removeAt(index: number): boolean ...@@ -376,7 +377,7 @@ removeAt(index: number): boolean
let lightWeightMap = new LightWeightMap(); let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356); lightWeightMap.set("sdfs", 356);
lightWeightMap.removeAt(1); let result = lightWeightMap.removeAt(1);
``` ```
...@@ -384,13 +385,13 @@ lightWeightMap.removeAt(1); ...@@ -384,13 +385,13 @@ lightWeightMap.removeAt(1);
setValueAt(index: number, newValue: V): boolean setValueAt(index: number, newValue: V): boolean
向LightWeightMap中具体位置替换键值对中的值 替换指定下标对应键值对中的元素
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| index | number | 是 | 指定替换数据下标。 | | index | number | 是 | 指定下标。 |
| newValue | V | 是 | 替换键值对中的值。 | | newValue | V | 是 | 替换键值对中的值。 |
**返回值:** **返回值:**
...@@ -413,19 +414,19 @@ lightWeightMap.setValueAt(1, 3546); ...@@ -413,19 +414,19 @@ lightWeightMap.setValueAt(1, 3546);
getValueAt(index: number): V getValueAt(index: number): V
获取LightWeightMap中具体位置键值对中的值 获取指定下标对应键值对中的元素
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| index | number | 是 | 指定查询数据下标 | | index | number | 是 | 指定下标。 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| V | 返回指定位置中键值对的值。 | | V | 返回指定下标对应键值对中的元素。 |
**示例:** **示例:**
...@@ -433,7 +434,7 @@ getValueAt(index: number): V ...@@ -433,7 +434,7 @@ getValueAt(index: number): V
let lightWeightMap = new LightWeightMap(); let lightWeightMap = new LightWeightMap();
lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); lightWeightMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
lightWeightMap.set("sdfs", 356); lightWeightMap.set("sdfs", 356);
lightWeightMap.getValueAt(1); let result = lightWeightMap.getValueAt(1);
``` ```
...@@ -509,7 +510,7 @@ while(temp != undefined) { ...@@ -509,7 +510,7 @@ while(temp != undefined) {
### forEach ### forEach
forEach(callbackfn: (value: V, key?: K, lightWeightMap?: LightWeightMap<K, V>) => void, thisArg?: Object): void forEach(callbackfn: (value: V, key?: K, map?: LightWeightMap<K, V>) => void, thisArg?: Object): void
通过回调函数来遍历实例对象上的元素以及元素对应的下标。 通过回调函数来遍历实例对象上的元素以及元素对应的下标。
...@@ -525,7 +526,7 @@ callbackfn的参数说明: ...@@ -525,7 +526,7 @@ callbackfn的参数说明:
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | V | 是 | 当前遍历到的元素键值对的值。 | | value | V | 是 | 当前遍历到的元素键值对的值。 |
| key | K | 是 | 当前遍历到的元素键值对的键。 | | key | K | 是 | 当前遍历到的元素键值对的键。 |
| lightWeightMap | LightWeightMap<K, V> | 否 | 当前调用forEach方法的实例对象。 | | map | LightWeightMap<K, V> | 否 | 当前调用forEach方法的实例对象。 |
**示例:** **示例:**
...@@ -543,7 +544,7 @@ lightWeightMap.forEach((value, key) => { ...@@ -543,7 +544,7 @@ lightWeightMap.forEach((value, key) => {
entries(): IterableIterator<[K, V]> entries(): IterableIterator<[K, V]>
返回包含此映射中包含的元素的新迭代器对象。 返回包含此映射中包含的键值对的新迭代器对象。
**返回值:** **返回值:**
...@@ -566,6 +567,26 @@ while(temp != undefined) { ...@@ -566,6 +567,26 @@ while(temp != undefined) {
} }
``` ```
### toString
toString(): string
将此映射中包含的键值对拼接成字符串,并返回字符串类型。
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| string | 返回一个字符串。 |
**示例:**
```
let lightWeightMap = new LightWeightMap();
lightWeightMap.set("A", 123);
lightWeightMap.set("sdfs", 356);
let iter = lightWeightMap.toString();
```
### [Symbol.iterator] ### [Symbol.iterator]
......
...@@ -53,12 +53,12 @@ isEmpty(): boolean ...@@ -53,12 +53,12 @@ isEmpty(): boolean
``` ```
const lightWeightSet = new LightWeightSet(); const lightWeightSet = new LightWeightSet();
lightWeightSet.isEmpty(); let result = lightWeightSet.isEmpty();
``` ```
### add ### add
add(value: T): boolean add(obj: T): boolean
向此容器中添加数据。 向此容器中添加数据。
...@@ -66,7 +66,7 @@ add(value: T): boolean ...@@ -66,7 +66,7 @@ add(value: T): boolean
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 添加的成员数据。 | | obj | T | 是 | 添加的成员数据。 |
**返回值:** **返回值:**
...@@ -78,7 +78,7 @@ add(value: T): boolean ...@@ -78,7 +78,7 @@ add(value: T): boolean
``` ```
let lightWeightSet = new LightWeightSet(); let lightWeightSet = new LightWeightSet();
lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result = lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
``` ```
...@@ -92,7 +92,7 @@ addAll(set: LightWeightSet&lt;T&gt;): boolean ...@@ -92,7 +92,7 @@ addAll(set: LightWeightSet&lt;T&gt;): boolean
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| set | LightWeightSet&lt;T&gt; | 是 | 提供添加元素的LightWeightSet。 | | set | LightWeightSet&lt;T&gt; | 是 | 提供添加元素的lightWeightSet。 |
**示例:** **示例:**
...@@ -102,7 +102,7 @@ lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); ...@@ -102,7 +102,7 @@ lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
lightWeightSet.add("sdfs"); lightWeightSet.add("sdfs");
let set = new LightWeightSet(); let set = new LightWeightSet();
set.add("sfage"); set.add("sfage");
lightWeightSet.addAll(set); let result = lightWeightSet.addAll(set);
``` ```
...@@ -138,29 +138,29 @@ let result = lightWeightSet.hasAll(set); ...@@ -138,29 +138,29 @@ let result = lightWeightSet.hasAll(set);
### has ### has
has(value: T): boolean; has(key: T): boolean
判断此容器中是否含有该指定value 判断此容器中是否含有该指定key
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 指定元素 | | value | T | 是 | 指定key |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| boolean | 包含指定元素返回true,否则返回false。 | | boolean | 包含指定key返回true,否则返回false。 |
**示例:** **示例:**
``` ```
let lightWeightSet = new LightWeightSet(); let lightWeightSet = new LightWeightSet();
lightWeightSet.has(123); let result = lightWeightSet.has(123);
lightWeightSet.add(123); lightWeightSet.add(123);
lightWeightSet.has(123); let result = lightWeightSet.has(123);
``` ```
...@@ -195,7 +195,7 @@ let result = lightWeightSet.equal(obj); ...@@ -195,7 +195,7 @@ let result = lightWeightSet.equal(obj);
### ensureCapacityTo ### ensureCapacityTo
ensureCapacityTo(minimumCapacity: number): void increaseCapacityTo(minimumCapacity: number): void
将当前容器扩容至可以容纳指定数量元素。 将当前容器扩容至可以容纳指定数量元素。
...@@ -229,7 +229,7 @@ getIndexOf(key: T): number ...@@ -229,7 +229,7 @@ getIndexOf(key: T): number
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| number | 在LightWeightSet中指定数据的下标。 | | number | 在lightWeightSet中指定数据的下标。 |
**示例:** **示例:**
...@@ -237,7 +237,7 @@ getIndexOf(key: T): number ...@@ -237,7 +237,7 @@ getIndexOf(key: T): number
let lightWeightSet = new LightWeightSet(); let lightWeightSet = new LightWeightSet();
lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
lightWeightSet.add("sdfs"); lightWeightSet.add("sdfs");
lightWeightSet.getIndexOf("sdfs"); let result = lightWeightSet.getIndexOf("sdfs");
``` ```
...@@ -245,13 +245,13 @@ lightWeightSet.getIndexOf("sdfs"); ...@@ -245,13 +245,13 @@ lightWeightSet.getIndexOf("sdfs");
remove(key: T): T remove(key: T): T
删除指定的元素。 删除并返回指定key对应的元素。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | T | 是 | 依据key指定删除的元素。 | | key | T | 是 | 指定key。 |
**返回值:** **返回值:**
...@@ -265,7 +265,7 @@ remove(key: T): T ...@@ -265,7 +265,7 @@ remove(key: T): T
let lightWeightSet = new LightWeightSet(); let lightWeightSet = new LightWeightSet();
lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
lightWeightSet.add("sdfs"); lightWeightSet.add("sdfs");
lightWeightSet.remove("sdfs"); let result = lightWeightSet.remove("sdfs");
``` ```
...@@ -273,13 +273,13 @@ lightWeightSet.remove("sdfs"); ...@@ -273,13 +273,13 @@ lightWeightSet.remove("sdfs");
removeAt(index: number): boolean removeAt(index: number): boolean
删除指定下标的元素。 删除指定下标所对应的元素。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| index | number | 是 | 指定想要删除元素下标。 | | index | number | 是 | 指定下标。 |
**返回值:** **返回值:**
...@@ -293,7 +293,7 @@ removeAt(index: number): boolean ...@@ -293,7 +293,7 @@ removeAt(index: number): boolean
let lightWeightSet = new LightWeightSet(); let lightWeightSet = new LightWeightSet();
lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
lightWeightSet.add("sdfs"); lightWeightSet.add("sdfs");
lightWeightSet.removeAt(1); let result = lightWeightSet.removeAt(1);
``` ```
...@@ -301,19 +301,19 @@ lightWeightSet.removeAt(1); ...@@ -301,19 +301,19 @@ lightWeightSet.removeAt(1);
getValueAt(index: number): T getValueAt(index: number): T
获取此容器中具体位置的元素。 获取此容器中指定下标对应的元素。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| index | number | 是 | 指定查询数据下标。 | | index | number | 是 | 指定下标。 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| T | 返回指定位置中元素。 | | T | 返回指定下标对应的元素。 |
**参数:** **参数:**
...@@ -321,7 +321,7 @@ getValueAt(index: number): T ...@@ -321,7 +321,7 @@ getValueAt(index: number): T
let lightWeightSet = new LightWeightSet(); let lightWeightSet = new LightWeightSet();
lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
lightWeightSet.add("sdfs"); lightWeightSet.add("sdfs");
lightWeightSet.getValueAt(1); let result = lightWeightSet.getValueAt(1);
``` ```
...@@ -359,7 +359,7 @@ toString(): String ...@@ -359,7 +359,7 @@ toString(): String
let lightWeightSet = new LightWeightSet(); let lightWeightSet = new LightWeightSet();
lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
lightWeightSet.add("sdfs"); lightWeightSet.add("sdfs");
lightWeightSet.toString(); let result = lightWeightSet.toString();
``` ```
...@@ -381,7 +381,7 @@ toArray(): Array&lt;T&gt; ...@@ -381,7 +381,7 @@ toArray(): Array&lt;T&gt;
let lightWeightSet = new LightWeightSet(); let lightWeightSet = new LightWeightSet();
lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); lightWeightSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
lightWeightSet.add("sdfs"); lightWeightSet.add("sdfs");
lightWeightSet.toString(); let result = lightWeightSet.toArray();
``` ```
...@@ -389,7 +389,7 @@ lightWeightSet.toString(); ...@@ -389,7 +389,7 @@ lightWeightSet.toString();
values(): IterableIterator&lt;T&gt; values(): IterableIterator&lt;T&gt;
返回包含此映射中包含的键的新迭代器对象。 返回包含此映射中包含的键的新迭代器对象。
**返回值:** **返回值:**
...@@ -414,7 +414,7 @@ while(index < lightWeightSet.length) { ...@@ -414,7 +414,7 @@ while(index < lightWeightSet.length) {
### forEach ### forEach
forEach(callbackfn: (value: T, key?: T, lightWeightSet?: LightWeightSet&lt;T&gt;) => void, thisArg?: Object): void forEach(callbackfn: (value: T, key?: T, set?: LightWeightSet&lt;T&gt;) => void, thisArg?: Object): void
通过回调函数来遍历LightWeightSet实例对象上的元素以及元素对应的下标。 通过回调函数来遍历LightWeightSet实例对象上的元素以及元素对应的下标。
...@@ -430,7 +430,7 @@ callbackfn的参数说明: ...@@ -430,7 +430,7 @@ callbackfn的参数说明:
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 当前遍历到的元素。 | | value | T | 是 | 当前遍历到的元素。 |
| key | T | 否 | 当前遍历到的元素(和value相同)。 | | key | T | 否 | 当前遍历到的元素(和value相同)。 |
| lightWeightSet | LightWeightSet&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 | | set | LightWeightSet&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 |
**示例:** **示例:**
...@@ -448,7 +448,7 @@ lightWeightSet.forEach((value, key) => { ...@@ -448,7 +448,7 @@ lightWeightSet.forEach((value, key) => {
entries(): IterableIterator<[T, T]> entries(): IterableIterator<[T, T]>
返回包含此映射中包含的键的新迭代器对象。 返回包含此映射中包含的键值对的新迭代器对象。
**返回值:** **返回值:**
......
...@@ -27,7 +27,7 @@ SystemCapability.Utils.Lang ...@@ -27,7 +27,7 @@ SystemCapability.Utils.Lang
### constructor ### constructor
constructor(_head?: NodeObj&lt;T&gt;, _tail?: NodeObj&lt;T&gt;) constructor(head?: NodeObj&lt;T&gt;, tail?: NodeObj&lt;T&gt;)
LinkedList的构造函数。 LinkedList的构造函数。
...@@ -35,8 +35,8 @@ LinkedList的构造函数。 ...@@ -35,8 +35,8 @@ LinkedList的构造函数。
| 参数名 | 类型 | 可读 | 可写 | 说明 | | 参数名 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| _head | NodeObj&lt;T&gt; | 是 | 否 | 节点对象,含有element、next指向和prev指向。 | | head | NodeObj&lt;T&gt; | 是 | 否 | 节点对象,含有element、next指向和prev指向。 |
| _tail | NodeObj&lt;T&gt; | 是 | 否 | 节点对象,含有element、next指向和prev指向。 | | tail | NodeObj&lt;T&gt; | 是 | 否 | 节点对象,含有element、next指向和prev指向。 |
**示例:** **示例:**
...@@ -67,12 +67,12 @@ add(element: T): boolean ...@@ -67,12 +67,12 @@ add(element: T): boolean
``` ```
let linkedList = new LinkedList(); let linkedList = new LinkedList();
linkedList.add("a"); let result = linkedList.add("a");
linkedList.add(1); let result = linkedList.add(1);
let b = [1, 2, 3]; let b = [1, 2, 3];
linkedList.add(b); linkedList.add(b);
let c = {name : "lala", age : "13"}; let c = {name : "lala", age : "13"};
linkedList.add(false); let result3 = linkedList.add(false);
``` ```
### addFirst ### addFirst
...@@ -101,7 +101,7 @@ linkedList.addFirst(false); ...@@ -101,7 +101,7 @@ linkedList.addFirst(false);
### insert ### insert
insert(element: T, index: number): void insert(index: number, element: T): void
在长度范围内任意插入指定元素。 在长度范围内任意插入指定元素。
...@@ -116,9 +116,9 @@ insert(element: T, index: number): void ...@@ -116,9 +116,9 @@ insert(element: T, index: number): void
``` ```
let linkedList = new LinkedList(); let linkedList = new LinkedList();
linkedList.insert("A", 0); linkedList.insert(0, "A");
linkedList.insert(0, 1); linkedList.insert(1, 0);
linkedList.insert(true, 2); linkedList.insert(2, true);
``` ```
### has ### has
...@@ -143,9 +143,9 @@ has(element: T): boolean ...@@ -143,9 +143,9 @@ has(element: T): boolean
``` ```
let linkedList = new LinkedList(); let linkedList = new LinkedList();
linkedList.has("Ahfbrgrbgnutfodgorrogorg"); let result1 = linkedList.has("Ahfbrgrbgnutfodgorrogorg");
linkedList.add("Ahfbrgrbgnutfodgorrogorg"); linkedList.add("Ahfbrgrbgnutfodgorrogorg");
linkedList.has("Ahfbrgrbgnutfodgorrogorg"); let result = linkedList.has("Ahfbrgrbgnutfodgorrogorg");
``` ```
### get ### get
...@@ -177,7 +177,7 @@ linkedList.add(2); ...@@ -177,7 +177,7 @@ linkedList.add(2);
linkedList.add(1); linkedList.add(1);
linkedList.add(2); linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.get(2); let result = linkedList.get(2);
``` ```
### getLastIndexOf ### getLastIndexOf
...@@ -209,7 +209,7 @@ linkedList.add(2); ...@@ -209,7 +209,7 @@ linkedList.add(2);
linkedList.add(1); linkedList.add(1);
linkedList.add(2); linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.getLastIndexOf(2); let result = linkedList.getLastIndexOf(2);
``` ```
### getIndexOf ### getIndexOf
...@@ -241,7 +241,7 @@ linkedList.add(2); ...@@ -241,7 +241,7 @@ linkedList.add(2);
linkedList.add(1); linkedList.add(1);
linkedList.add(2); linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.getIndexOf(2); let result = linkedList.getIndexOf(2);
``` ```
### removeByIndex ### removeByIndex
...@@ -271,7 +271,7 @@ linkedList.add(4); ...@@ -271,7 +271,7 @@ linkedList.add(4);
linkedList.add(5); linkedList.add(5);
linkedList.add(2); linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.removeByIndex(2); let result = linkedList.removeByIndex(2);
``` ```
### removeFirst ### removeFirst
...@@ -295,7 +295,7 @@ linkedList.add(4); ...@@ -295,7 +295,7 @@ linkedList.add(4);
linkedList.add(5); linkedList.add(5);
linkedList.add(2); linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.removeFirst(); let result = linkedList.removeFirst();
``` ```
### removeLast ### removeLast
...@@ -319,14 +319,14 @@ linkedList.add(4); ...@@ -319,14 +319,14 @@ linkedList.add(4);
linkedList.add(5); linkedList.add(5);
linkedList.add(2); linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.removeLast(); let result = linkedList.removeLast();
``` ```
### remove ### remove
remove(element: T): boolean remove(element: T): boolean
删除指定的元素。 删除查找到的第一个指定的元素。
**参数:** **参数:**
...@@ -348,7 +348,7 @@ linkedList.add(2); ...@@ -348,7 +348,7 @@ linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.add(5); linkedList.add(5);
linkedList.add(4); linkedList.add(4);
linkedList.remove(2); let result = linkedList.remove(2);
``` ```
### removeFirstFound ### removeFirstFound
...@@ -377,7 +377,7 @@ linkedList.add(2); ...@@ -377,7 +377,7 @@ linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.add(5); linkedList.add(5);
linkedList.add(4); linkedList.add(4);
linkedList.removeFirstFound(4); let result = linkedList.removeFirstFound(4);
``` ```
### removeLastFound ### removeLastFound
...@@ -406,7 +406,7 @@ linkedList.add(2); ...@@ -406,7 +406,7 @@ linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.add(5); linkedList.add(5);
linkedList.add(4); linkedList.add(4);
linkedList.removeLastFound(4); let result = linkedList.removeLastFound(4);
``` ```
### clone ### clone
...@@ -430,11 +430,11 @@ linkedList.add(2); ...@@ -430,11 +430,11 @@ linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.add(5); linkedList.add(5);
linkedList.add(4); linkedList.add(4);
linkedList.clone(); let result = linkedList.clone();
``` ```
### forEach ### forEach
forEach(callbackfn: (value: T, index?: number, linkedlist?: LinkedList&lt;T&gt;) => void, forEach(callbackfn: (value: T, index?: number, LinkedList?: LinkedList&lt;T&gt;) => void,
thisArg?: Object): void thisArg?: Object): void
通过回调函数来遍历LinkedList实例对象上的元素以及元素对应的下标。 通过回调函数来遍历LinkedList实例对象上的元素以及元素对应的下标。
...@@ -452,7 +452,7 @@ callbackfn的参数说明: ...@@ -452,7 +452,7 @@ callbackfn的参数说明:
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 当前遍历到的元素。 | | value | T | 是 | 当前遍历到的元素。 |
| index | number | 否 | 当前遍历到的下标值。 | | index | number | 否 | 当前遍历到的下标值。 |
| linkedlist | LinkedList&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 | | LinkedList | LinkedList&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 |
**示例:** **示例:**
...@@ -484,8 +484,7 @@ linkedList.clear(); ...@@ -484,8 +484,7 @@ linkedList.clear();
``` ```
### set ### set
set(index: number, element: T): void set(index: number, element: T): T
将此LinkedList中指定位置的元素替换为指定元素。 将此LinkedList中指定位置的元素替换为指定元素。
**参数:** **参数:**
...@@ -495,6 +494,12 @@ set(index: number, element: T): void ...@@ -495,6 +494,12 @@ set(index: number, element: T): void
| index | number | 是 | 查找的下标值。 | | index | number | 是 | 查找的下标值。 |
| element | T | 是 | 用来替换的元素。 | | element | T | 是 | 用来替换的元素。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| T | 返回替换后的元素。 |
**示例:** **示例:**
``` ```
...@@ -503,7 +508,7 @@ linkedList.add(2); ...@@ -503,7 +508,7 @@ linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.add(5); linkedList.add(5);
linkedList.add(4); linkedList.add(4);
linkedList.set(2, "b"); let result = linkedList.set(2, "b");
``` ```
### convertToArray ### convertToArray
...@@ -524,7 +529,7 @@ linkedList.add(2); ...@@ -524,7 +529,7 @@ linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.add(5); linkedList.add(5);
linkedList.add(4); linkedList.add(4);
linkedList.convertToArray(); let result = linkedList.convertToArray();
``` ```
### getFirst ### getFirst
...@@ -547,7 +552,7 @@ linkedList.add(2); ...@@ -547,7 +552,7 @@ linkedList.add(2);
linkedList.add(4); linkedList.add(4);
linkedList.add(5); linkedList.add(5);
linkedList.add(4); linkedList.add(4);
linkedList.getFirst(); let result = linkedList.getFirst();
``` ```
### getLast ### getLast
......
...@@ -27,7 +27,7 @@ SystemCapability.Utils.Lang ...@@ -27,7 +27,7 @@ SystemCapability.Utils.Lang
### constructor ### constructor
constructor(_head?: NodeObj&lt;T&gt;) constructor(head?: NodeObj&lt;T&gt;)
List的构造函数。 List的构造函数。
...@@ -35,7 +35,7 @@ List的构造函数。 ...@@ -35,7 +35,7 @@ List的构造函数。
| 参数名 | 类型 | 可读 | 说明 | | 参数名 | 类型 | 可读 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| _head | NodeObj&lt;T&gt; | 是 | 节点对象,含有element、next指向。 | | head | NodeObj&lt;T&gt; | 是 | 节点对象,含有element、next指向。 |
**示例:** **示例:**
...@@ -66,12 +66,12 @@ add(element: T): boolean ...@@ -66,12 +66,12 @@ add(element: T): boolean
``` ```
let list = new List; let list = new List;
list.add("a"); let result = list.add("a");
list.add(1); let result1 = list.add(1);
let b = [1, 2, 3]; let b = [1, 2, 3];
list.add(b); list.add(b);
let c = {name : "lala", age : "13"}; let c = {name : "lala", age : "13"};
list.add(false); let result3 = list.add(false);
``` ```
### insert ### insert
...@@ -118,9 +118,9 @@ has(element: T): boolean ...@@ -118,9 +118,9 @@ has(element: T): boolean
``` ```
let list = new List(); let list = new List();
list.has("Ahfbrgrbgnutfodgorrogorg"); let result = list.has("Ahfbrgrbgnutfodgorrogorg");
list.add("Ahfbrgrbgnutfodgorrogorg"); list.add("Ahfbrgrbgnutfodgorrogorg");
list.has("Ahfbrgrbgnutfodgorrogorg"); let result1 = list.has("Ahfbrgrbgnutfodgorrogorg");
``` ```
### get ### get
...@@ -152,7 +152,7 @@ list.add(2); ...@@ -152,7 +152,7 @@ list.add(2);
list.add(1); list.add(1);
list.add(2); list.add(2);
list.add(4); list.add(4);
list.get(2); let result = list.get(2);
``` ```
### getLastIndexOf ### getLastIndexOf
...@@ -184,7 +184,7 @@ list.add(2); ...@@ -184,7 +184,7 @@ list.add(2);
list.add(1); list.add(1);
list.add(2); list.add(2);
list.add(4); list.add(4);
list.getLastIndexOf(2); let result = list.getLastIndexOf(2);
``` ```
### getIndexOf ### getIndexOf
...@@ -203,7 +203,7 @@ getIndexOf(element: T): number ...@@ -203,7 +203,7 @@ getIndexOf(element: T): number
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| number | 返回第一次找到指定元素的下标,没有找到返回-1 | | number | 返回第一次找到指定元素的下标,没有找到返回-1 |
**示例:** **示例:**
...@@ -217,6 +217,7 @@ list.add(1); ...@@ -217,6 +217,7 @@ list.add(1);
list.add(2); list.add(2);
list.add(4); list.add(4);
list.getIndexOf(2); list.getIndexOf(2);
let result = list.getIndexOf(2);
``` ```
### equal ### equal
...@@ -251,7 +252,7 @@ obj1.add(4); ...@@ -251,7 +252,7 @@ obj1.add(4);
obj1.add(5); obj1.add(5);
list.equal(obj1); list.equal(obj1);
let obj2 = {name : "lala", age : "13"}; let obj2 = {name : "lala", age : "13"};
list.equal(obj2); let result = list.equal(obj2);
``` ```
### removeByIndex ### removeByIndex
...@@ -281,7 +282,7 @@ list.add(4); ...@@ -281,7 +282,7 @@ list.add(4);
list.add(5); list.add(5);
list.add(2); list.add(2);
list.add(4); list.add(4);
list.removeByIndex(2); let result = list.removeByIndex(2);
``` ```
### remove ### remove
...@@ -294,7 +295,7 @@ remove(element: T): boolean ...@@ -294,7 +295,7 @@ remove(element: T): boolean
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| element | T | 是 | 指定元素 | | element | T | 是 | 指定元素 |
**返回值:** **返回值:**
...@@ -310,7 +311,7 @@ list.add(2); ...@@ -310,7 +311,7 @@ list.add(2);
list.add(4); list.add(4);
list.add(5); list.add(5);
list.add(4); list.add(4);
list.remove(2); let result = list.remove(2);
``` ```
### replaceAllElements ### replaceAllElements
...@@ -332,7 +333,7 @@ callbackfn的参数说明: ...@@ -332,7 +333,7 @@ callbackfn的参数说明:
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 当前遍历到的元素。 | | value | T | 是 | 当前遍历到的元素。 |
| index | number | 否 | 当前遍历到的下标值。 | | index | number | 否 | 当前遍历到的下标值。 |
| list | List&lt;T&gt; | 否 | 当前调用replaceAllElements方法的实例对象 | | list | List&lt;T&gt; | 否 | 当前调用replaceAllElements方法的实例对象 |
**示例:** **示例:**
...@@ -351,7 +352,7 @@ list.replaceAllElements((value, index) => { ...@@ -351,7 +352,7 @@ list.replaceAllElements((value, index) => {
``` ```
### forEach ### forEach
forEach(callbackfn: (value: T, index?: number, list?: List&lt;T&gt;) => void, forEach(callbackfn: (value: T, index?: number, List?: List&lt;T&gt;) => void,
thisArg?: Object): void thisArg?: Object): void
通过回调函数来遍历List实例对象上的元素以及元素对应的下标。 通过回调函数来遍历List实例对象上的元素以及元素对应的下标。
...@@ -360,8 +361,8 @@ thisArg?: Object): void ...@@ -360,8 +361,8 @@ thisArg?: Object): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| callbackfn | function | 是 | 回调函数 | | callbackfn | function | 是 | 回调函数 |
| thisArg | Object | 否 | callbackfn被调用时用作this值 | | thisArg | Object | 否 | callbackfn被调用时用作this值 |
callbackfn的参数说明: callbackfn的参数说明:
...@@ -369,7 +370,7 @@ callbackfn的参数说明: ...@@ -369,7 +370,7 @@ callbackfn的参数说明:
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 当前遍历到的元素。 | | value | T | 是 | 当前遍历到的元素。 |
| index | number | 否 | 当前遍历到的下标值。 | | index | number | 否 | 当前遍历到的下标值。 |
| list | List&lt;T&gt; | 否 | 当前调用forEach方法的实例对象 | | List | List&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 |
**示例:** **示例:**
...@@ -431,7 +432,7 @@ getSubList(fromIndex: number, toIndex: number): List&lt;T&gt; ...@@ -431,7 +432,7 @@ getSubList(fromIndex: number, toIndex: number): List&lt;T&gt;
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| List&lt;T&gt; | 返回List对象实例 | | List&lt;T&gt; | 返回List对象实例 |
**示例:** **示例:**
...@@ -441,9 +442,9 @@ list.add(2); ...@@ -441,9 +442,9 @@ list.add(2);
list.add(4); list.add(4);
list.add(5); list.add(5);
list.add(4); list.add(4);
list.subList(2, 4); let result = list.subList(2, 4);
list.subList(4, 3); let result1 = list.subList(4, 3);
list.subList(2, 6); let result2 = list.subList(2, 6);
``` ```
### clear ### clear
...@@ -463,7 +464,7 @@ list.clear(); ...@@ -463,7 +464,7 @@ list.clear();
``` ```
### set ### set
set(index: number, element: T): void set(index: number, element: T): T
将此 List 中指定位置的元素替换为指定元素。 将此 List 中指定位置的元素替换为指定元素。
**参数:** **参数:**
...@@ -473,6 +474,12 @@ set(index: number, element: T): void ...@@ -473,6 +474,12 @@ set(index: number, element: T): void
| index | number | 是 | 查找的下标值。 | | index | number | 是 | 查找的下标值。 |
| element | T | 是 | 用来替换的元素。 | | element | T | 是 | 用来替换的元素。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| T | 返回替换后的元素 |
**示例:** **示例:**
``` ```
...@@ -504,7 +511,7 @@ list.add(2); ...@@ -504,7 +511,7 @@ list.add(2);
list.add(4); list.add(4);
list.add(5); list.add(5);
list.add(4); list.add(4);
list.convertToArray(); let result = list.convertToArray();
``` ```
### isEmpty ### isEmpty
...@@ -526,7 +533,7 @@ list.add(2); ...@@ -526,7 +533,7 @@ list.add(2);
list.add(4); list.add(4);
list.add(5); list.add(5);
list.add(4); list.add(4);
list.isEmpty(); let result = list.isEmpty();
``` ```
### getFirst ### getFirst
...@@ -549,7 +556,7 @@ list.add(2); ...@@ -549,7 +556,7 @@ list.add(2);
list.add(4); list.add(4);
list.add(5); list.add(5);
list.add(4); list.add(4);
list.getFirst(); let result = list.getFirst();
``` ```
### getLast ### getLast
...@@ -572,7 +579,7 @@ list.add(2); ...@@ -572,7 +579,7 @@ list.add(2);
list.add(4); list.add(4);
list.add(5); list.add(5);
list.add(4); list.add(4);
list.getLast(); let result = list.getLast();
``` ```
### [Symbol.iterator] ### [Symbol.iterator]
......
...@@ -34,64 +34,7 @@ createAudioPlayer(): [AudioPlayer](#audioplayer) ...@@ -34,64 +34,7 @@ createAudioPlayer(): [AudioPlayer](#audioplayer)
**示例:** **示例:**
```js ```js
var audioPlayer = media.createAudioPlayer(); let audioPlayer = media.createAudioPlayer();
```
## media.createAudioPlayerAsync<sup>8+</sup>
createAudioPlayerAsync(callback: AsyncCallback\<[AudioPlayer](#audioplayer)>): void
异步方式创建音频播放实例。通过注册回调函数获取返回值。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------ | ---- | ------------------------------ |
| callback | AsyncCallback<[AudioPlayer](#audioplayer)> | 是 | 异步创建音频播放实例回调方法。 |
**示例:**
```js
media.createAudioPlayerAsync((error, audio) => {
if (typeof(audio) != 'undefined') {
audioPlayer = audio;
console.info('audio createAudioPlayerAsync success');
} else {
console.info(`audio createAudioPlayerAsync fail, error:${error.message}`);
}
});
```
## media.createAudioPlayerAsync<sup>8+</sup>
createAudioPlayerAsync: Promise<[AudioPlayer](#audioplayer)>
异步方式创建音频播放实例。通过Promise获取返回值。
**返回值:**
| 类型 | 说明 |
| ------------------------------------ | ----------------------------------- |
| Promise<[AudioPlayer](#audioplayer)> | 异步创建音频播放实例Promise返回值。 |
**示例:**
```js
function failureCallback(error) {
console.info(`audio failureCallback, error:${error.message}`);
}
function catchCallback(error) {
console.info(`audio catchCallback, error:${error.message}`);
}
await media.createAudioPlayerAsync.then((audio) => {
if (typeof(audio) != 'undefined') {
audioPlayer = audio;
console.info('audio createAudioPlayerAsync success');
} else {
console.info('audio createAudioPlayerAsync fail');
}
}, failureCallback).catch(catchCallback);
``` ```
## media.createVideoPlayer<sup>8+</sup> ## media.createVideoPlayer<sup>8+</sup>
...@@ -109,6 +52,8 @@ createVideoPlayer(callback: AsyncCallback\<[VideoPlayer](#videoplayer8)>): void ...@@ -109,6 +52,8 @@ createVideoPlayer(callback: AsyncCallback\<[VideoPlayer](#videoplayer8)>): void
**示例:** **示例:**
```js ```js
let videoPlayer
media.createVideoPlayer((error, video) => { media.createVideoPlayer((error, video) => {
if (typeof(video) != 'undefined') { if (typeof(video) != 'undefined') {
videoPlayer = video; videoPlayer = video;
...@@ -134,6 +79,8 @@ createVideoPlayer: Promise<[VideoPlayer](#videoplayer8)> ...@@ -134,6 +79,8 @@ createVideoPlayer: Promise<[VideoPlayer](#videoplayer8)>
**示例:** **示例:**
```js ```js
let videoPlayer
function failureCallback(error) { function failureCallback(error) {
console.info(`video failureCallback, error:${error.message}`); console.info(`video failureCallback, error:${error.message}`);
} }
...@@ -169,66 +116,9 @@ createAudioRecorder(): AudioRecorder ...@@ -169,66 +116,9 @@ createAudioRecorder(): AudioRecorder
let audiorecorder = media.createAudioRecorder(); let audiorecorder = media.createAudioRecorder();
``` ```
## media.createAudioRecorderAsync<sup>8+</sup> ## media.createVideoRecorder<sup>8+</sup>
createAudioRecorderAsync(callback: AsyncCallback\<[AudioRecorder](#audiorecorder)>): void createVideoRecorder(callback: AsyncCallback\<[VideoRecorder](#videorecorder8)>): void
异步方式创建音频录制实例。通过注册回调函数获取返回值。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------------- | ---- | ------------------------------ |
| callback | AsyncCallback<[AudioRecorder](#audiorecorder)> | 是 | 异步创建音频录制实例回调方法。 |
**示例:**
```js
media.createAudioRecorderAsync((error, audio) => {
if (typeof(audio) != 'undefined') {
audioRecorder = audio;
console.info('audio createAudioRecorderAsync success');
} else {
console.info(`audio createAudioRecorderAsync fail, error:${error.message}`);
}
});
```
## media.createAudioRecorderAsync<sup>8+</sup>
createAudioRecorderAsync: Promise<[AudioRecorder](#audiorecorder)>
异步方式创建音频录制实例。通过Promise获取返回值。
**返回值:**
| 类型 | 说明 |
| ---------------------------------------- | ----------------------------------- |
| Promise<[AudioRecorder](#audiorecorder)> | 异步创建音频录制实例Promise返回值。 |
**示例:**
```js
function failureCallback(error) {
console.info(`audio failureCallback, error:${error.message}`);
}
function catchCallback(error) {
console.info(`audio catchCallback, error:${error.message}`);
}
await media.createAudioRecorderAsync.then((audio) => {
if (typeof(audio) != 'undefined') {
audioRecorder = audio;
console.info('audio createAudioRecorderAsync success');
} else {
console.info('audio createAudioRecorderAsync fail');
}
}, failureCallback).catch(catchCallback);
```
## media.createVideoRecorderAsync<sup>8+</sup>
createVideoRecorderAsync(callback: AsyncCallback\<[VideoRecorder](#videorecorder8)>): void
异步方式创建视频录制实例。通过注册回调函数获取返回值。 异步方式创建视频录制实例。通过注册回调函数获取返回值。
...@@ -241,19 +131,21 @@ createVideoRecorderAsync(callback: AsyncCallback\<[VideoRecorder](#videorecorder ...@@ -241,19 +131,21 @@ createVideoRecorderAsync(callback: AsyncCallback\<[VideoRecorder](#videorecorder
**示例:** **示例:**
```js ```js
media.createVideoRecorderAsync((error, video) => { let videoRecorder
media.createVideoRecorder((error, video) => {
if (typeof(video) != 'undefined') { if (typeof(video) != 'undefined') {
videoRecorder = video; videoRecorder = video;
console.info('video createVideoRecorderAsync success'); console.info('video createVideoRecorder success');
} else { } else {
console.info(`video createVideoRecorderAsync fail, error:${error.message}`); console.info(`video createVideoRecorder fail, error:${error.message}`);
} }
}); });
``` ```
## media.createVideoRecorderAsync<sup>8+</sup> ## media.createVideoRecorder<sup>8+</sup>
createVideoRecorderAsync: Promise<[VideoRecorder](#videorecorder8)> createVideoRecorder: Promise<[VideoRecorder](#videorecorder8)>
异步方式创建视频录制实例。通过Promise获取返回值。 异步方式创建视频录制实例。通过Promise获取返回值。
...@@ -266,6 +158,8 @@ createVideoRecorderAsync: Promise<[VideoRecorder](#videorecorder8)> ...@@ -266,6 +158,8 @@ createVideoRecorderAsync: Promise<[VideoRecorder](#videorecorder8)>
**示例:** **示例:**
```js ```js
let videoRecorder
function failureCallback(error) { function failureCallback(error) {
console.info(`video failureCallback, error:${error.message}`); console.info(`video failureCallback, error:${error.message}`);
} }
...@@ -273,12 +167,12 @@ function catchCallback(error) { ...@@ -273,12 +167,12 @@ function catchCallback(error) {
console.info(`video catchCallback, error:${error.message}`); console.info(`video catchCallback, error:${error.message}`);
} }
await media.createVideoRecorderAsync.then((video) => { await media.createVideoRecorder.then((video) => {
if (typeof(video) != 'undefined') { if (typeof(video) != 'undefined') {
videoRecorder = video; videoRecorder = video;
console.info('video createVideoRecorderAsync success'); console.info('video createVideoRecorder success');
} else { } else {
console.info('video createVideoRecorderAsync fail'); console.info('video createVideoRecorder fail');
} }
}, failureCallback).catch(catchCallback); }, failureCallback).catch(catchCallback);
``` ```
...@@ -362,7 +256,7 @@ Codec MIME类型枚举 ...@@ -362,7 +256,7 @@ Codec MIME类型枚举
| 名称 | 类型 | 可读 | 可写 | 说明 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ----------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ | | ----------- | ------------------------- | ---- | ---- | ------------------------------------------------------------ |
| src | string | 是 | 是 | 音频媒体URI,支持当前主流的音频格式(mp4、aac、mp3、ogg)。<br>**支持路径示例**<br>1、本地绝对路径:file:///data/data/ohos.xxx.xxx/files/test.mp4<br>![zh-cn_image_0000001164217678](figures/zh-cn_image_0000001164217678.png)<br>2、http网络播放路径:开发中<br>3、hls网络播放路径:开发中<br>4、fd类型播放:开发中<br>**注意事项**<br>媒体素材需至少赋予读权限后,才可正常播放 | | src | string | 是 | 是 | 音频媒体URI,支持当前主流的音频格式(mp4、aac、mp3、ogg)。<br>**支持路径示例**<br>1、fd类型播放:fd://xxx<br>![zh-cn_image_0000001164217678](figures/zh-cn_image_url.png)<br>2、http网络播放路径:开发中<br>3、hls网络播放路径:开发中<br>**注意事项**<br>媒体素材需至少赋予读权限后,才可正常播放 |
| loop | boolean | 是 | 是 | 音频循环播放属性,设置为'true'表示循环播放。 | | loop | boolean | 是 | 是 | 音频循环播放属性,设置为'true'表示循环播放。 |
| currentTime | number | 是 | 否 | 音频的当前播放位置。 | | currentTime | number | 是 | 否 | 音频的当前播放位置。 |
| duration | number | 是 | 否 | 音频时长。 | | duration | number | 是 | 否 | 音频时长。 |
...@@ -639,7 +533,19 @@ audioPlayer.on('error', (error) => { //设置'error'事件回调 ...@@ -639,7 +533,19 @@ audioPlayer.on('error', (error) => { //设置'error'事件回调
console.info(`audio error called, errCode is ${error.code}`); console.info(`audio error called, errCode is ${error.code}`);
console.info(`audio error called, errMessage is ${error.message}`); console.info(`audio error called, errMessage is ${error.message}`);
}); });
audioPlayer.src = 'file:///data/data/ohos.xxx.xxx/files/test.mp4'; //设置src属性,并触发'dataLoad'事件回调
// 用户选择视频设置fd(本地播放)
let fdPath = 'fd://'
let path = 'data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3';
await fileIO.open(path).then(fdNumber) => {
fdPath = fdPath + '' + fdNumber;
console.info('open fd sucess fd is' + fdPath);
}, (err) => {
console.info('open fd failed err is' + err);
}),catch((err) => {
console.info('open fd failed err is' + err);
});
audioPlayer.src = fdPath; //设置src属性,并触发'dataLoad'事件回调
``` ```
### on('timeUpdate') ### on('timeUpdate')
...@@ -714,7 +620,7 @@ audioPlayer.setVolume(3); //设置volume为无效值,触发'error'事件 ...@@ -714,7 +620,7 @@ audioPlayer.setVolume(3); //设置volume为无效值,触发'error'事件
| 名称 | 类型 | 可读 | 可写 | 说明 | | 名称 | 类型 | 可读 | 可写 | 说明 |
| ----------- | ---------------------------------- | ---- | ---- | ------------------------------------------------------------ | | ----------- | ---------------------------------- | ---- | ---- | ------------------------------------------------------------ |
| url | string | 是 | 是 | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。<br>**支持路径示例**<br>1. 本地绝对路径:file:///data/data/ohos.xxx.xxx/files/test.mp4<br>![zh-cn_image_0000001164217678](figures/zh-cn_image_0000001164217678.png)<br>**注意事项**<br>媒体素材需至少赋予读权限后,才可正常播放 | | url | string | 是 | 是 | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。<br>**支持路径示例**<br>1. fd类型播放:fd://xxx<br>![zh-cn_image_0000001164217678](figures/zh-cn_image_url.png)<br>**注意事项**<br>媒体素材需至少赋予读权限后,才可正常播放 |
| loop | boolean | 是 | 是 | 视频循环播放属性,设置为'true'表示循环播放。 | | loop | boolean | 是 | 是 | 视频循环播放属性,设置为'true'表示循环播放。 |
| currentTime | number | 是 | 否 | 视频的当前播放位置。 | | currentTime | number | 是 | 否 | 视频的当前播放位置。 |
| duration | number | 是 | 否 | 视频时长,返回-1表示直播模式 | | duration | number | 是 | 否 | 视频时长,返回-1表示直播模式 |
...@@ -1530,7 +1436,7 @@ audioPlayer.getTrackDescription((error, arrlist) => { ...@@ -1530,7 +1436,7 @@ audioPlayer.getTrackDescription((error, arrlist) => {
## AudioRecorder ## AudioRecorder
音频录制管理类,用于录制音频媒体。在调用AudioRecorder的方法前,需要先通过[createAudioRecorder()](#media.createaudiorecorder) [createAudioRecorderAsync()](#media.createaudiorecorderasync8)构建一个[AudioRecorder](#audiorecorder)实例。 音频录制管理类,用于录制音频媒体。在调用AudioRecorder的方法前,需要先通过[createAudioRecorder()](#media.createaudiorecorder) 构建一个[AudioRecorder](#audiorecorder)实例。
音频录制demo可参考:[音频录制开发指导](../../media/audio-recorder.md) 音频录制demo可参考:[音频录制开发指导](../../media/audio-recorder.md)
...@@ -1555,7 +1461,7 @@ let audioRecorderConfig = { ...@@ -1555,7 +1461,7 @@ let audioRecorderConfig = {
audioSampleRate : 22050, audioSampleRate : 22050,
numberOfChannels : 2, numberOfChannels : 2,
format : media.AudioOutputFormat.AAC_ADTS, format : media.AudioOutputFormat.AAC_ADTS,
uri : 'file:///data/accounts/account_0/appdata/appdata/recorder/test.m4a', // 文件需先由调用者创建,并给予适当的权限 uri : 'fd://1', // 文件需先由调用者创建,并给予适当的权限
location : { latitude : 30, longitude : 130}, location : { latitude : 30, longitude : 130},
} }
audioRecorder.on('prepare', () => { //设置'prepare'事件回调 audioRecorder.on('prepare', () => { //设置'prepare'事件回调
...@@ -1681,7 +1587,7 @@ let audioRecorderConfig = { ...@@ -1681,7 +1587,7 @@ let audioRecorderConfig = {
audioSampleRate : 22050, audioSampleRate : 22050,
numberOfChannels : 2, numberOfChannels : 2,
format : media.AudioOutputFormat.AAC_ADTS, format : media.AudioOutputFormat.AAC_ADTS,
uri : 'file:///data/accounts/account_0/appdata/appdata/recorder/test.m4a', // 文件需先由调用者创建,并给予适当的权限 uri : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限
location : { latitude : 30, longitude : 130}, location : { latitude : 30, longitude : 130},
} }
audioRecorder.on('error', (error) => { // 设置'error'事件回调 audioRecorder.on('error', (error) => { // 设置'error'事件回调
...@@ -1750,7 +1656,7 @@ audioRecorder.prepare(); // prepare不设置参数,触发'error' ...@@ -1750,7 +1656,7 @@ audioRecorder.prepare(); // prepare不设置参数,触发'error'
| numberOfChannels | number | 否 | 音频采集声道数,默认值为2。 | | numberOfChannels | number | 否 | 音频采集声道数,默认值为2。 |
| format | [AudioOutputFormat](#audiooutputformat) | 否 | 音量输出封装格式,默认设置为MPEG_4。 | | format | [AudioOutputFormat](#audiooutputformat) | 否 | 音量输出封装格式,默认设置为MPEG_4。 |
| location<sup>8+</sup> | [Location](#location8) | 否 | 音频采集的地理位置。 | | location<sup>8+</sup> | [Location](#location8) | 否 | 音频采集的地理位置。 |
| uri | string | 是 | 音频输出URI。支持:<br/>1.&nbsp;文件的绝对路径:file:///data/data/ohos.xxx.xxx/cache/test.mp4![zh-cn_image_0000001164217678](figures/zh-cn_image_0000001164217678.png)<br/>2.&nbsp;文件的fd路径:file://1&nbsp;(fd&nbsp;number)<br/> 文件需要由调用者创建,并赋予适当的权限。 | | uri | string | 是 | 视频输出URI:fd://xx&nbsp;(fd&nbsp;number)<br/>![zh-cn_image_0000001164217678](figures/zh-cn_image_url.png) <br/>文件需要由调用者创建,并赋予适当的权限。 |
## AudioEncoder ## AudioEncoder
...@@ -1780,7 +1686,7 @@ audioRecorder.prepare(); // prepare不设置参数,触发'error' ...@@ -1780,7 +1686,7 @@ audioRecorder.prepare(); // prepare不设置参数,触发'error'
## VideoRecorder<sup>8+</sup> ## VideoRecorder<sup>8+</sup>
视频录制管理类,用于录制视频媒体。在调用VideoRecorder的方法前,需要先通过[createVideoRecorderAsync()](#media.createvideorecorderasync8)构建一个[VideoRecorder](#videorecorder8)实例。 视频录制管理类,用于录制视频媒体。在调用VideoRecorder的方法前,需要先通过[createVideoRecorder()](#media.createvideorecorder8)构建一个[VideoRecorder](#videorecorder8)实例。
视频录制demo可参考:[视频录制开发指导](../../media/video-recorder.md) 视频录制demo可参考:[视频录制开发指导](../../media/video-recorder.md)
...@@ -1823,7 +1729,7 @@ let videoConfig = { ...@@ -1823,7 +1729,7 @@ let videoConfig = {
audioSourceType : 1, audioSourceType : 1,
videoSourceType : 0, videoSourceType : 0,
profile : videoProfile, profile : videoProfile,
url : 'file:///data/accounts/account_0/appdata/appdata/recorder/test.mp4', // 文件需先由调用者创建,并给予适当的权限 url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限
orientationHint : 0, orientationHint : 0,
location : { latitude : 30, longitude : 130 }, location : { latitude : 30, longitude : 130 },
} }
...@@ -1892,7 +1798,7 @@ let videoConfig = { ...@@ -1892,7 +1798,7 @@ let videoConfig = {
audioSourceType : 1, audioSourceType : 1,
videoSourceType : 0, videoSourceType : 0,
profile : videoProfile, profile : videoProfile,
url : 'file:///data/accounts/account_0/appdata/appdata/recorder/test.mp4', // 文件需先由调用者创建,并给予适当的权限 url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限
orientationHint : 0, orientationHint : 0,
location : { latitude : 30, longitude : 130 }, location : { latitude : 30, longitude : 130 },
} }
...@@ -2347,7 +2253,7 @@ videoRecorder.on('error', (error) => { // 设置'error'事件回调 ...@@ -2347,7 +2253,7 @@ videoRecorder.on('error', (error) => { // 设置'error'事件回调
| profile | [VideoRecorderProfile](#videorecorderprofile<sup>8+</sup>) | 是 | 视频录制的profile。 | | profile | [VideoRecorderProfile](#videorecorderprofile<sup>8+</sup>) | 是 | 视频录制的profile。 |
| orientationHint | number | 否 | 录制视频的旋转角度。 | | orientationHint | number | 否 | 录制视频的旋转角度。 |
| location | [Location](#location8) | 否 | 录制视频的地理位置。 | | location | [Location](#location8) | 否 | 录制视频的地理位置。 |
| uri | string | 是 | 视频输出URI。支持:<br/>1.&nbsp;文件的绝对路径:file:///data/data/ohos.xxx.xxx/cache/test.mp4![zh-cn_image_0000001164217678](figures/zh-cn_image_0000001164217678.png)<br/>2.&nbsp;文件的fd路径:file://1&nbsp;(fd&nbsp;number)<br/> 文件需要由调用者创建,并赋予适当的权限。 | | url | string | 是 | 视频输出URL:fd://xx&nbsp;(fd&nbsp;number)<br/>![zh-cn_image_0000001164217678](figures/zh-cn_image_url.png) <br/>文件需要由调用者创建,并赋予适当的权限。 |
## AudioSourceType<sup>8+</sup> ## AudioSourceType<sup>8+</sup>
......
# 网络
> **说明:**
>
>本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```javascript
import connection from '@ohos.net.connection'
```
## connection.getDefaultNet
getDefaultNet(callback: AsyncCallback\<NetHandle>): void
获取默认网络,使用callback方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| callback | AsyncCallback\<[NetHandle](#nethandle)> | 是 | 回调函数 |
**示例:**
```javascript
connection.getDefaultNet(function (error, netHandle) {
console.log(JSON.stringify(error))
console.log(JSON.stringify(netHandle))
})
```
## connection.getDefaultNet
getDefaultNet(): Promise\<NetHandle>
获取默认网络,使用Promise方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Communication.NetManager.Core
**返回值:**
| 类型 | 说明 |
| ----- | ----- |
| Promise\<[NetHandle](#nethandle)> | 以Promise形式返回 |
**示例:**
```javascript
connection.getDefaultNet().then(function (netHandle) {
console.log(JSON.stringify(netHandle))
})
```
## connection.hasDefaultNet
hasDefaultNet(callback: AsyncCallback\<boolean>): void
判断是否有默认网络,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| callback | AsyncCallback\<boolean> | 是 | 回调函数,有默认网络返回true。 |
**示例:**
```javascript
connection.hasDefaultNet(function (error, has) {
console.log(JSON.stringify(error))
console.log(has)
})
```
## connection.hasDefaultNet
hasDefaultNet(): Promise\<boolean>
判断是否有默认网络,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Communication.NetManager.Core
**返回值:**
| 类型 | 说明 |
| ----- | ----- |
| Promise\<boolean> | 以Promise形式返回,有默认网络返回true。 |
**示例:**
```javascript
connection.hasDefaultNet().then(function (has) {
console.log(has)
})
```
## connection.getConnectionProperties
getConnectionProperties(netHandle: NetHandle, callback: AsyncCallback\<ConnectionProperties>): void
查询netHandle对应的网络的连接信息,使用callback方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| netHandle | [NetHandle](#nethandle) | 是 | 对应网络 |
| callback | AsyncCallback\<[ConnectionProperties](#connectionproperties)> | 是 | 回调函数 |
**示例:**
```javascript
connection.getDefaultNet().then(function (netHandle) {
connection.getConnectionProperties(netHandle, function (error, info) {
console.log(JSON.stringify(error))
console.log(JSON.stringify(info))
})
})
```
## connection.getConnectionProperties
getConnectionProperties(netHandle: NetHandle): Promise\<ConnectionProperties>
查询netHandle对应的网络的连接信息,使用Promise方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| netHandle | [NetHandle](#nethandle) | 是 | 对应网络 |
**返回值:**
| 类型 | 说明 |
| ----- | ----- |
| Promise\<[ConnectionProperties](#connectionproperties)> | 以Promise形式返回 |
**示例:**
```javascript
connection.getDefaultNet().then(function (netHandle) {
connection.getConnectionProperties(netHandle).then(function (info) {
console.log(JSON.stringify(info))
})
})
```
## connection.getNetCapabilities
getNetCapabilities(netHandle: NetHandle, callback: AsyncCallback\<NetCapabilities>): void
查询netHandle对应的网络的能力信息,使用callback方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| netHandle | [NetHandle](#nethandle) | 是 | 对应网络 |
| callback | AsyncCallback\<[NetCapabilities](#netcapabilities)> | 是 | 回调函数 |
**示例:**
```javascript
connection.getDefaultNet().then(function (netHandle) {
connection.getNetCapabilities(netHandle, function (error, info) {
console.log(JSON.stringify(error))
console.log(JSON.stringify(info))
})
})
```
## connection.getNetCapabilities
getNetCapabilities(netHandle: NetHandle): Promise\<NetCapabilities>
查询netHandle对应的网络的能力信息,使用Promise方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| netHandle | [NetHandle](#nethandle) | 是 | 对应网络 |
**返回值:**
| 类型 | 说明 |
| ----- | ----- |
| Promise\<[NetCapabilities](#netcapabilities)> | 以Promise形式返回 |
**示例:**
```javascript
connection.getDefaultNet().then(function (netHandle) {
connection.getNetCapabilities(netHandle).then(function (info) {
console.log(JSON.stringify(info))
})
})
```
## connection.getAddressesByName
getAddressesByName(host: string, callback: AsyncCallback\<Array\<NetAddress>>): void
使用默认网络将host解析成IP,返回所有IP,使用callback方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| host | string | 是 | 需要解析的域名 |
| callback | AsyncCallback\<Array\<[NetAddress](#netaddress)>> | 是 | 回调函数 |
**示例:**
```javascript
connection.getDefaultNet().then(function (netHandle) {
connection.getAddressesByName(netHandle, function (error, info) {
console.log(JSON.stringify(error))
console.log(JSON.stringify(info))
})
})
```
## connection.getAddressesByName
getAddressesByName(netHandle: NetHandle): Promise\<Array\<NetAddress>>
使用默认网络将host解析成IP,返回所有IP,使用Promise方式作为异步方法。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| host | string | 是 | 需要解析的域名 |
**返回值:**
| 类型 | 说明 |
| ----- | ----- |
| Promise\<Array\<[NetAddress](#netaddress)>> | 以Promise形式返回 |
**示例:**
```javascript
connection.getDefaultNet().then(function (netHandle) {
connection.getAddressesByName(netHandle).then(function (info) {
console.log(JSON.stringify(info))
})
})
```
## connection.createNetConnection
createNetConnection(netSpecifier?: NetSpecifier, timeout?: number): NetConnection
获取一个netSpecifier指定的网络的句柄。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| netSpecifier | [NetSpecifier](#netspecifier) | 否 | 指定网络的各项特征,不指定则关注默认网络。 |
| timeout | number | 否 | 获取netSpecifier指定的网络时的超时时间,仅netSpecifier存在时生效。 |
**返回值:**
| 类型 | 说明 |
| ----- | ----- |
|[NetConnection](#netconnection) | 所关注的网络的句柄 |
**示例:**
```javascript
// 关注默认网络
let netConnection1 = connection.createNetConnection()
// 关注蜂窝网络
let netConnection2 = connection.createNetConnection({
netCapabilities: {
networkCap: [0]
}
})
```
## NetConnection
网络连接的句柄
### on('netAvailable')
on(type: 'netAvailable', callback: Callback\<NetHandle>): void
监听网络可用事件。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| type | string | 是 | 监听的事件,固定'netAvailable' |
| callback | Callback\<[NetHandle](#nethandle)>> | 是 | 回调函数 |
**示例:**
```javascript
connection.createNetConnection().on('netAvailable', function (data) {
console.log(JSON.stringify(data))
})
```
### on('netCapabilitiesChange')
on(type: 'netCapabilitiesChange', callback: Callback<{ netHandle: NetHandle, netCap: NetCapabilities }>): void
监听网络能力变化事件。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| type | string | 是 | 监听的事件,固定'netCapabilitiesChange' |
| callback | Callback<{ netHandle: [NetHandle](#nethandle), netCap: [NetCapabilities](#netcapabilities) }> | 是 | 回调函数 |
**示例:**
```javascript
connection.createNetConnection().on('netCapabilitiesChange', function (data) {
console.log(JSON.stringify(data))
})
```
### on('netConnectionPropertiesChange')
on(type: 'netConnectionPropertiesChange', callback: Callback<{ netHandle: NetHandle, connectionProperties: ConnectionProperties }>): void
监听网络连接信息变化事件。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| type | string | 是 | 监听的事件,固定'netConnectionPropertiesChange' |
| callback | Callback<{ netHandle: [NetHandle](#nethandle), connectionProperties: [ConnectionProperties](#connectionproperties) }> | 是 | 回调函数 |
**示例:**
```javascript
connection.createNetConnection().on('netConnectionPropertiesChange', function (data) {
console.log(JSON.stringify(data))
})
```
### on('netLost')
on(type: 'netLost', callback: Callback\<NetHandle>): void
监听网络丢失事件。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| type | string | 是 | 监听的事件,固定'netLost' |
| callback | Callback\<[NetHandle](#nethandle)>> | 是 | 回调函数 |
**示例:**
```javascript
connection.createNetConnection().on('netLost', function (data) {
console.log(JSON.stringify(data))
})
```
### on('netUnavailable')
on(type: 'netUnavailable', callback: Callback\<void>): void
监听网络不可用事件。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| type | string | 是 | 监听的事件,固定'netUnavailable' |
| callback | Callback\<void>> | 是 | 回调函数 |
**示例:**
```javascript
connection.createNetConnection().on('netUnavailable', function (data) {
console.log(JSON.stringify(data))
})
```
### register
register(callback: AsyncCallback\<void>): void
注册网络的监听。
**需要权限**:ohos.permission.GET_NETWORK_INFO
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| callback | Callback\<void>> | 是 | 回调函数 |
**示例:**
```javascript
connection.createNetConnection().register(function (error) {
console.log(JSON.stringify(error))
})
```
### unregister
unregister(callback: AsyncCallback\<void>): void
注销网络的监听。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| callback | Callback\<void>> | 是 | 回调函数 |
**示例:**
```javascript
connection.createNetConnection().unregister(function (error) {
console.log(JSON.stringify(error))
})
```
## NetHandle
网络的句柄
| 变量 | 类型 | 说明 |
| ----- | ----- | ----- |
| netId | number | 对应网络的编号 |
### getAddressesByName
getAddressesByName(host: string, callback: AsyncCallback\<Array\<NetAddress>>): void
使用对应网络将host解析成IP,返回所有IP,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| host | string | 是 | 需要解析的域名 |
| callback | AsyncCallback\<Array\<[NetAddress](#netaddress)>> | 是 | 回调函数 |
**示例:**
```javascript
connection.getDefaultNet().then(function (netHandle) {
connection.getAddressesByName(netHandle, function (error, info) {
console.log(JSON.stringify(error))
console.log(JSON.stringify(info))
})
})
```
### getAddressesByName
getAddressesByName(netHandle: NetHandle): Promise\<Array\<NetAddress>>
使用对应网络将host解析成IP,返回所有IP,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| host | string | 是 | 需要解析的域名 |
**返回值:**
| 类型 | 说明 |
| ----- | ----- |
| Promise\<Array\<[NetAddress](#netaddress)>> | 以Promise形式返回 |
**示例:**
```javascript
connection.getDefaultNet().then(function (netHandle) {
connection.getAddressesByName(netHandle).then(function (info) {
console.log(JSON.stringify(info))
})
})
```
### getAddressByName
getAddressByName(host: string, callback: AsyncCallback\<NetAddress>): void
使用对应网络将host解析成IP,返回一个IP,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| host | string | 是 | 需要解析的域名 |
| callback | AsyncCallback\<[NetAddress](#netaddress)> | 是 | 回调函数 |
**示例:**
```javascript
connection.getDefaultNet().then(function (netHandle) {
connection.getAddressByName(netHandle, function (error, info) {
console.log(JSON.stringify(error))
console.log(JSON.stringify(info))
})
})
```
### getAddressByName
getAddressByName(netHandle: NetHandle): Promise\<NetAddress>
使用对应网络将host解析成IP,返回一个IP,使用Promise方式作为异步方法。
**系统能力**:SystemCapability.Communication.NetManager.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----- | ---- | ----- |
| host | string | 是 | 需要解析的域名 |
**返回值:**
| 类型 | 说明 |
| ----- | ----- |
| Promise\<[NetAddress](#netaddress)> | 以Promise形式返回 |
**示例:**
```javascript
connection.getDefaultNet().then(function (netHandle) {
connection.getAddressByName(netHandle).then(function (info) {
console.log(JSON.stringify(info))
})
})
```
## NetSpecifier
网络的特征。
| 变量 | 类型 | 说明 |
| ----- | ----- | ----- |
| netCapabilities | [NetCapabilities](#netcapabilities) | 网络的能力集 |
| bearerPrivateIdentifier | string | 网络标识符,WIFI网络的标识符是"wifi",蜂窝网络的标识符是"slot0"(对应SIM卡1) |
## NetCapabilities
网络的能力集。
| 变量 | 类型 | 说明 |
| ----- | ----- | ----- |
| linkUpBandwidthKbps | number | 带宽上限 |
| linkDownBandwidthKbps | number | 带宽下限 |
| networkCap | Array<[NetCap](#netcap)> | 网络具体能力 |
| bearerTypes | Array<[NetBearType](#netbearType)> | 网络类型 |
## NetCap
网络具体能力。
| 变量 | 值 | 说明 |
| ------ | ----- | ----- |
| NET_CAPABILITY_INTERNET | 12 | 联网能力 |
| NET_CAPABILITY_VALIDATED | 16 | 网络可用 |
## NetBearType
网络类型。
| 变量 | 值 | 说明 |
| ------ | ----- | ----- |
| BEARER_CELLULAR | 0 | 蜂窝网络 |
| BEARER_WIFI | 1 | WIFI网络 |
## ConnectionProperties
网络连接信息。
| 变量 | 类型 | 说明 |
| ----- | ----- | ----- |
| interfaceName | string | 网卡名称 |
| domains | string | 所属域,默认"" |
| linkAddresses | Array<[LinkAddress](#linkaddress)> | 链路信息 |
| routes | Array<[RouteInfo](#routeinfo)> | 路由信息 |
| mtu | number | 最大传输单元 |
## LinkAddress
网络链路信息。
| 变量 | 类型 | 说明 |
| ----- | ----- | ----- |
| address | [NetAddress](#netaddress) | 链路地址 |
| prefixLength | number | 地址前缀长度 |
## RouteInfo
网络路由信息。
| 变量 | 类型 | 说明 |
| ----- | ----- | ----- |
| interface | string | 网卡名称 |
| destination | [LinkAddress](#linkaddress) | 目的地址 |
| gateway | [NetAddress](#netaddress) | 网关地址 |
| hasGateway | boolean | 是否有网关 |
| isDefaultRoute | boolean | 是否为默认路由 |
## NetAddress
地址。
| 变量 | 类型 | 说明 |
| ----- | ----- | ----- |
| address | string | 一个IPv4地址或者IPv6地址 |
| family | number | IPv4 = 1, IPv6 = 2, 默认IPv4 |
| port | number | 端口,取值范围\[0, 65535] |
...@@ -2001,61 +2001,6 @@ Notification.isSupportTemplate(templateName).then((data) => { ...@@ -2001,61 +2001,6 @@ Notification.isSupportTemplate(templateName).then((data) => {
## Notiifcation.isNotificationEnabledSelf
isNotificationEnabledSelf(callback: AsyncCallback\<boolean\>): void
查询应用通知是否使能。
- 参数
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------ | ---- | -------------------------- |
| callback | AsyncCallback\<boolean\> | 是 | 查询模板是否存在的回调函数 |
- 示例
```javascript
function isNotificationEnabledSelfCallback(err, enabled) {
console.info("isNotificationEnabledSelf");
if (err.code) {
console.info("failed " + JSON.stringify(err));
} else {
console.info("isNotificationEnabledSelf " + JSON.stringify(enabled));
}
};
Notification.isNotificationEnabledSelf(isNotificationEnabledSelfCallback);
```
## Notiifcation.isNotificationEnabledSelf
isNotificationEnabledSelf(): Promise\<boolean\>
查询应用通知是否使能。
- 返回值
| 类型 | 说明 |
| ------------------ | --------------- |
| Promise\<boolean\> | Promise方式返回 |
- 示例
```javascript
Notification.isNotificationEnabledSelf()
.then((enabled) => {
console.info("isNotificationEnabledSelf " + JSON.stringify(enabled));
})
.catch((err) => {
console.info("isNotificationEnabledSelf failed " + JSON.stringify(err));
});
```
## Notification.requestEnabledNotification ## Notification.requestEnabledNotification
requestEnabledNotification(callback: AsyncCallback\<boolean\>): void requestEnabledNotification(callback: AsyncCallback\<boolean\>): void
......
...@@ -53,7 +53,7 @@ isEmpty(): boolean ...@@ -53,7 +53,7 @@ isEmpty(): boolean
``` ```
const plainArray = new PlainArray(); const plainArray = new PlainArray();
plainArray.isEmpty(); let result = plainArray.isEmpty();
``` ```
...@@ -67,13 +67,13 @@ has(key: number): boolean ...@@ -67,13 +67,13 @@ has(key: number): boolean
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | number | 是 | 查询的元素。 | | key | number | 是 | 指定key。 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| boolean | 包含指定元素返回true,否则返回false。 | | boolean | 包含指定key返回true,否则返回false。 |
**示例:** **示例:**
...@@ -81,7 +81,7 @@ has(key: number): boolean ...@@ -81,7 +81,7 @@ has(key: number): boolean
let plainArray = new PlainArray(); let plainArray = new PlainArray();
plainArray.has(1); plainArray.has(1);
plainArray.add(1, "sddfhf"); plainArray.add(1, "sddfhf");
plainArray.has(1); let result1 = plainArray.has(1);
``` ```
...@@ -109,7 +109,7 @@ get(key: number): T ...@@ -109,7 +109,7 @@ get(key: number): T
let plainArray = new PlainArray(); let plainArray = new PlainArray();
plainArray.add(1, "sddfhf"); plainArray.add(1, "sddfhf");
plainArray.add(2, "sffdfhf"); plainArray.add(2, "sffdfhf");
plainArray.get(1); let result = plainArray.get(1);
``` ```
...@@ -123,13 +123,13 @@ getIndexOfKey(key: number): number; ...@@ -123,13 +123,13 @@ getIndexOfKey(key: number): number;
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | number | 是 | 被查找的元素。 | | key | number | 是 | 指定key。 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| number | 返回指定元素第一次出现时的下标值,查找失败返回-1。 | | number | 返回指定key第一次出现时的下标值,查找失败返回-1。 |
**示例:** **示例:**
...@@ -137,7 +137,7 @@ getIndexOfKey(key: number): number; ...@@ -137,7 +137,7 @@ getIndexOfKey(key: number): number;
let plainArray = new PlainArray(); let plainArray = new PlainArray();
plainArray.add(1, "sddfhf"); plainArray.add(1, "sddfhf");
plainArray.add(2, "sffdfhf"); plainArray.add(2, "sffdfhf");
plainArray.getIndexOfKey("sdfs"); let result = plainArray.getIndexOfKey("sdfs");
``` ```
...@@ -151,7 +151,7 @@ getIndexOfValue(value: T): number; ...@@ -151,7 +151,7 @@ getIndexOfValue(value: T): number;
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 被查找的元素。 | | value | T | 是 | 指定元素。 |
**返回值:** **返回值:**
...@@ -165,7 +165,7 @@ getIndexOfValue(value: T): number; ...@@ -165,7 +165,7 @@ getIndexOfValue(value: T): number;
let plainArray = new PlainArray(); let plainArray = new PlainArray();
plainArray.add(1, "sddfhf"); plainArray.add(1, "sddfhf");
plainArray.add(2, "sffdfhf"); plainArray.add(2, "sffdfhf");
plainArray.getIndexOfValue("sddfhf"); let result = plainArray.getIndexOfValue("sddfhf");
``` ```
...@@ -179,13 +179,13 @@ getKeyAt(index: number): number; ...@@ -179,13 +179,13 @@ getKeyAt(index: number): number;
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| index | number | 是 | 所查找的下标。 | | index | number | 是 | 指定下标。 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| number | 返回该下标对应的元素键值对中key值,失败返回undefined。 | | number | 返回该下标对应的元素键值对中key值,失败返回-1。 |
**示例:** **示例:**
...@@ -193,17 +193,41 @@ getKeyAt(index: number): number; ...@@ -193,17 +193,41 @@ getKeyAt(index: number): number;
let plainArray = new PlainArray(); let plainArray = new PlainArray();
plainArray.add(1, "sddfhf"); plainArray.add(1, "sddfhf");
plainArray.add(2, "sffdfhf"); plainArray.add(2, "sffdfhf");
plainArray.getKeyAt(1); let result = plainArray.getKeyAt(1);
``` ```
### getValueAt
getValueAt(index: number): T
查找指定下标元素键值对中Value值,否则返回undefined。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定下标。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| T | 返回该下标对应的元素键值对中key值,失败返回undefined。 |
**示例:**
```
let plainArray = new PlainArray();
plainArray.add(1, "sddfhf");
plainArray.add(2, "sffdfhf");
let result = plainArray.getKeyAt(1);
```
### clone ### clone
clone(): PlainArray&lt;T&gt; clone(): PlainArray&lt;T&gt;
克隆一个实例,并返回克隆后的实例。 克隆一个实例,并返回克隆后的实例。修改克隆后的实例并不会影响原实例。
修改克隆后的实例并不会影响原实例。
**返回值:** **返回值:**
...@@ -223,7 +247,7 @@ let newPlainArray = plainArray.clone(); ...@@ -223,7 +247,7 @@ let newPlainArray = plainArray.clone();
### add ### add
add(key: number, value: T): boolean add(key: number, value: T): void
向容器中添加一组数据。 向容器中添加一组数据。
...@@ -234,12 +258,6 @@ add(key: number, value: T): boolean ...@@ -234,12 +258,6 @@ add(key: number, value: T): boolean
| key | number | 是 | 添加成员数据的键名。 | | key | number | 是 | 添加成员数据的键名。 |
| value | T | 是 | 添加成员数据的值。 | | value | T | 是 | 添加成员数据的值。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 成功添加返回true,否则返回false。 |
**示例:** **示例:**
``` ```
...@@ -252,13 +270,13 @@ plainArray.add(1, "sddfhf"); ...@@ -252,13 +270,13 @@ plainArray.add(1, "sddfhf");
remove(key: number): T remove(key: number): T
删除指定元素。 删除指定key对应元素。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | number | 是 | 根据key删除的指定元素。 | | key | number | 是 | 指定key。 |
**返回值:** **返回值:**
...@@ -273,14 +291,15 @@ let plainArray = new PlainArray(); ...@@ -273,14 +291,15 @@ let plainArray = new PlainArray();
plainArray.add(1, "sddfhf"); plainArray.add(1, "sddfhf");
plainArray.add(2, "sffdfhf"); plainArray.add(2, "sffdfhf");
plainArray.remove(2); plainArray.remove(2);
let result = plainArray.remove(2);
``` ```
### removeAt ### removeAt
removeAt(index: number): boolean; removeAt(index: number): T
删除指定下标的元素。 删除指定下标对应的元素。
**参数:** **参数:**
...@@ -292,7 +311,7 @@ removeAt(index: number): boolean; ...@@ -292,7 +311,7 @@ removeAt(index: number): boolean;
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| boolean | 成功删除元素返回true,否则返回false。 | | T | 返回删除的元素。 |
**示例:** **示例:**
...@@ -301,6 +320,7 @@ let plainArray = new PlainArray(); ...@@ -301,6 +320,7 @@ let plainArray = new PlainArray();
plainArray.add(1, "sddfhf"); plainArray.add(1, "sddfhf");
plainArray.add(2, "sffdfhf"); plainArray.add(2, "sffdfhf");
plainArray.removeAt(1); plainArray.removeAt(1);
let result = plainArray.removeAt(1);
``` ```
...@@ -329,22 +349,22 @@ removeRangeFrom(index: number, size: number): number ...@@ -329,22 +349,22 @@ removeRangeFrom(index: number, size: number): number
let plainArray = new PlainArray(); let plainArray = new PlainArray();
plainArray.add(1, "sddfhf"); plainArray.add(1, "sddfhf");
plainArray.add(2, "sffdfhf"); plainArray.add(2, "sffdfhf");
plainArray.removeAt(1, 3); let result = plainArray.removeRangeFrom(1, 3);
``` ```
### setValueAt ### setValueAt
setValueAt(index: number, newValue: T): void setValueAt(index: number, value: T): void
向容器中具体位置替换键值对中的值。 替换容器中指定下标对应键值对中的键值。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| index | number | 是 | 指定替换数据下标。 | | index | number | 是 | 指定替换数据下标。 |
| newValue | T | 是 | 替换键值对中的值。 | | value | T | 是 | 替换键值对中的值。 |
**示例:** **示例:**
...@@ -374,7 +394,7 @@ toString(): String ...@@ -374,7 +394,7 @@ toString(): String
let plainArray = new PlainArray(); let plainArray = new PlainArray();
plainArray.add(1, "sddfhf"); plainArray.add(1, "sddfhf");
plainArray.add(2, "sffdfhf"); plainArray.add(2, "sffdfhf");
plainArray.toString(); let result = plainArray.toString();
``` ```
...@@ -396,7 +416,7 @@ plainArray.clear(); ...@@ -396,7 +416,7 @@ plainArray.clear();
### forEach ### forEach
forEach(callbackfn: (value: T, key?: number, plainArray?: PlainArray<number, T>) => void, thisArg?: Object): void forEach(callbackfn: (value: T, key?: number, PlainArray?: PlainArray<number, T>) => void, thisArg?: Object): void
通过回调函数来遍历实例对象上的元素以及元素对应的下标。 通过回调函数来遍历实例对象上的元素以及元素对应的下标。
......
...@@ -60,12 +60,13 @@ add(element: T): boolean ...@@ -60,12 +60,13 @@ add(element: T): boolean
``` ```
let queue = new Queue(); let queue = new Queue();
queue.add("a"); let result = queue.add("a");
let result1 = queue.add(1);
queue.add(1); queue.add(1);
let b = [1, 2, 3]; let b = [1, 2, 3];
queue.add(b); queue.add(b);
let c = {name : "lala", age : "13"}; let c = {name : "lala", age : "13"};
queue.add(false); let result3 = queue.add(c);
``` ```
### pop ### pop
...@@ -89,7 +90,7 @@ queue.add(4); ...@@ -89,7 +90,7 @@ queue.add(4);
queue.add(5); queue.add(5);
queue.add(2); queue.add(2);
queue.add(4); queue.add(4);
queue.pop(); let result = queue.pop();
``` ```
### getFirst ### getFirst
...@@ -112,11 +113,11 @@ queue.add(2); ...@@ -112,11 +113,11 @@ queue.add(2);
queue.add(4); queue.add(4);
queue.add(5); queue.add(5);
queue.add(2); queue.add(2);
queue.getFirst(); let result = queue.getFirst();
``` ```
### forEach ### forEach
forEach(callbackfn: (value: T, index?: number, queue?: Queue&lt;T&gt;) => void, forEach(callbackfn: (value: T, index?: number, Queue?: Queue&lt;T&gt;) => void,
thisArg?: Object): void thisArg?: Object): void
通过回调函数来遍历Queue实例对象上的元素以及元素对应的下标。 通过回调函数来遍历Queue实例对象上的元素以及元素对应的下标。
...@@ -132,9 +133,9 @@ callbackfn的参数说明: ...@@ -132,9 +133,9 @@ callbackfn的参数说明:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 当前遍历到的元素 | | value | T | 是 | 当前遍历到的元素 |
| index | number | 否 | 当前遍历到的下标值 | | index | number | 否 | 当前遍历到的下标值 |
| queue | Queue&lt;T&gt; | 否 | 当前调用forEach方法的实例对象 | | Queue | Queue&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 |
**示例:** **示例:**
...@@ -161,7 +162,7 @@ queue.forEach((value, index) => { ...@@ -161,7 +162,7 @@ queue.forEach((value, index) => {
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| IterableIterator&lt;T&gt; | 返回一个迭代器 | | IterableIterator&lt;T&gt; | 返回一个迭代器 |
**示例:** **示例:**
``` ```
......
...@@ -19,9 +19,9 @@ import settings from '@ohos.settings'; ...@@ -19,9 +19,9 @@ import settings from '@ohos.settings';
## settings.getUri ## settings.getUriSync
getUri(name: string): string getUriSync(name: string): string
获取数据项的URI。 获取数据项的URI。
...@@ -38,13 +38,13 @@ getUri(name: string): string ...@@ -38,13 +38,13 @@ getUri(name: string): string
- 示例: - 示例:
``` ```
// 获取数据项的URI // 获取数据项的URI
let urivar = settings.getUri('settings.screen.brightness'); let urivar = settings.getUriSync('settings.screen.brightness');
``` ```
## settings.getValue ## settings.getValueSync
getValue(dataAbilityHelper: DataAbilityHelper, name: string, defValue: string): string getValueSync(dataAbilityHelper: DataAbilityHelper, name: string, defValue: string): string
获取数据项的值。 获取数据项的值。
...@@ -66,18 +66,18 @@ getValue(dataAbilityHelper: DataAbilityHelper, name: string, defValue: string): ...@@ -66,18 +66,18 @@ getValue(dataAbilityHelper: DataAbilityHelper, name: string, defValue: string):
//获取数据项亮度的值(该数据项在数据库中已存在) //获取数据项亮度的值(该数据项在数据库中已存在)
let brightness = 'settings.screen.brightness'; let brightness = 'settings.screen.brightness';
let uri = settings.getUri(brightness); let uri = settings.getUriSync(brightness);
let helper = featureAbility.acquireDataAbilityHelper(uri); let helper = featureAbility.acquireDataAbilityHelper(uri);
let value = settings.getValue(helper, brightness, '10'); let value = settings.getValueSync(helper, brightness, '10');
``` ```
## settings.setValue ## settings.setValueSync
setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: string): boolean setValueSync(dataAbilityHelper: DataAbilityHelper, name: string, value: string): boolean
设置数据项的值。 设置数据项的值。
如果数据库中已经存在该数据项,则setValue方法将更新该数据项的值;如果数据库中尚未存在该数据项,则setValue方法将向数据库中插入该数据项。 如果数据库中已经存在该数据项,则setValueSync方法将更新该数据项的值;如果数据库中尚未存在该数据项,则setValueSync方法将向数据库中插入该数据项。
使用此方法需获取ohos.permission.WRITE_SYSTEM_SETTING权限。 使用此方法需获取ohos.permission.WRITE_SYSTEM_SETTING权限。
...@@ -97,9 +97,9 @@ setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: string): boo ...@@ -97,9 +97,9 @@ setValue(dataAbilityHelper: DataAbilityHelper, name: string, value: string): boo
``` ```
import featureAbility from '@ohos.featureAbility'; import featureAbility from '@ohos.featureAbility';
//更新数据项亮度的值(该数据项在数据库中已存在,故setValue方法将更新该数据项的值) //更新数据项亮度的值(该数据项在数据库中已存在,故setValueSync方法将更新该数据项的值)
let brightness = 'settings.screen.brightness'; let brightness = 'settings.screen.brightness';
let uri = settings.getUri(brightness); let uri = settings.getUriSync(brightness);
let helper = featureAbility.acquireDataAbilityHelper(uri); let helper = featureAbility.acquireDataAbilityHelper(uri);
let ret = settings.setValue(helper, brightness, '100'); let ret = settings.setValueSync(helper, brightness, '100');
``` ```
...@@ -60,12 +60,12 @@ push(item: T): T ...@@ -60,12 +60,12 @@ push(item: T): T
``` ```
let stack = new Stack(); let stack = new Stack();
stack.push("a"); let result = stack.push("a");
stack.push(1); let result1 = stack.push(1);
let b = [1, 2, 3]; let b = [1, 2, 3];
stack.push(b); stack.push(b);
let c = {name : "lala", age : "13"}; let c = {name : "lala", age : "13"};
stack.push(false); let result3 = stack.push(c);
``` ```
### pop ### pop
...@@ -89,7 +89,7 @@ stack.push(4); ...@@ -89,7 +89,7 @@ stack.push(4);
stack.push(5); stack.push(5);
stack.push(2); stack.push(2);
stack.push(4); stack.push(4);
stack.pop(); let result = stack.pop();
``` ```
### peek ### peek
...@@ -112,7 +112,7 @@ stack.push(2); ...@@ -112,7 +112,7 @@ stack.push(2);
stack.push(4); stack.push(4);
stack.push(5); stack.push(5);
stack.push(2); stack.push(2);
stack.peek(); let result = stack.peek();
``` ```
### locate ### locate
...@@ -141,7 +141,7 @@ stack.push(2); ...@@ -141,7 +141,7 @@ stack.push(2);
stack.push(4); stack.push(4);
stack.push(5); stack.push(5);
stack.push(2); stack.push(2);
stack.locate(2); let result = stack.locate(2);
``` ```
### forEach ### forEach
...@@ -197,7 +197,7 @@ stack.push(2); ...@@ -197,7 +197,7 @@ stack.push(2);
stack.push(4); stack.push(4);
stack.push(5); stack.push(5);
stack.push(4); stack.push(4);
stack.isEmpty(); let result = stack.isEmpty();
``` ```
### [Symbol.iterator] ### [Symbol.iterator]
......
...@@ -21,7 +21,7 @@ SystemCapability.Utils.Lang ...@@ -21,7 +21,7 @@ SystemCapability.Utils.Lang
| 名称 | 参数类型 | 可读 | 可写 | 说明 | | 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- | -------- |
| length | number | 是 | 否 | TreeMap的元素个数 | | length | number | 是 | 否 | TreeMap的元素个数 |
### constructor ### constructor
...@@ -59,7 +59,7 @@ isEmpty(): boolean; ...@@ -59,7 +59,7 @@ isEmpty(): boolean;
``` ```
const treeMap = new TreeMap(); const treeMap = new TreeMap();
treeMap.isEmpty(); let result = treeMap.isEmpty();
``` ```
...@@ -73,21 +73,21 @@ hasKey(key: K): boolean; ...@@ -73,21 +73,21 @@ hasKey(key: K): boolean;
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | K | 是 | 指定元素 | | key | K | 是 | 指定key |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| boolean | 包含指定元素返回true,否则返回false。 | | boolean | 包含指定key返回true,否则返回false。 |
**示例:** **示例:**
``` ```
let treeMap = new TreeMap(); let treeMap = new TreeMap();
treeMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result = treeMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
treeMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result1 = treeMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
``` ```
...@@ -95,7 +95,7 @@ treeMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); ...@@ -95,7 +95,7 @@ treeMap.hasKey("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
hasValue(value: V): boolean hasValue(value: V): boolean
判断此容器中是否含有该指定value 判断此容器中是否含有该指定元素
**参数:** **参数:**
...@@ -113,9 +113,9 @@ hasValue(value: V): boolean ...@@ -113,9 +113,9 @@ hasValue(value: V): boolean
``` ```
let treeMap = new TreeMap(); let treeMap = new TreeMap();
treeMap.hasValue(123); let result = treeMap.hasValue(123);
treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
treeMap.hasValue(123); let result1 = treeMap.hasValue(123);
``` ```
...@@ -129,7 +129,7 @@ get(key: K): V ...@@ -129,7 +129,7 @@ get(key: K): V
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | K | 是 | 查找的指定key。 | | key | K | 是 | 指定key。 |
**返回值:** **返回值:**
...@@ -143,7 +143,7 @@ get(key: K): V ...@@ -143,7 +143,7 @@ get(key: K): V
let treeMap = new TreeMap(); let treeMap = new TreeMap();
treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
treeMap.set("sdfs", 356); treeMap.set("sdfs", 356);
treeMap.get("sdfs"); let result = treeMap.get("sdfs");
``` ```
...@@ -151,13 +151,13 @@ treeMap.get("sdfs"); ...@@ -151,13 +151,13 @@ treeMap.get("sdfs");
getFirstKey(): K; getFirstKey(): K;
获取容器中排序第一的数据 获取容器中排序第一的key
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| K | 返回排序第一的数据。 | | K | 返回排序第一的key。 |
**示例:** **示例:**
...@@ -173,13 +173,13 @@ let result = treeMap.getFirstKey(); ...@@ -173,13 +173,13 @@ let result = treeMap.getFirstKey();
getLastKey(): K; getLastKey(): K;
获取容器中排序最后的数据 获取容器中排序最后的key
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| K | 返回排序最后的数据 | | K | 返回排序最后的key |
**示例:** **示例:**
...@@ -195,13 +195,13 @@ let result = treeMap.getLastKey(); ...@@ -195,13 +195,13 @@ let result = treeMap.getLastKey();
setAll(map: TreeMap<K, V>): void setAll(map: TreeMap<K, V>): void
将一个treemap中的所有元素组添加到另一个treemap中。 将一个treemap中的所有元素组添加到另一个treeMap中。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| map | TreeMap<K, V> | 是 | 被添加元素的TreeMap。 | | map | TreeMap<K, V> | 是 | 被添加元素的treeMap。 |
**示例:** **示例:**
...@@ -230,7 +230,7 @@ set(key: K, value: V): Object ...@@ -230,7 +230,7 @@ set(key: K, value: V): Object
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| Object | 返回添加后的treemap | | Object | 返回添加后的treeMap |
**示例:** **示例:**
...@@ -244,13 +244,13 @@ treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); ...@@ -244,13 +244,13 @@ treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
remove(key: K): V; remove(key: K): V;
删除指定的元素。 删除指定key对应的元素。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | K | 是 | 依据key指定删除的元素。 | | key | K | 是 | 指定key。 |
**返回值:** **返回值:**
...@@ -268,9 +268,9 @@ treeMap.remove("sdfs"); ...@@ -268,9 +268,9 @@ treeMap.remove("sdfs");
``` ```
### getLowerByKey ### getLowerKey
getLowerByKey(key: K): K getLowerKey(key: K): K
获取容器中比传入key排序靠前一位的key。 获取容器中比传入key排序靠前一位的key。
...@@ -293,13 +293,13 @@ let treeMap = new TreeMap(); ...@@ -293,13 +293,13 @@ let treeMap = new TreeMap();
treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
treeMap.set("sdfs", 356); treeMap.set("sdfs", 356);
treeMap.set("zdfgsd", 356); treeMap.set("zdfgsd", 356);
let result = treeMap.getLowerByKey("sdfs"); let result = treeMap.getLowerKey("sdfs");
``` ```
### getHigherByKey ### getHigherKey
getHigherByKey(key: K): K getHigherKey(key: K): K
获取容器中比传入key排序靠后一位的key。 获取容器中比传入key排序靠后一位的key。
...@@ -322,12 +322,11 @@ let treeMap = new TreeMap(); ...@@ -322,12 +322,11 @@ let treeMap = new TreeMap();
treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123); treeMap.set("Ahfbrgrbgnutfodgorrogorgrogofdfdf", 123);
treeMap.set("sdfs", 356); treeMap.set("sdfs", 356);
treeMap.set("zdfgsd", 356); treeMap.set("zdfgsd", 356);
let result = treeMap.getHigherByKey("sdfs"); let result = treeMap.getHigherKey("sdfs");
``` ```
### replace ### replace
replace(key: K, value: V): boolean replace(key: K, newValue: V): boolean
对TreeMap中一组数据进行更新(替换)。 对TreeMap中一组数据进行更新(替换)。
...@@ -335,21 +334,21 @@ replace(key: K, value: V): boolean ...@@ -335,21 +334,21 @@ replace(key: K, value: V): boolean
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | K | 是 | 依据key指定替换的元素。 | | key | K | 是 | 指定key。 |
| value | V | 是 | 成员数据的新值。 | | newValue | V | 是 | 替换的元素。 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| boolean | 成功对已有数据进行替换返回true,否则返回false。 | | boolean | 对指定key对应的元素替换成功返回true,否则返回false。 |
**示例:** **示例:**
``` ```
let treeMap = new TreeMap(); let treeMap = new TreeMap();
treeMap.set("sdfs", 123); treeMap.set("sdfs", 123);
treeMap.replace("sdfs", 357); let result = treeMap.replace("sdfs", 357);
``` ```
...@@ -425,7 +424,7 @@ while(temp != undefined) { ...@@ -425,7 +424,7 @@ while(temp != undefined) {
### forEach ### forEach
forEach(callbackfn: (value: V, key?: K, treeMap?: TreeMap<K, V>) => void, thisArg?: Object): void forEach(callbackfn: (value: V, key?: K, map?: TreeMap<K, V>) => void, thisArg?: Object): void
通过回调函数来遍历实例对象上的元素以及元素对应的下标。 通过回调函数来遍历实例对象上的元素以及元素对应的下标。
...@@ -441,7 +440,7 @@ callbackfn的参数说明: ...@@ -441,7 +440,7 @@ callbackfn的参数说明:
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | V | 是 | 当前遍历到的元素键值对的值。 | | value | V | 是 | 当前遍历到的元素键值对的值。 |
| key | K | 是 | 当前遍历到的元素键值对的键。 | | key | K | 是 | 当前遍历到的元素键值对的键。 |
| treeMap | TreeMap<K, V> | 否 | 当前调用forEach方法的实例对象。 | | map | TreeMap<K, V> | 否 | 当前调用forEach方法的实例对象。 |
**示例:** **示例:**
...@@ -459,7 +458,7 @@ treeMap.forEach((value, key) => { ...@@ -459,7 +458,7 @@ treeMap.forEach((value, key) => {
entries(): IterableIterator<[K, V]> entries(): IterableIterator<[K, V]>
返回包含此映射中包含的元素的新迭代器对象。 返回包含此映射中包含的键值对的新迭代器对象。
**返回值:** **返回值:**
......
...@@ -59,7 +59,7 @@ isEmpty(): boolean ...@@ -59,7 +59,7 @@ isEmpty(): boolean
``` ```
const treeSet = new TreeSet(); const treeSet = new TreeSet();
treeSet.isEmpty(); let result = treeSet.isEmpty();
``` ```
...@@ -67,7 +67,7 @@ treeSet.isEmpty(); ...@@ -67,7 +67,7 @@ treeSet.isEmpty();
has(value: T): boolean has(value: T): boolean
判断此容器中是否含有该指定value 判断此容器中是否含有该指定元素
**参数:** **参数:**
...@@ -87,7 +87,7 @@ has(value: T): boolean ...@@ -87,7 +87,7 @@ has(value: T): boolean
let treeSet = new TreeSet(); let treeSet = new TreeSet();
treeSet.has(123); treeSet.has(123);
treeSet.add(123); treeSet.add(123);
treeSet.has(123); let result1 = treeSet.has(123);
``` ```
...@@ -156,13 +156,13 @@ add(value: T): boolean ...@@ -156,13 +156,13 @@ add(value: T): boolean
``` ```
let treeSet = new TreeSet(); let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result = treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
``` ```
### remove ### remove
remove(key: T): boolean remove(value: T): boolean;
删除指定的元素。 删除指定的元素。
...@@ -170,7 +170,7 @@ remove(key: T): boolean ...@@ -170,7 +170,7 @@ remove(key: T): boolean
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| key | T | 是 | 指定的元素。 | | value | T | 是 | 指定的元素。 |
**返回值:** **返回值:**
...@@ -184,7 +184,7 @@ remove(key: T): boolean ...@@ -184,7 +184,7 @@ remove(key: T): boolean
let treeSet = new TreeSet(); let treeSet = new TreeSet();
treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); treeSet.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
treeSet.add("sdfs"); treeSet.add("sdfs");
treeSet.remove("sdfs"); let result = treeSet.remove("sdfs");
``` ```
...@@ -233,7 +233,7 @@ getHigherValue(key: T): T ...@@ -233,7 +233,7 @@ getHigherValue(key: T): T
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| T | 返回排序中传入元素后一位的数据 | | T | 返回排序中传入元素后一位的数据 |
**示例:** **示例:**
...@@ -278,7 +278,7 @@ popLast(): T ...@@ -278,7 +278,7 @@ popLast(): T
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| T | 返回删除的数据 | | T | 返回删除的数据 |
**返回值:** **返回值:**
...@@ -335,7 +335,7 @@ while(temp != undefined) { ...@@ -335,7 +335,7 @@ while(temp != undefined) {
### forEach ### forEach
forEach(callbackfn: (value: T, key?: T, treeSet?: TreeSet&lt;T&gt;) => void, thisArg?: Object): void forEach(callbackfn: (value: T, key?: T, set?: TreeSet&lt;T&gt;) => void, thisArg?: Object): void
通过回调函数来遍历实例对象上的元素以及元素对应的下标。 通过回调函数来遍历实例对象上的元素以及元素对应的下标。
...@@ -351,7 +351,7 @@ callbackfn的参数说明: ...@@ -351,7 +351,7 @@ callbackfn的参数说明:
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 当前遍历到的元素。 | | value | T | 是 | 当前遍历到的元素。 |
| key | T | 否 | 当前遍历到的元素(和value相同)。 | | key | T | 否 | 当前遍历到的元素(和value相同)。 |
| treeSet | TreeSet&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 | | set | TreeSet&lt;T&gt; | 否 | 当前调用forEach方法的实例对象。 |
**示例:** **示例:**
...@@ -369,7 +369,7 @@ treeSet.forEach((value, key) => { ...@@ -369,7 +369,7 @@ treeSet.forEach((value, key) => {
entries(): IterableIterator<[T, T]> entries(): IterableIterator<[T, T]>
返回包含此映射中包含的元素的新迭代器对象。 返回包含此映射中包含的键值对的新迭代器对象。
**返回值:** **返回值:**
......
...@@ -25,6 +25,8 @@ getUpdater(upgradeFile: string, updateType?: UpdateTypes): Updater ...@@ -25,6 +25,8 @@ getUpdater(upgradeFile: string, updateType?: UpdateTypes): Updater
获取本地升级Updater。 获取本地升级Updater。
**系统能力**:SystemCapability.Updater.update_service
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -54,6 +56,8 @@ getUpdaterForOther(upgradeFile: string, device: string, updateType?: UpdateTypes ...@@ -54,6 +56,8 @@ getUpdaterForOther(upgradeFile: string, device: string, updateType?: UpdateTypes
获取升级对象给待升级设备。 获取升级对象给待升级设备。
**系统能力**:SystemCapability.Updater.update_service
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -84,6 +88,8 @@ getUpdaterFromOther(upgradeFile: string, device: string, updateType?: UpdateType ...@@ -84,6 +88,8 @@ getUpdaterFromOther(upgradeFile: string, device: string, updateType?: UpdateType
获取其它设备为本设备升级的Updater。 获取其它设备为本设备升级的Updater。
**系统能力**:SystemCapability.Updater.update_service
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -116,6 +122,8 @@ getNewVersionInfo(callback: AsyncCallback\<NewVersionInfo>): void ...@@ -116,6 +122,8 @@ getNewVersionInfo(callback: AsyncCallback\<NewVersionInfo>): void
获取新版本信息,使用callback方式作为异步方法。 获取新版本信息,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Updater.update_service
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -139,6 +147,8 @@ getNewVersionInfo(): Promise\<NewVersionInfo> ...@@ -139,6 +147,8 @@ getNewVersionInfo(): Promise\<NewVersionInfo>
获取新版本信息,使用promise方式作为异步方法。 获取新版本信息,使用promise方式作为异步方法。
**系统能力**:SystemCapability.Updater.update_service
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
...@@ -163,6 +173,8 @@ checkNewVersion(callback: AsyncCallback\<NewVersionInfo>): void ...@@ -163,6 +173,8 @@ checkNewVersion(callback: AsyncCallback\<NewVersionInfo>): void
检查新版本,使用callback方式作为异步方法。 检查新版本,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Updater.update_service
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -186,6 +198,8 @@ checkNewVersion(): Promise\<NewVersionInfo> ...@@ -186,6 +198,8 @@ checkNewVersion(): Promise\<NewVersionInfo>
检查新版本,使用promise方式作为异步方法。 检查新版本,使用promise方式作为异步方法。
**系统能力**:SystemCapability.Updater.update_service
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
...@@ -210,6 +224,8 @@ verifyUpdatePackage(upgradeFile: string, certsFile: string): void ...@@ -210,6 +224,8 @@ verifyUpdatePackage(upgradeFile: string, certsFile: string): void
升级前检查升级包是否有效。 升级前检查升级包是否有效。
**系统能力**:SystemCapability.Updater.update_service
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -232,6 +248,8 @@ rebootAndCleanUserData(): Promise\<number> ...@@ -232,6 +248,8 @@ rebootAndCleanUserData(): Promise\<number>
重启设备并清除用户分区数据。 重启设备并清除用户分区数据。
**系统能力**:SystemCapability.Updater.update_service
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
...@@ -254,6 +272,8 @@ rebootAndCleanUserData(callback: AsyncCallback\<number>): void ...@@ -254,6 +272,8 @@ rebootAndCleanUserData(callback: AsyncCallback\<number>): void
重启设备并清除用户分区数据。 重启设备并清除用户分区数据。
**系统能力**:SystemCapability.Updater.update_service
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -274,6 +294,8 @@ applyNewVersion(): Promise\<number> ...@@ -274,6 +294,8 @@ applyNewVersion(): Promise\<number>
重启设备后安装升级包。 重启设备后安装升级包。
**系统能力**:SystemCapability.Updater.update_service
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
...@@ -296,6 +318,8 @@ applyNewVersion(callback: AsyncCallback\<number>): void ...@@ -296,6 +318,8 @@ applyNewVersion(callback: AsyncCallback\<number>): void
重启设备后安装升级包。 重启设备后安装升级包。
**系统能力**:SystemCapability.Updater.update_service
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -316,6 +340,8 @@ download(): void ...@@ -316,6 +340,8 @@ download(): void
下载新版本,并监听下载进程。 下载新版本,并监听下载进程。
**系统能力**:SystemCapability.Updater.update_service
**示例:** **示例:**
``` ```
...@@ -333,6 +359,8 @@ updater.upgrade():void ...@@ -333,6 +359,8 @@ updater.upgrade():void
启动升级。 启动升级。
**系统能力**:SystemCapability.Updater.update_service
**示例:** **示例:**
``` ```
...@@ -350,6 +378,8 @@ setUpdatePolicy(policy: UpdatePolicy, callback: AsyncCallback\<number>): void ...@@ -350,6 +378,8 @@ setUpdatePolicy(policy: UpdatePolicy, callback: AsyncCallback\<number>): void
设置升级策略,使用callback方式作为异步方法。 设置升级策略,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Updater.update_service
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -379,6 +409,8 @@ setUpdatePolicy(policy: UpdatePolicy): Promise\<number> ...@@ -379,6 +409,8 @@ setUpdatePolicy(policy: UpdatePolicy): Promise\<number>
设置升级策略,使用promise方式作为异步方法。 设置升级策略,使用promise方式作为异步方法。
**系统能力**:SystemCapability.Updater.update_service
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -414,6 +446,8 @@ getUpdatePolicy(callback: AsyncCallback\<UpdatePolicy>): void ...@@ -414,6 +446,8 @@ getUpdatePolicy(callback: AsyncCallback\<UpdatePolicy>): void
获取升级策略信息,使用callback方式作为异步方法。 获取升级策略信息,使用callback方式作为异步方法。
**系统能力**:SystemCapability.Updater.update_service
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
...@@ -437,6 +471,8 @@ getUpdatePolicy(): Promise\<UpdatePolicy> ...@@ -437,6 +471,8 @@ getUpdatePolicy(): Promise\<UpdatePolicy>
获取升级策略,通过promise方式作为异步方法。 获取升级策略,通过promise方式作为异步方法。
**系统能力**:SystemCapability.Updater.update_service
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
...@@ -461,8 +497,8 @@ update.getUpdatePolicy().then(value => { ...@@ -461,8 +497,8 @@ update.getUpdatePolicy().then(value => {
| 参数名 | 说明 | | 参数名 | 说明 |
| ------ | -------- | | ------ | -------- |
| OTA | OTA升级 | | OTA | OTA升级 <br/>**系统能力**:SystemCapability.Updater.update_service|
| patch | 补丁升级 | | patch | 补丁升级 <br/>**系统能力**:SystemCapability.Updater.update_service|
## PackageTypes ## PackageTypes
...@@ -470,13 +506,13 @@ update.getUpdatePolicy().then(value => { ...@@ -470,13 +506,13 @@ update.getUpdatePolicy().then(value => {
| 参数名 | 默认值 | 说明 | | 参数名 | 默认值 | 说明 |
| -------------------- | ------ | -------------- | | -------------------- | ------ | -------------- |
| PACKAGE_TYPE_NORMAL | 1 | 通用升级包 | | PACKAGE_TYPE_NORMAL | 1 | 通用升级包 <br/>**系统能力**:SystemCapability.Updater.update_service|
| PACKAGE_TYPE_BASE | 2 | 基础升级包 | | PACKAGE_TYPE_BASE | 2 | 基础升级包 <br/>**系统能力**:SystemCapability.Updater.update_service|
| PACKAGE_TYPE_CUST | 3 | 定制升级包 | | PACKAGE_TYPE_CUST | 3 | 定制升级包 <br/>**系统能力**:SystemCapability.Updater.update_service|
| PACKAGE_TYPE_PRELOAD | 4 | 预装升级包 | | PACKAGE_TYPE_PRELOAD | 4 | 预装升级包 <br/>**系统能力**:SystemCapability.Updater.update_service|
| PACKAGE_TYPE_COTA | 5 | 参数配置升级包 | | PACKAGE_TYPE_COTA | 5 | 参数配置升级包 <br/>**系统能力**:SystemCapability.Updater.update_service|
| PACKAGE_TYPE_VERSION | 6 | 版本升级包 | | PACKAGE_TYPE_VERSION | 6 | 版本升级包 <br/>**系统能力**:SystemCapability.Updater.update_service|
| PACKAGE_TYPE_PATCH | 7 | 补丁包 | | PACKAGE_TYPE_PATCH | 7 | 补丁包 <br/>**系统能力**:SystemCapability.Updater.update_service|
## InstallMode ## InstallMode
...@@ -484,9 +520,9 @@ update.getUpdatePolicy().then(value => { ...@@ -484,9 +520,9 @@ update.getUpdatePolicy().then(value => {
| 参数名 | 默认值 | 说明 | | 参数名 | 默认值 | 说明 |
| ------------------- | ------ | -------- | | ------------------- | ------ | -------- |
| INSTALL_MODE_NORMAL | 0 | 正常升级 | | INSTALL_MODE_NORMAL | 0 | 正常升级 <br/>**系统能力**:SystemCapability.Updater.update_service|
| INSTALL_MODE_NIGHT | 1 | 夜间升级 | | INSTALL_MODE_NIGHT | 1 | 夜间升级 <br/>**系统能力**:SystemCapability.Updater.update_service|
| INSTALL_MODE_AUTO | 2 | 自动升级 | | INSTALL_MODE_AUTO | 2 | 自动升级 <br/>**系统能力**:SystemCapability.Updater.update_service|
## NewVersionStatus ## NewVersionStatus
...@@ -494,10 +530,10 @@ update.getUpdatePolicy().then(value => { ...@@ -494,10 +530,10 @@ update.getUpdatePolicy().then(value => {
| 参数名 | 默认值 | 说明 | | 参数名 | 默认值 | 说明 |
| ------------------- | ------ | ---------------- | | ------------------- | ------ | ---------------- |
| VERSION_STATUS_ERR | -1 | 检测版本时出错 | | VERSION_STATUS_ERR | -1 | 检测版本时出错 <br/>**系统能力**:SystemCapability.Updater.update_service|
| VERSION_STATUS_NEW | 0 | 检测到新版本 | | VERSION_STATUS_NEW | 0 | 检测到新版本 <br/>**系统能力**:SystemCapability.Updater.update_service|
| VERSION_STATUS_NONE | 1 | 没有检测到新版本 | | VERSION_STATUS_NONE | 1 | 没有检测到新版本 <br/>**系统能力**:SystemCapability.Updater.update_service|
| VERSION_STATUS_BUSY | 2 | 检测版本时忙 | | VERSION_STATUS_BUSY | 2 | 检测版本时忙 <br/>**系统能力**:SystemCapability.Updater.update_service|
## UpdatePolicy ## UpdatePolicy
...@@ -505,9 +541,9 @@ update.getUpdatePolicy().then(value => { ...@@ -505,9 +541,9 @@ update.getUpdatePolicy().then(value => {
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| ------------------- | --------------------------- | ---- | -------------- | | ------------------- | --------------------------- | ---- | -------------- |
| autoDownload | bool | 是 | 自动升级开关 | | autoDownload | bool | 是 | 自动升级开关 <br/>**系统能力**:SystemCapability.Updater.update_service|
| installMode | [InstallMode](#installmode) | 是 | 安装模式 | | installMode | [InstallMode](#installmode) | 是 | 安装模式 <br/>**系统能力**:SystemCapability.Updater.update_service|
| autoUpgradeInterval | Array\<number> | 是 | 自动升级时间段 | | autoUpgradeInterval | Array\<number> | 是 | 自动升级时间段 <br/>**系统能力**:SystemCapability.Updater.update_service|
## NewVersionInfo ## NewVersionInfo
...@@ -515,10 +551,10 @@ update.getUpdatePolicy().then(value => { ...@@ -515,10 +551,10 @@ update.getUpdatePolicy().then(value => {
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| --------------- | ------------------------------------------- | ---- | -------- | | --------------- | ------------------------------------------- | ---- | -------- |
| status | [NewVersionStatus](#newversionstatus) | 是 | 升级状态 | | status | [NewVersionStatus](#newversionstatus) | 是 | 升级状态 <br/>**系统能力**:SystemCapability.Updater.update_service|
| errMsg | string | 是 | 错误信息 | | errMsg | string | 是 | 错误信息 <br/>**系统能力**:SystemCapability.Updater.update_service|
| checkResults | Array<[CheckResult](#checkresult)> | 是 | 检测结果 | | checkResults | Array<[CheckResult](#checkresult)> | 是 | 检测结果 <br/>**系统能力**:SystemCapability.Updater.update_service|
| descriptionInfo | Array\<[DescriptionInfo](#descriptioninfo)> | 是 | 描述信息 | | descriptionInfo | Array\<[DescriptionInfo](#descriptioninfo)> | 是 | 描述信息 <br/>**系统能力**:SystemCapability.Updater.update_service|
## CheckResult ## CheckResult
...@@ -526,12 +562,12 @@ update.getUpdatePolicy().then(value => { ...@@ -526,12 +562,12 @@ update.getUpdatePolicy().then(value => {
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| ------------- | ----------------------------- | ---- | ------------ | | ------------- | ----------------------------- | ---- | ------------ |
| versionName | string | 是 | 版本名称 | | versionName | string | 是 | 版本名称 <br/>**系统能力**:SystemCapability.Updater.update_service|
| versionCode | number | 是 | 版本编码 | | versionCode | number | 是 | 版本编码 <br/>**系统能力**:SystemCapability.Updater.update_service|
| size | number | 是 | 版本大小 | | size | number | 是 | 版本大小 <br/>**系统能力**:SystemCapability.Updater.update_service|
| verifyInfo | string | 是 | 版本校验信息 | | verifyInfo | string | 是 | 版本校验信息 <br/>**系统能力**:SystemCapability.Updater.update_service|
| packageType | [PackageTypes](#packagetypes) | 是 | 版本类型 | | packageType | [PackageTypes](#packagetypes) | 是 | 版本类型 <br/>**系统能力**:SystemCapability.Updater.update_service|
| descriptionId | string | 是 | 版本描述信息 | | descriptionId | string | 是 | 版本描述信息 <br/>**系统能力**:SystemCapability.Updater.update_service|
## DescriptionInfo ## DescriptionInfo
...@@ -539,5 +575,5 @@ update.getUpdatePolicy().then(value => { ...@@ -539,5 +575,5 @@ update.getUpdatePolicy().then(value => {
| 名称 | 参数类型 | 必填 | 说明 | | 名称 | 参数类型 | 必填 | 说明 |
| ------------- | -------- | ---- | ----------------- | | ------------- | -------- | ---- | ----------------- |
| descriptionId | string | 是 | 版本versionId信息 | | descriptionId | string | 是 | 版本versionId信息 <br/>**系统能力**:SystemCapability.Updater.update_service|
| content | string | 是 | 版本changelog信息 | | content | string | 是 | 版本changelog信息 <br/>**系统能力**:SystemCapability.Updater.update_service|
\ No newline at end of file \ No newline at end of file
...@@ -48,24 +48,24 @@ add(element: T): boolean ...@@ -48,24 +48,24 @@ add(element: T): boolean
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| element | T | 是 | 添加进去的元素 | | element | T | 是 | 添加进去的元素 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| boolean | 插入成功返回true,失败返回false | | boolean | 插入成功返回true,失败返回false |
**示例:** **示例:**
``` ```
let vector = new Vector(); let vector = new Vector();
vector.add("a"); let result = vector.add("a");
vector.add(1); let result1 = vector.add(1);
let b = [1, 2, 3]; let b = [1, 2, 3];
vector.add(b); vector.add(b);
let c = {name : "lala", age : "13"}; let c = {name : "lala", age : "13"};
vector.add(false); let result3 = vector.add(c);
``` ```
### insert ### insert
...@@ -78,8 +78,8 @@ insert(element: T, index: number): void ...@@ -78,8 +78,8 @@ insert(element: T, index: number): void
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| element | T | 是 | 被插入的元素 | | element | T | 是 | 被插入的元素 |
| index | number | 是 | 被插入的位置索引 | | index | number | 是 | 被插入的位置索引 |
**示例:** **示例:**
...@@ -100,21 +100,21 @@ has(element: T): boolean ...@@ -100,21 +100,21 @@ has(element: T): boolean
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| element | T | 是 | 指定的元素 | | element | T | 是 | 指定的元素 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| boolean | 是否包含指定元素 | | boolean | 是否包含指定元素 |
**示例:** **示例:**
``` ```
let vector = new Vector(); let vector = new Vector();
vector.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result = vector.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
vector.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); vector.add("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
vector.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf"); let result = vector.has("Ahfbrgrbgnutfodgorrogorgrogofdfdf");
``` ```
### getIndexOf ### getIndexOf
...@@ -127,13 +127,13 @@ getIndexOf(element: T): number ...@@ -127,13 +127,13 @@ getIndexOf(element: T): number
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| element | T | 是 | 指定的元素 | | element | T | 是 | 指定的元素 |
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| number | 返回指定元素第一次出现时的下标值,查找失败返回-1 | | number | 返回指定元素第一次出现时的下标值,查找失败返回-1 |
**示例:** **示例:**
...@@ -146,7 +146,7 @@ vector.add(2); ...@@ -146,7 +146,7 @@ vector.add(2);
vector.add(1); vector.add(1);
vector.add(2); vector.add(2);
vector.add(4); vector.add(4);
vector.getIndexOf(2); let result = vector.getIndexOf(2);
``` ```
### getLastIndexOf ### getLastIndexOf
...@@ -178,7 +178,7 @@ vector.add(2); ...@@ -178,7 +178,7 @@ vector.add(2);
vector.add(1); vector.add(1);
vector.add(2); vector.add(2);
vector.add(4); vector.add(4);
vector.getLastIndexOf(2); let result = vector.getLastIndexOf(2);
``` ```
### removeByIndex ### removeByIndex
...@@ -208,7 +208,7 @@ vector.add(4); ...@@ -208,7 +208,7 @@ vector.add(4);
vector.add(5); vector.add(5);
vector.add(2); vector.add(2);
vector.add(4); vector.add(4);
vector.removeByIndex(2); let result = vector.removeByIndex(2);
``` ```
### remove ### remove
...@@ -237,7 +237,7 @@ vector.add(2); ...@@ -237,7 +237,7 @@ vector.add(2);
vector.add(4); vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
vector.remove(2); let result = vector.remove(2);
``` ```
### removeByRange ### removeByRange
...@@ -282,9 +282,9 @@ callbackfn的参数说明: ...@@ -282,9 +282,9 @@ callbackfn的参数说明:
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| value | T | 是 | 当前遍历到的元素 | | value | T | 是 | 当前遍历到的元素 |
| index | number | 否 | 当前遍历到的下标值 | | index | number | 否 | 当前遍历到的下标值 |
| vector | Vector&lt;T&gt; | 否 | 当前调用replaceAllElements方法的实例对象 | | vector | Vector&lt;T&gt; | 否 | 当前调用replaceAllElements方法的实例对象 |
**示例:** **示例:**
...@@ -377,8 +377,8 @@ subVector(fromIndex: number, toIndex: number): Vector&lt;T&gt; ...@@ -377,8 +377,8 @@ subVector(fromIndex: number, toIndex: number): Vector&lt;T&gt;
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| fromIndex | number | 是 | 起始下标 | | fromIndex | number | 是 | 起始下标 |
| toIndex | number | 是 | 终止下标 | | toIndex | number | 是 | 终止下标 |
**返回值:** **返回值:**
...@@ -394,9 +394,9 @@ vector.add(2); ...@@ -394,9 +394,9 @@ vector.add(2);
vector.add(4); vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
vector.subVector(2,4); let result = vector.subVector(2,4);
vector.subVector(4,3); let result1 = vector.subVector(4,3);
vector.subVector(2,6); let result2 = vector.subVector(2,6);
``` ```
...@@ -419,15 +419,13 @@ vector.clear(); ...@@ -419,15 +419,13 @@ vector.clear();
### clone ### clone
clone(): Vector&lt;T&gt; clone(): Vector&lt;T&gt;
克隆一个与Vector相同的实例,并返回克隆后的实例。 克隆一个与Vector相同的实例,并返回克隆后的实例。修改克隆后的实例并不会影响原实例。
修改克隆后的实例并不会影响原实例。
**返回值:** **返回值:**
| 类型 | 说明 | | 类型 | 说明 |
| -------- | -------- | | -------- | -------- |
| Vector&lt;T&gt; | 返回Vector对象实例 | | Vector&lt;T&gt; | 返回Vector对象实例 |
**示例:** **示例:**
...@@ -437,7 +435,7 @@ vector.add(2); ...@@ -437,7 +435,7 @@ vector.add(2);
vector.add(4); vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
vector.clone(); let result = vector.clone();
``` ```
### getCapacity ### getCapacity
...@@ -459,7 +457,7 @@ vector.add(2); ...@@ -459,7 +457,7 @@ vector.add(2);
vector.add(4); vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
vector.getCapacity(); let result = vector.getCapacity();
``` ```
### convertToArray ### convertToArray
...@@ -481,7 +479,7 @@ vector.add(2); ...@@ -481,7 +479,7 @@ vector.add(2);
vector.add(4); vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
vector.convertToArray(); let result = vector.convertToArray();
``` ```
### isEmpty ### isEmpty
...@@ -503,7 +501,7 @@ vector.add(2); ...@@ -503,7 +501,7 @@ vector.add(2);
vector.add(4); vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
vector.isEmpty(); let result = vector.isEmpty();
``` ```
### increaseCapacityTo ### increaseCapacityTo
...@@ -565,13 +563,12 @@ vector.add(2); ...@@ -565,13 +563,12 @@ vector.add(2);
vector.add(4); vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
vector.toSting(); let result = vector.toSting();
``` ```
### copyToArray ### copyToArray
copyToArray(array: Array&lt;T&gt;): void; copyToArray(array: Array&lt;T&gt;): void
将Vector实例中的元素按照下标复制到指定数组。 将Vector实例中的元素按照下标复制到指定数组。
**参数:** **参数:**
...@@ -589,7 +586,7 @@ vector.add(4); ...@@ -589,7 +586,7 @@ vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
let array = ["a", "b", "c", "d", "e", "f"]; let array = ["a", "b", "c", "d", "e", "f"];
vector.copyToArray(array); let result = vector.copyToArray(array);
``` ```
### getFirstElement ### getFirstElement
...@@ -612,7 +609,7 @@ vector.add(2); ...@@ -612,7 +609,7 @@ vector.add(2);
vector.add(4); vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
vector.getFirstElement(); let result = vector.getFirstElement();
``` ```
### getLastElement ### getLastElement
...@@ -635,7 +632,7 @@ vector.add(2); ...@@ -635,7 +632,7 @@ vector.add(2);
vector.add(4); vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
vector.getLastElement(); let result = vector.getLastElement();
``` ```
### getLastIndexFrom ### getLastIndexFrom
...@@ -666,12 +663,12 @@ vector.add(4); ...@@ -666,12 +663,12 @@ vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
vector.add("a"); vector.add("a");
vector.getLastIndexFrom(4,3); let result = vector.getLastIndexFrom(4,3);
``` ```
### getIndexFrom ### getIndexFrom
getIndexFrom(element: T, index: number): number; getIndexFrom(element: T, index: number): number
从指定索引向前搜索,返回该元素的下标索引。 从指定索引向前搜索,返回该元素的下标索引。
...@@ -697,11 +694,11 @@ vector.add(4); ...@@ -697,11 +694,11 @@ vector.add(4);
vector.add(5); vector.add(5);
vector.add(4); vector.add(4);
vector.add("a"); vector.add("a");
vector.getIndexFrom(4, 3); let result = vector.getIndexFrom(4, 3);
``` ```
### setLength ### setLength
setLength(newSize: number): void; setLength(newSize: number): void
设置Vector实例的元素个数。 设置Vector实例的元素个数。
...@@ -723,6 +720,59 @@ vector.setLength(8); ...@@ -723,6 +720,59 @@ vector.setLength(8);
vector.setLength(2); vector.setLength(2);
``` ```
### get
get(index: number): T
根据下标值获取Vector实例中的元素。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 查找的下标值。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| T | 返回获取到的元素。 |
**示例:**
```
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.get(2);
```
### set
set(index: number, element: T): T
替换指定下标对应的元素。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| index | number | 是 | 指定下标。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| T | 返回替换后的元素。 |
**示例:**
```
let vector = new Vector();
vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
let result = vector.set(2, "A");
```
### [Symbol.iterator] ### [Symbol.iterator]
[Symbol.iterator]\(): IterableIterator&lt;T&gt; [Symbol.iterator]\(): IterableIterator&lt;T&gt;
......
# WebGL # webgl
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
WebGL标准图形API,对应OpenGL ES 2.0特性集。更多信息请参考[WebgGL™标准](https://www.khronos.org/registry/webgl/specs/latest/1.0/) WebGL标准图形API,对应OpenGL ES 2.0特性集。更多信息请参考[WebGL™标准](https://www.khronos.org/registry/webgl/specs/latest/1.0/)
## 导入模块 ## 导入模块
``` ```
import webgl from 'ohos.webglnapi' import webgl from '@ohos.webglnapi'
``` ```
## 系统能力 ## 调用方式
SystemCapability.Graphic.Graphic2D.WebGL hml内创建canvas,示例如下:
## 调用方式 ```
<div class="container">
<canvas ref="canvas1" style="width : 400px; height : 200px; background-color : lightyellow;"></canvas>
<button class="btn-button" onclick="BtnDraw2D">BtnDraw2D</button>
</div>
```
js内获取canvas实例,示例如下:
``` ```
// 获取canvas组件实例 // 获取canvas组件实例
const el = this.$refs.canvas const el = this.$refs.canvas1;
// 从canvas组件实例获取WebGL上下文 // 从canvas组件实例获取WebGL上下文
const gl = el.getContext('webgl'); const gl = el.getContext('webgl');
// 调用WebGL API // 调用WebGL API
gl.clearColor(0.0, 0.0, 0.0, 1.0); gl.clearColor(0.0, 0.0, 0.0, 1.0);
gl.flush();
``` ```
## GLenum ## Type
| 名称 | 类型 |
| -------- | -------- |
| GLenum | number |
## GLboolean
| 名称 | 类型 |
| -------- | -------- |
| GLboolean | boolean |
## GLbitfield
| 名称 | 类型 |
| -------- | -------- |
| GLbitfield | number |
## GLbyte
| 名称 | 类型 |
| -------- | -------- |
| GLbyte | number |
## GLshort
| 名称 | 类型 |
| -------- | -------- |
| GLshort | number |
## GLint
| 名称 | 类型 |
| -------- | -------- |
| GLint | number |
## GLsizei
| 名称 | 类型 |
| -------- | -------- |
| GLsizei | number |
## GLintptr
| 名称 | 类型 |
| -------- | -------- |
| GLintptr | number |
## GLsizeiptr
| 名称 | 类型 |
| -------- | -------- |
| GLsizeiptr | number |
## GLubyte
| 名称 | 类型 |
| -------- | -------- |
| GLubyte | number |
## GLushort
| 名称 | 类型 |
| -------- | -------- |
| GLushort | number |
**表1** Type
## GLuint | 名称 | 类型 | 说明 |
| -------- | -------- | -------- |
| 名称 | 类型 | | GLenum | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| -------- | -------- | | GLboolean | boolean | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| GLuint | number | | GLbitfield | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| GLbyte | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| GLshort | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
## GLfloat | GLint | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| GLsizei | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| 名称 | 类型 | | GLintptr | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| -------- | -------- | | GLsizeiptr | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| GLfloat | number | | GLubyte | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| GLushort | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| GLuint | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
## GLclampf | GLfloat | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| GLclampf | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| 名称 | 类型 | | TexImageSource | ImageData | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| -------- | -------- | | Float32List | array | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| GLclampf | number | | Int32List | array | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLPowerPreference | string | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
## TexImageSource
## Interface
| 名称 | 类型 |
| -------- | -------- | **表2** Interface
| TexImageSource | ImageData |
| 名称 | 说明 |
## Float32List
| 名称 | 类型 |
| -------- | -------- |
| Float32List | array |
## Int32List
| 名称 | 类型 |
| -------- | -------- |
| Int32List | array |
## WebGLPowerPreference
| 名称 | 类型 |
| -------- | -------- | | -------- | -------- |
| WebGLPowerPreference | string | | [WebGLContextAttributes](#webglcontextattributes) | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLBuffer | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLFrameBuffer | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
## webgl.WebGLContextAttributes | WebGLProgram | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLRenderbuffer | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLShader | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLTexture | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| WebGLUniformLocation | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| [WebGLActiveInfo](#webglactiveinfo) | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| [WebGLShaderPrecisionFormat](#webglshaderprecisionformat) | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| [WebGLRenderingContextBase](#webglrenderingcontextbase) | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
| [WebGLRenderingContextOverloads](#webglrenderingcontextoverloads) | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL |
## WebGLContextAttributes
WebGLContextAttributes WebGLContextAttributes
| 名称 | 参数类型 | 必填 | | 名称 | 参数类型 | 必填 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| alpha | boolean | 否 | | alpha | boolean | 否 |
| depth | boolean | 否 | | depth | boolean | 否 |
...@@ -178,374 +103,339 @@ WebGLContextAttributes ...@@ -178,374 +103,339 @@ WebGLContextAttributes
| desynchronized | boolean | 否 | | desynchronized | boolean | 否 |
## webgl.WebGLBuffer ## WebGLActiveInfo
WebGLBuffer
## webgl.WebGLFrameBuffer
WebGLFrameBuffer
## webgl.WebGLProgram
WebGLProgram
## webgl.WebGLRenderbuffer
WebGLRenderbuffer
## webgl.WebGLShader
WebGLShader
## webgl.WebGLTexture
WebGLTexture
## webgl.WebGLUniformLocation
WebGLUniformLocation
## webgl.WebGLActiveInfo
WebGLActiveInfo WebGLActiveInfo
| 名称 | 参数类型 | 必填 | | 名称 | 参数类型 | 必填 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| size | [GLint](#glint) | 是 | | size | GLint | 是 |
| type | [GLenum](#glenum) | 是 | | type | GLenum | 是 |
| name | string | 是 | | name | string | 是 |
## webgl.WebGLShaderPrecisionFormat ## WebGLShaderPrecisionFormat
WebGLShaderPrecisionFormat WebGLShaderPrecisionFormat
| 名称 | 参数类型 | 必填 | | 名称 | 参数类型 | 必填 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| rangeMin | [GLint](#glint) | 是 | | rangeMin | GLint | 是 |
| rangeMax | [GLint](#glint) | 是 | | rangeMax | GLint | 是 |
| precision | [GLint](#glint) | 是 | | precision | GLint | 是 |
## webgl.WebGLRenderingContextBase ## WebGLRenderingContextBase
WebGLRenderingContextBase WebGLRenderingContextBase
### 属性 ### 属性
| 名称 | 参数类型 | 必填 | | 名称 | 参数类型 | 必填 |
| -------- | -------- | -------- | | -------- | -------- | -------- |
| DEPTH_BUFFER_BIT | [GLenum](#glenum) | 是 | | DEPTH_BUFFER_BIT | GLenum | 是 |
| STENCIL_BUFFER_BIT | [GLenum](#glenum) | 是 | | STENCIL_BUFFER_BIT | GLenum | 是 |
| COLOR_BUFFER_BIT | [GLenum](#glenum) | 是 | | COLOR_BUFFER_BIT | GLenum | 是 |
| POINTS | [GLenum](#glenum) | 是 | | POINTS | GLenum | 是 |
| LINES | [GLenum](#glenum) | 是 | | LINES | GLenum | 是 |
| LINE_LOOP | [GLenum](#glenum) | 是 | | LINE_LOOP | GLenum | 是 |
| LINE_STRIP | [GLenum](#glenum) | 是 | | LINE_STRIP | GLenum | 是 |
| TRIANGLES | [GLenum](#glenum) | 是 | | TRIANGLES | GLenum | 是 |
| TRIANGLE_STRIP | [GLenum](#glenum) | 是 | | TRIANGLE_STRIP | GLenum | 是 |
| TRIANGLE_FAN | [GLenum](#glenum) | 是 | | TRIANGLE_FAN | GLenum | 是 |
| ZERO | [GLenum](#glenum) | 是 | | ZERO | GLenum | 是 |
| ONE | [GLenum](#glenum) | 是 | | ONE | GLenum | 是 |
| SRC_COLOR | [GLenum](#glenum) | 是 | | SRC_COLOR | GLenum | 是 |
| ONE_MINUS_SRC_COLOR | [GLenum](#glenum) | 是 | | ONE_MINUS_SRC_COLOR | GLenum | 是 |
| SRC_ALPHA | [GLenum](#glenum) | 是 | | SRC_ALPHA | GLenum | 是 |
| ONE_MINUS_SRC_ALPHA | [GLenum](#glenum) | 是 | | ONE_MINUS_SRC_ALPHA | GLenum | 是 |
| DST_ALPHA | [GLenum](#glenum) | 是 | | DST_ALPHA | GLenum | 是 |
| ONE_MINUS_DST_ALPHA | [GLenum](#glenum) | 是 | | ONE_MINUS_DST_ALPHA | GLenum | 是 |
| DST_COLOR | [GLenum](#glenum) | 是 | | DST_COLOR | GLenum | 是 |
| ONE_MINUS_DST_COLOR | [GLenum](#glenum) | 是 | | ONE_MINUS_DST_COLOR | GLenum | 是 |
| SRC_ALPHA_SATURATE | [GLenum](#glenum) | 是 | | SRC_ALPHA_SATURATE | GLenum | 是 |
| FUNC_ADD | [GLenum](#glenum) | 是 | | FUNC_ADD | GLenum | 是 |
| BLEND_EQUATION | [GLenum](#glenum) | 是 | | BLEND_EQUATION | GLenum | 是 |
| BLEND_EQUATION_RGB | [GLenum](#glenum) | 是 | | BLEND_EQUATION_RGB | GLenum | 是 |
| BLEND_EQUATION_ALPHA | [GLenum](#glenum) | 是 | | BLEND_EQUATION_ALPHA | GLenum | 是 |
| FUNC_SUBTRACT | [GLenum](#glenum) | 是 | | FUNC_SUBTRACT | GLenum | 是 |
| FUNC_REVERSE_SUBTRACT | [GLenum](#glenum) | 是 | | FUNC_REVERSE_SUBTRACT | GLenum | 是 |
| BLEND_DST_RGB | [GLenum](#glenum) | 是 | | BLEND_DST_RGB | GLenum | 是 |
| BLEND_SRC_RGB | [GLenum](#glenum) | 是 | | BLEND_SRC_RGB | GLenum | 是 |
| BLEND_DST_ALPHA | [GLenum](#glenum) | 是 | | BLEND_DST_ALPHA | GLenum | 是 |
| BLEND_SRC_ALPHA | [GLenum](#glenum) | 是 | | BLEND_SRC_ALPHA | GLenum | 是 |
| CONSTANT_COLOR | [GLenum](#glenum) | 是 | | CONSTANT_COLOR | GLenum | 是 |
| ONE_MINUS_CONSTANT_COLOR | [GLenum](#glenum) | 是 | | ONE_MINUS_CONSTANT_COLOR | GLenum | 是 |
| CONSTANT_ALPHA | [GLenum](#glenum) | 是 | | CONSTANT_ALPHA | GLenum | 是 |
| ONE_MINUS_CONSTANT_ALPHA | [GLenum](#glenum) | 是 | | ONE_MINUS_CONSTANT_ALPHA | GLenum | 是 |
| BLEND_COLOR | [GLenum](#glenum) | 是 | | BLEND_COLOR | GLenum | 是 |
| ARRAY_BUFFER | [GLenum](#glenum) | 是 | | ARRAY_BUFFER | GLenum | 是 |
| ELEMENT_ARRAY_BUFFER | [GLenum](#glenum) | 是 | | ELEMENT_ARRAY_BUFFER | GLenum | 是 |
| ARRAY_BUFFER_BINDING | [GLenum](#glenum) | 是 | | ARRAY_BUFFER_BINDING | GLenum | 是 |
| ELEMENT_ARRAY_BUFFER_BINDING | [GLenum](#glenum) | 是 | | ELEMENT_ARRAY_BUFFER_BINDING | GLenum | 是 |
| STREAM_DRAW | [GLenum](#glenum) | 是 | | STREAM_DRAW | GLenum | 是 |
| STATIC_DRAW | [GLenum](#glenum) | 是 | | STATIC_DRAW | GLenum | 是 |
| DYNAMIC_DRAW | [GLenum](#glenum) | 是 | | DYNAMIC_DRAW | GLenum | 是 |
| BUFFER_SIZE | [GLenum](#glenum) | 是 | | BUFFER_SIZE | GLenum | 是 |
| BUFFER_USAGE | [GLenum](#glenum) | 是 | | BUFFER_USAGE | GLenum | 是 |
| CURRENT_VERTEX_ATTRIB | [GLenum](#glenum) | 是 | | CURRENT_VERTEX_ATTRIB | GLenum | 是 |
| FRONT | [GLenum](#glenum) | 是 | | FRONT | GLenum | 是 |
| BACK | [GLenum](#glenum) | 是 | | BACK | GLenum | 是 |
| FRONT_AND_BACK | [GLenum](#glenum) | 是 | | FRONT_AND_BACK | GLenum | 是 |
| CULL_FACE | [GLenum](#glenum) | 是 | | CULL_FACE | GLenum | 是 |
| BLEND | [GLenum](#glenum) | 是 | | BLEND | GLenum | 是 |
| DITHER | [GLenum](#glenum) | 是 | | DITHER | GLenum | 是 |
| STENCIL_TEST | [GLenum](#glenum) | 是 | | STENCIL_TEST | GLenum | 是 |
| DEPTH_TEST | [GLenum](#glenum) | 是 | | DEPTH_TEST | GLenum | 是 |
| SCISSOR_TEST | [GLenum](#glenum) | 是 | | SCISSOR_TEST | GLenum | 是 |
| POLYGON_OFFSET_FILL | [GLenum](#glenum) | 是 | | POLYGON_OFFSET_FILL | GLenum | 是 |
| SAMPLE_ALPHA_TO_COVERAGE | [GLenum](#glenum) | 是 | | SAMPLE_ALPHA_TO_COVERAGE | GLenum | 是 |
| SAMPLE_COVERAGE | [GLenum](#glenum) | 是 | | SAMPLE_COVERAGE | GLenum | 是 |
| NO_ERROR | [GLenum](#glenum) | 是 | | NO_ERROR | GLenum | 是 |
| INVALID_ENUM | [GLenum](#glenum) | 是 | | INVALID_ENUM | GLenum | 是 |
| INVALID_VALUE | [GLenum](#glenum) | 是 | | INVALID_VALUE | GLenum | 是 |
| INVALID_OPERATION | [GLenum](#glenum) | 是 | | INVALID_OPERATION | GLenum | 是 |
| OUT_OF_MEMORY | [GLenum](#glenum) | 是 | | OUT_OF_MEMORY | GLenum | 是 |
| CW | [GLenum](#glenum) | 是 | | CW | GLenum | 是 |
| CCW | [GLenum](#glenum) | 是 | | CCW | GLenum | 是 |
| ALIASED_POINT_SIZE_RANGE | [GLenum](#glenum) | 是 | | LINE_WIDTH | GLenum | 是 |
| ALIASED_LINE_WIDTH_RANGE | [GLenum](#glenum) | 是 | | ALIASED_POINT_SIZE_RANGE | GLenum | 是 |
| CULL_FACE_MODE | [GLenum](#glenum) | 是 | | ALIASED_LINE_WIDTH_RANGE | GLenum | 是 |
| FRONT_FACE | [GLenum](#glenum) | 是 | | CULL_FACE_MODE | GLenum | 是 |
| DEPTH_RANGE | [GLenum](#glenum) | 是 | | FRONT_FACE | GLenum | 是 |
| DEPTH_WRITEMASK | [GLenum](#glenum) | 是 | | DEPTH_RANGE | GLenum | 是 |
| DEPTH_CLEAR_VALUE | [GLenum](#glenum) | 是 | | DEPTH_WRITEMASK | GLenum | 是 |
| DEPTH_FUNC | [GLenum](#glenum) | 是 | | DEPTH_CLEAR_VALUE | GLenum | 是 |
| STENCIL_CLEAR_VALUE | [GLenum](#glenum) | 是 | | DEPTH_FUNC | GLenum | 是 |
| STENCIL_FUNC | [GLenum](#glenum) | 是 | | STENCIL_CLEAR_VALUE | GLenum | 是 |
| STENCIL_FAIL | [GLenum](#glenum) | 是 | | STENCIL_FUNC | GLenum | 是 |
| STENCIL_PASS_DEPTH_FAIL | [GLenum](#glenum) | 是 | | STENCIL_FAIL | GLenum | 是 |
| STENCIL_PASS_DEPTH_PASS | [GLenum](#glenum) | 是 | | STENCIL_PASS_DEPTH_FAIL | GLenum | 是 |
| STENCIL_REF | [GLenum](#glenum) | 是 | | STENCIL_PASS_DEPTH_PASS | GLenum | 是 |
| STENCIL_VALUE_MASK | [GLenum](#glenum) | 是 | | STENCIL_REF | GLenum | 是 |
| STENCIL_WRITEMASK | [GLenum](#glenum) | 是 | | STENCIL_VALUE_MASK | GLenum | 是 |
| STENCIL_BACK_FUNC | [GLenum](#glenum) | 是 | | STENCIL_WRITEMASK | GLenum | 是 |
| STENCIL_BACK_FAIL | [GLenum](#glenum) | 是 | | STENCIL_BACK_FUNC | GLenum | 是 |
| STENCIL_BACK_PASS_DEPTH_FAIL | [GLenum](#glenum) | 是 | | STENCIL_BACK_FAIL | GLenum | 是 |
| STENCIL_BACK_PASS_DEPTH_PASS | [GLenum](#glenum) | 是 | | STENCIL_BACK_PASS_DEPTH_FAIL | GLenum | 是 |
| STENCIL_BACK_REF | [GLenum](#glenum) | 是 | | STENCIL_BACK_PASS_DEPTH_PASS | GLenum | 是 |
| STENCIL_BACK_VALUE_MASK | [GLenum](#glenum) | 是 | | STENCIL_BACK_REF | GLenum | 是 |
| STENCIL_BACK_WRITEMASK | [GLenum](#glenum) | 是 | | STENCIL_BACK_VALUE_MASK | GLenum | 是 |
| VIEWPORT | [GLenum](#glenum) | 是 | | STENCIL_BACK_WRITEMASK | GLenum | 是 |
| SCISSOR_BOX | [GLenum](#glenum) | 是 | | VIEWPORT | GLenum | 是 |
| COLOR_CLEAR_VALUE | [GLenum](#glenum) | 是 | | SCISSOR_BOX | GLenum | 是 |
| COLOR_WRITEMASK | [GLenum](#glenum) | 是 | | COLOR_CLEAR_VALUE | GLenum | 是 |
| UNPACK_ALIGNMENT | [GLenum](#glenum) | 是 | | COLOR_WRITEMASK | GLenum | 是 |
| PACK_ALIGNMENT | [GLenum](#glenum) | 是 | | UNPACK_ALIGNMENT | GLenum | 是 |
| MAX_TEXTURE_SIZE | [GLenum](#glenum) | 是 | | PACK_ALIGNMENT | GLenum | 是 |
| MAX_VIEWPORT_DIMS | [GLenum](#glenum) | 是 | | MAX_TEXTURE_SIZE | GLenum | 是 |
| SUBPIXEL_BITS | [GLenum](#glenum) | 是 | | MAX_VIEWPORT_DIMS | GLenum | 是 |
| RED_BITS | [GLenum](#glenum) | 是 | | SUBPIXEL_BITS | GLenum | 是 |
| GREEN_BITS | [GLenum](#glenum) | 是 | | RED_BITS | GLenum | 是 |
| BLUE_BITS | [GLenum](#glenum) | 是 | | GREEN_BITS | GLenum | 是 |
| ALPHA_BITS | [GLenum](#glenum) | 是 | | BLUE_BITS | GLenum | 是 |
| DEPTH_BITS | [GLenum](#glenum) | 是 | | ALPHA_BITS | GLenum | 是 |
| STENCIL_BITS | [GLenum](#glenum) | 是 | | DEPTH_BITS | GLenum | 是 |
| POLYGON_OFFSET_UNITS | [GLenum](#glenum) | 是 | | STENCIL_BITS | GLenum | 是 |
| POLYGON_OFFSET_FACTOR | [GLenum](#glenum) | 是 | | POLYGON_OFFSET_UNITS | GLenum | 是 |
| TEXTURE_BINDING_2D | [GLenum](#glenum) | 是 | | POLYGON_OFFSET_FACTOR | GLenum | 是 |
| SAMPLE_BUFFERS | [GLenum](#glenum) | 是 | | TEXTURE_BINDING_2D | GLenum | 是 |
| SAMPLES | [GLenum](#glenum) | 是 | | SAMPLE_BUFFERS | GLenum | 是 |
| SAMPLE_COVERAGE_VALUE | [GLenum](#glenum) | 是 | | SAMPLES | GLenum | 是 |
| SAMPLE_COVERAGE_INVERT | [GLenum](#glenum) | 是 | | SAMPLE_COVERAGE_VALUE | GLenum | 是 |
| COMPRESSED_TEXTURE_FORMATS | [GLenum](#glenum) | 是 | | SAMPLE_COVERAGE_INVERT | GLenum | 是 |
| DONT_CARE | [GLenum](#glenum) | 是 | | COMPRESSED_TEXTURE_FORMATS | GLenum | 是 |
| FASTEST | [GLenum](#glenum) | 是 | | DONT_CARE | GLenum | 是 |
| NICEST | [GLenum](#glenum) | 是 | | FASTEST | GLenum | 是 |
| GENERATE_MIPMAP_HINT | [GLenum](#glenum) | 是 | | NICEST | GLenum | 是 |
| BYTE | [GLenum](#glenum) | 是 | | GENERATE_MIPMAP_HINT | GLenum | 是 |
| UNSIGNED_BYTE | [GLenum](#glenum) | 是 | | BYTE | GLenum | 是 |
| SHORT | [GLenum](#glenum) | 是 | | UNSIGNED_BYTE | GLenum | 是 |
| UNSIGNED_SHORT | [GLenum](#glenum) | 是 | | SHORT | GLenum | 是 |
| INT | [GLenum](#glenum) | 是 | | UNSIGNED_SHORT | GLenum | 是 |
| UNSIGNED_INT | [GLenum](#glenum) | 是 | | INT | GLenum | 是 |
| FLOAT | [GLenum](#glenum) | 是 | | UNSIGNED_INT | GLenum | 是 |
| DEPTH_COMPONENT | [GLenum](#glenum) | 是 | | FLOAT | GLenum | 是 |
| ALPHA | [GLenum](#glenum) | 是 | | DEPTH_COMPONENT | GLenum | 是 |
| RGB | [GLenum](#glenum) | 是 | | ALPHA | GLenum | 是 |
| RGBA | [GLenum](#glenum) | 是 | | RGB | GLenum | 是 |
| LUMINANCE | [GLenum](#glenum) | 是 | | RGBA | GLenum | 是 |
| LUMINANCE_ALPHA | [GLenum](#glenum) | 是 | | LUMINANCE | GLenum | 是 |
| UNSIGNED_SHORT_4_4_4_4 | [GLenum](#glenum) | 是 | | LUMINANCE_ALPHA | GLenum | 是 |
| UNSIGNED_SHORT_5_5_5_1 | [GLenum](#glenum) | 是 | | UNSIGNED_SHORT_4_4_4_4 | GLenum | 是 |
| UNSIGNED_SHORT_5_6_5 | [GLenum](#glenum) | 是 | | UNSIGNED_SHORT_5_5_5_1 | GLenum | 是 |
| FRAGMENT_SHADER | [GLenum](#glenum) | 是 | | UNSIGNED_SHORT_5_6_5 | GLenum | 是 |
| VERTEX_SHADER | [GLenum](#glenum) | 是 | | FRAGMENT_SHADER | GLenum | 是 |
| MAX_VERTEX_ATTRIBS | [GLenum](#glenum) | 是 | | VERTEX_SHADER | GLenum | 是 |
| MAX_VERTEX_UNIFORM_VECTORS | [GLenum](#glenum) | 是 | | MAX_VERTEX_ATTRIBS | GLenum | 是 |
| MAX_VARYING_VECTORS | [GLenum](#glenum) | 是 | | MAX_VERTEX_UNIFORM_VECTORS | GLenum | 是 |
| MAX_COMBINED_TEXTURE_IMAGE_UNITS | [GLenum](#glenum) | 是 | | MAX_VARYING_VECTORS | GLenum | 是 |
| MAX_VERTEX_TEXTURE_IMAGE_UNITS | [GLenum](#glenum) | 是 | | MAX_COMBINED_TEXTURE_IMAGE_UNITS | GLenum | 是 |
| MAX_TEXTURE_IMAGE_UNITS | [GLenum](#glenum) | 是 | | MAX_VERTEX_TEXTURE_IMAGE_UNITS | GLenum | 是 |
| MAX_FRAGMENT_UNIFORM_VECTORS | [GLenum](#glenum) | 是 | | MAX_TEXTURE_IMAGE_UNITS | GLenum | 是 |
| SHADER_TYPE | [GLenum](#glenum) | 是 | | MAX_FRAGMENT_UNIFORM_VECTORS | GLenum | 是 |
| DELETE_STATUS | [GLenum](#glenum) | 是 | | SHADER_TYPE | GLenum | 是 |
| LINK_STATUS | [GLenum](#glenum) | 是 | | DELETE_STATUS | GLenum | 是 |
| VALIDATE_STATUS | [GLenum](#glenum) | 是 | | LINK_STATUS | GLenum | 是 |
| ATTACHED_SHADERS | [GLenum](#glenum) | 是 | | VALIDATE_STATUS | GLenum | 是 |
| ACTIVE_UNIFORMS | [GLenum](#glenum) | 是 | | ATTACHED_SHADERS | GLenum | 是 |
| ACTIVE_ATTRIBUTES | [GLenum](#glenum) | 是 | | ACTIVE_UNIFORMS | GLenum | 是 |
| SHADING_LANGUAGE_VERSION | [GLenum](#glenum) | 是 | | ACTIVE_ATTRIBUTES | GLenum | 是 |
| CURRENT_PROGRAM | [GLenum](#glenum) | 是 | | SHADING_LANGUAGE_VERSION | GLenum | 是 |
| NEVER | [GLenum](#glenum) | 是 | | CURRENT_PROGRAM | GLenum | 是 |
| LESS | [GLenum](#glenum) | 是 | | NEVER | GLenum | 是 |
| EQUAL | [GLenum](#glenum) | 是 | | LESS | GLenum | 是 |
| LEQUAL | [GLenum](#glenum) | 是 | | EQUAL | GLenum | 是 |
| GREATER | [GLenum](#glenum) | 是 | | LEQUAL | GLenum | 是 |
| NOTEQUAL | [GLenum](#glenum) | 是 | | GREATER | GLenum | 是 |
| GEQUAL | [GLenum](#glenum) | 是 | | NOTEQUAL | GLenum | 是 |
| ALWAYS | [GLenum](#glenum) | 是 | | GEQUAL | GLenum | 是 |
| KEEP | [GLenum](#glenum) | 是 | | ALWAYS | GLenum | 是 |
| REPLACE | [GLenum](#glenum) | 是 | | KEEP | GLenum | 是 |
| INCR | [GLenum](#glenum) | 是 | | REPLACE | GLenum | 是 |
| DECR | [GLenum](#glenum) | 是 | | INCR | GLenum | 是 |
| INVERT | [GLenum](#glenum) | 是 | | DECR | GLenum | 是 |
| INCR_WRAP | [GLenum](#glenum) | 是 | | INVERT | GLenum | 是 |
| DECR_WRAP | [GLenum](#glenum) | 是 | | INCR_WRAP | GLenum | 是 |
| VENDOR | [GLenum](#glenum) | 是 | | DECR_WRAP | GLenum | 是 |
| RENDERER | [GLenum](#glenum) | 是 | | VENDOR | GLenum | 是 |
| VERSION | [GLenum](#glenum) | 是 | | RENDERER | GLenum | 是 |
| NEAREST | [GLenum](#glenum) | 是 | | VERSION | GLenum | 是 |
| LINEAR | [GLenum](#glenum) | 是 | | NEAREST | GLenum | 是 |
| NEAREST_MIPMAP_NEAREST | [GLenum](#glenum) | 是 | | LINEAR | GLenum | 是 |
| LINEAR_MIPMAP_NEAREST | [GLenum](#glenum) | 是 | | NEAREST_MIPMAP_NEAREST | GLenum | 是 |
| NEAREST_MIPMAP_LINEAR | [GLenum](#glenum) | 是 | | LINEAR_MIPMAP_NEAREST | GLenum | 是 |
| LINEAR_MIPMAP_LINEAR | [GLenum](#glenum) | 是 | | NEAREST_MIPMAP_LINEAR | GLenum | 是 |
| TEXTURE_MAG_FILTER | [GLenum](#glenum) | 是 | | LINEAR_MIPMAP_LINEAR | GLenum | 是 |
| TEXTURE_MIN_FILTER | [GLenum](#glenum) | 是 | | TEXTURE_MIN_FILTER | GLenum | 是 |
| TEXTURE_WRAP_S | [GLenum](#glenum) | 是 | | TEXTURE_WRAP_S | GLenum | 是 |
| TEXTURE_WRAP_T | [GLenum](#glenum) | 是 | | TEXTURE_WRAP_T | GLenum | 是 |
| TEXTURE_2D | [GLenum](#glenum) | 是 | | TEXTURE_2D | GLenum | 是 |
| TEXTURE | [GLenum](#glenum) | 是 | | TEXTURE | GLenum | 是 |
| TEXTURE_CUBE_MAP | [GLenum](#glenum) | 是 | | TEXTURE_CUBE_MAP | GLenum | 是 |
| TEXTURE_BINDING_CUBE_MAP | [GLenum](#glenum) | 是 | | TEXTURE_BINDING_CUBE_MAP | GLenum | 是 |
| TEXTURE_CUBE_MAP_POSITIVE_X | [GLenum](#glenum) | 是 | | TEXTURE_CUBE_MAP_POSITIVE_X | GLenum | 是 |
| TEXTURE_CUBE_MAP_NEGATIVE_X | [GLenum](#glenum) | 是 | | TEXTURE_CUBE_MAP_NEGATIVE_X | GLenum | 是 |
| TEXTURE_CUBE_MAP_POSITIVE_Y | [GLenum](#glenum) | 是 | | TEXTURE_CUBE_MAP_POSITIVE_Y | GLenum | 是 |
| TEXTURE_CUBE_MAP_NEGATIVE_Y | [GLenum](#glenum) | 是 | | TEXTURE_CUBE_MAP_NEGATIVE_Y | GLenum | 是 |
| TEXTURE_CUBE_MAP_POSITIVE_Z | [GLenum](#glenum) | 是 | | TEXTURE_CUBE_MAP_POSITIVE_Z | GLenum | 是 |
| TEXTURE_CUBE_MAP_NEGATIVE_Z | [GLenum](#glenum) | 是 | | TEXTURE_CUBE_MAP_NEGATIVE_Z | GLenum | 是 |
| TEXTURE0 | [GLenum](#glenum) | 是 | | MAX_CUBE_MAP_TEXTURE_SIZE | GLenum | 是 |
| TEXTURE1 | [GLenum](#glenum) | 是 | | TEXTURE0 | GLenum | 是 |
| TEXTURE2 | [GLenum](#glenum) | 是 | | TEXTURE1 | GLenum | 是 |
| TEXTURE3 | [GLenum](#glenum) | 是 | | TEXTURE2 | GLenum | 是 |
| TEXTURE4 | [GLenum](#glenum) | 是 | | TEXTURE3 | GLenum | 是 |
| TEXTURE5 | [GLenum](#glenum) | 是 | | TEXTURE4 | GLenum | 是 |
| TEXTURE6 | [GLenum](#glenum) | 是 | | TEXTURE5 | GLenum | 是 |
| TEXTURE7 | [GLenum](#glenum) | 是 | | TEXTURE6 | GLenum | 是 |
| TEXTURE8 | [GLenum](#glenum) | 是 | | TEXTURE7 | GLenum | 是 |
| TEXTURE9 | [GLenum](#glenum) | 是 | | TEXTURE8 | GLenum | 是 |
| TEXTURE10 | [GLenum](#glenum) | 是 | | TEXTURE9 | GLenum | 是 |
| TEXTURE11 | [GLenum](#glenum) | 是 | | TEXTURE10 | GLenum | 是 |
| TEXTURE12 | [GLenum](#glenum) | 是 | | TEXTURE11 | GLenum | 是 |
| TEXTURE13 | [GLenum](#glenum) | 是 | | TEXTURE12 | GLenum | 是 |
| TEXTURE14 | [GLenum](#glenum) | 是 | | TEXTURE13 | GLenum | 是 |
| TEXTURE15 | [GLenum](#glenum) | 是 | | TEXTURE14 | GLenum | 是 |
| TEXTURE16 | [GLenum](#glenum) | 是 | | TEXTURE15 | GLenum | 是 |
| TEXTURE17 | [GLenum](#glenum) | 是 | | TEXTURE16 | GLenum | 是 |
| TEXTURE18 | [GLenum](#glenum) | 是 | | TEXTURE17 | GLenum | 是 |
| TEXTURE19 | [GLenum](#glenum) | 是 | | TEXTURE18 | GLenum | 是 |
| TEXTURE20 | [GLenum](#glenum) | 是 | | TEXTURE19 | GLenum | 是 |
| TEXTURE21 | [GLenum](#glenum) | 是 | | TEXTURE20 | GLenum | 是 |
| TEXTURE22 | [GLenum](#glenum) | 是 | | TEXTURE21 | GLenum | 是 |
| TEXTURE23 | [GLenum](#glenum) | 是 | | TEXTURE22 | GLenum | 是 |
| TEXTURE24 | [GLenum](#glenum) | 是 | | TEXTURE23 | GLenum | 是 |
| TEXTURE25 | [GLenum](#glenum) | 是 | | TEXTURE24 | GLenum | 是 |
| TEXTURE26 | [GLenum](#glenum) | 是 | | TEXTURE25 | GLenum | 是 |
| TEXTURE27 | [GLenum](#glenum) | 是 | | TEXTURE26 | GLenum | 是 |
| TEXTURE28 | [GLenum](#glenum) | 是 | | TEXTURE27 | GLenum | 是 |
| TEXTURE29 | [GLenum](#glenum) | 是 | | TEXTURE28 | GLenum | 是 |
| TEXTURE30 | [GLenum](#glenum) | 是 | | TEXTURE29 | GLenum | 是 |
| TEXTURE31 | [GLenum](#glenum) | 是 | | TEXTURE30 | GLenum | 是 |
| ACTIVE_TEXTURE | [GLenum](#glenum) | 是 | | TEXTURE31 | GLenum | 是 |
| REPEAT | [GLenum](#glenum) | 是 | | ACTIVE_TEXTURE | GLenum | 是 |
| CLAMP_TO_EDGE | [GLenum](#glenum) | 是 | | REPEAT | GLenum | 是 |
| MIRRORED_REPEAT | [GLenum](#glenum) | 是 | | CLAMP_TO_EDGE | GLenum | 是 |
| FLOAT_VEC2 | [GLenum](#glenum) | 是 | | MIRRORED_REPEAT | GLenum | 是 |
| FLOAT_VEC3 | [GLenum](#glenum) | 是 | | FLOAT_VEC2 | GLenum | 是 |
| FLOAT_VEC4 | [GLenum](#glenum) | 是 | | FLOAT_VEC3 | GLenum | 是 |
| INT_VEC2 | [GLenum](#glenum) | 是 | | FLOAT_VEC4 | GLenum | 是 |
| INT_VEC3 | [GLenum](#glenum) | 是 | | INT_VEC2 | GLenum | 是 |
| INT_VEC4 | [GLenum](#glenum) | 是 | | INT_VEC3 | GLenum | 是 |
| BOOL | [GLenum](#glenum) | 是 | | INT_VEC4 | GLenum | 是 |
| BOOL_VEC2 | [GLenum](#glenum) | 是 | | BOOL | GLenum | 是 |
| BOOL_VEC3 | [GLenum](#glenum) | 是 | | BOOL_VEC2 | GLenum | 是 |
| BOOL_VEC4 | [GLenum](#glenum) | 是 | | BOOL_VEC3 | GLenum | 是 |
| FLOAT_MAT2 | [GLenum](#glenum) | 是 | | BOOL_VEC4 | GLenum | 是 |
| FLOAT_MAT3 | [GLenum](#glenum) | 是 | | FLOAT_MAT2 | GLenum | 是 |
| FLOAT_MAT4 | [GLenum](#glenum) | 是 | | FLOAT_MAT3 | GLenum | 是 |
| SAMPLER_2D | [GLenum](#glenum) | 是 | | FLOAT_MAT4 | GLenum | 是 |
| SAMPLER_CUBE | [GLenum](#glenum) | 是 | | SAMPLER_2D | GLenum | 是 |
| VERTEX_ATTRIB_ARRAY_ENABLED | [GLenum](#glenum) | 是 | | SAMPLER_CUBE | GLenum | 是 |
| VERTEX_ATTRIB_ARRAY_SIZE | [GLenum](#glenum) | 是 | | VERTEX_ATTRIB_ARRAY_ENABLED | GLenum | 是 |
| VERTEX_ATTRIB_ARRAY_STRIDE | [GLenum](#glenum) | 是 | | VERTEX_ATTRIB_ARRAY_SIZE | GLenum | 是 |
| VERTEX_ATTRIB_ARRAY_TYPE | [GLenum](#glenum) | 是 | | VERTEX_ATTRIB_ARRAY_STRIDE | GLenum | 是 |
| VERTEX_ATTRIB_ARRAY_NORMALIZED | [GLenum](#glenum) | 是 | | VERTEX_ATTRIB_ARRAY_TYPE | GLenum | 是 |
| VERTEX_ATTRIB_ARRAY_POINTER | [GLenum](#glenum) | 是 | | VERTEX_ATTRIB_ARRAY_NORMALIZED | GLenum | 是 |
| VERTEX_ATTRIB_ARRAY_BUFFER_BINDING | [GLenum](#glenum) | 是 | | VERTEX_ATTRIB_ARRAY_POINTER | GLenum | 是 |
| IMPLEMENTATION_COLOR_READ_TYPE | [GLenum](#glenum) | 是 | | VERTEX_ATTRIB_ARRAY_BUFFER_BINDING | GLenum | 是 |
| IMPLEMENTATION_COLOR_READ_FORMAT | [GLenum](#glenum) | 是 | | IMPLEMENTATION_COLOR_READ_TYPE | GLenum | 是 |
| COMPILE_STATUS | [GLenum](#glenum) | 是 | | IMPLEMENTATION_COLOR_READ_FORMAT | GLenum | 是 |
| LOW_FLOAT | [GLenum](#glenum) | 是 | | COMPILE_STATUS | GLenum | 是 |
| MEDIUM_FLOAT | [GLenum](#glenum) | 是 | | LOW_FLOAT | GLenum | 是 |
| HIGH_FLOAT | [GLenum](#glenum) | 是 | | MEDIUM_FLOAT | GLenum | 是 |
| LOW_INT | [GLenum](#glenum) | 是 | | HIGH_FLOAT | GLenum | 是 |
| MEDIUM_INT | [GLenum](#glenum) | 是 | | LOW_INT | GLenum | 是 |
| HIGH_INT | [GLenum](#glenum) | 是 | | MEDIUM_INT | GLenum | 是 |
| FRAMEBUFFER | [GLenum](#glenum) | 是 | | HIGH_INT | GLenum | 是 |
| RENDERBUFFER | [GLenum](#glenum) | 是 | | FRAMEBUFFER | GLenum | 是 |
| RGBA4 | [GLenum](#glenum) | 是 | | RENDERBUFFER | GLenum | 是 |
| RGB5_A1 | [GLenum](#glenum) | 是 | | RGBA4 | GLenum | 是 |
| RGB565 | [GLenum](#glenum) | 是 | | RGB5_A1 | GLenum | 是 |
| DEPTH_COMPONENT16 | [GLenum](#glenum) | 是 | | RGB565 | GLenum | 是 |
| STENCIL_INDEX8 | [GLenum](#glenum) | 是 | | DEPTH_COMPONENT16 | GLenum | 是 |
| DEPTH_STENCIL | [GLenum](#glenum) | 是 | | STENCIL_INDEX8 | GLenum | 是 |
| RENDERBUFFER_WIDTH | [GLenum](#glenum) | 是 | | DEPTH_STENCIL | GLenum | 是 |
| RENDERBUFFER_HEIGHT | [GLenum](#glenum) | 是 | | RENDERBUFFER_WIDTH | GLenum | 是 |
| RENDERBUFFER_INTERNAL_FORMAT | [GLenum](#glenum) | 是 | | RENDERBUFFER_HEIGHT | GLenum | 是 |
| RENDERBUFFER_RED_SIZE | [GLenum](#glenum) | 是 | | RENDERBUFFER_INTERNAL_FORMAT | GLenum | 是 |
| RENDERBUFFER_GREEN_SIZE | [GLenum](#glenum) | 是 | | RENDERBUFFER_RED_SIZE | GLenum | 是 |
| RENDERBUFFER_BLUE_SIZE | [GLenum](#glenum) | 是 | | RENDERBUFFER_GREEN_SIZE | GLenum | 是 |
| RENDERBUFFER_ALPHA_SIZE | [GLenum](#glenum) | 是 | | RENDERBUFFER_BLUE_SIZE | GLenum | 是 |
| RENDERBUFFER_DEPTH_SIZE | [GLenum](#glenum) | 是 | | RENDERBUFFER_ALPHA_SIZE | GLenum | 是 |
| RENDERBUFFER_STENCIL_SIZE | [GLenum](#glenum) | 是 | | RENDERBUFFER_DEPTH_SIZE | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE | [GLenum](#glenum) | 是 | | RENDERBUFFER_STENCIL_SIZE | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_OBJECT_NAME | [GLenum](#glenum) | 是 | | FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL | [GLenum](#glenum) | 是 | | FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE | [GLenum](#glenum) | 是 | | FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE | GLenum | 是 |
| COLOR_ATTACHMENT0 | [GLenum](#glenum) | 是 | | COLOR_ATTACHMENT0 | GLenum | 是 |
| DEPTH_ATTACHMENT | [GLenum](#glenum) | 是 | | DEPTH_ATTACHMENT | GLenum | 是 |
| STENCIL_ATTACHMENT | [GLenum](#glenum) | 是 | | STENCIL_ATTACHMENT | GLenum | 是 |
| DEPTH_STENCIL_ATTACHMENT | [GLenum](#glenum) | 是 | | DEPTH_STENCIL_ATTACHMENT | GLenum | 是 |
| NONE | [GLenum](#glenum) | 是 | | NONE | GLenum | 是 |
| FRAMEBUFFER_COMPLETE | [GLenum](#glenum) | 是 | | FRAMEBUFFER_COMPLETE | GLenum | 是 |
| FRAMEBUFFER_INCOMPLETE_ATTACHMENT | [GLenum](#glenum) | 是 | | FRAMEBUFFER_INCOMPLETE_ATTACHMENT | GLenum | 是 |
| FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT | [GLenum](#glenum) | 是 | | FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT | GLenum | 是 |
| FRAMEBUFFER_INCOMPLETE_DIMENSIONS | [GLenum](#glenum) | 是 | | FRAMEBUFFER_INCOMPLETE_DIMENSIONS | GLenum | 是 |
| FRAMEBUFFER_UNSUPPORTED | [GLenum](#glenum) | 是 | | FRAMEBUFFER_UNSUPPORTED | GLenum | 是 |
| FRAMEBUFFER_BINDING | [GLenum](#glenum) | 是 | | FRAMEBUFFER_BINDING | GLenum | 是 |
| RENDERBUFFER_BINDING | [GLenum](#glenum) | 是 | | RENDERBUFFER_BINDING | GLenum | 是 |
| MAX_RENDERBUFFER_SIZE | [GLenum](#glenum) | 是 | | MAX_RENDERBUFFER_SIZE | GLenum | 是 |
| INVALID_FRAMEBUFFER_OPERATION | [GLenum](#glenum) | 是 | | INVALID_FRAMEBUFFER_OPERATION | GLenum | 是 |
| UNPACK_FLIP_Y_WEBGL | [GLenum](#glenum) | 是 | | UNPACK_FLIP_Y_WEBGL | GLenum | 是 |
| UNPACK_PREMULTIPLY_ALPHA_WEBGL | [GLenum](#glenum) | 是 | | UNPACK_PREMULTIPLY_ALPHA_WEBGL | GLenum | 是 |
| CONTEXT_LOST_WEBGL | [GLenum](#glenum) | 是 | | CONTEXT_LOST_WEBGL | GLenum | 是 |
| UNPACK_COLORSPACE_CONVERSION_WEBGL | [GLenum](#glenum) | 是 | | UNPACK_COLORSPACE_CONVERSION_WEBGL | GLenum | 是 |
| BROWSER_DEFAULT_WEBGL | [GLenum](#glenum) | 是 | | BROWSER_DEFAULT_WEBGL | GLenum | 是 |
| canvas | HTMLCanvasElement&nbsp;\|&nbsp;OffscreenCanvas | 是 | | canvas | HTMLCanvasElement&nbsp;\|&nbsp;OffscreenCanvas | 是 |
| drawingBufferWidth | [GLsizei](#glsizei) | 是 | | drawingBufferWidth | GLsizei | 是 |
| drawingBufferHeight | [GLsizei](#glsizei) | 是 | | drawingBufferHeight | GLsizei | 是 |
### 方法 ### 方法
| 方法 | 返回值类型 | | 方法 | 返回值类型 |
| -------- | -------- | | -------- | -------- |
| getContextAttributes() | WebGLContextAttributes&nbsp;\|&nbsp;null | | getContextAttributes() | WebGLContextAttributes&nbsp;\|&nbsp;null |
| isContextLost() | boolean | | isContextLost() | boolean |
...@@ -577,7 +467,7 @@ WebGLRenderingContextBase ...@@ -577,7 +467,7 @@ WebGLRenderingContextBase
| createProgram() | WebGLProgram&nbsp;\|&nbsp;null | | createProgram() | WebGLProgram&nbsp;\|&nbsp;null |
| createRenderbuffer() | WebGLRenderbuffer&nbsp;\|&nbsp;null | | createRenderbuffer() | WebGLRenderbuffer&nbsp;\|&nbsp;null |
| createShader(type:&nbsp;GLenum) | WebGLShader&nbsp;\|&nbsp;null | | createShader(type:&nbsp;GLenum) | WebGLShader&nbsp;\|&nbsp;null |
| createTexture() | WebGLTexture&nbsp;\|&nbsp;nullvoid | | createTexture() | WebGLTexture&nbsp;\|&nbsp;null |
| cullFace(mode:&nbsp;GLenum) | void | | cullFace(mode:&nbsp;GLenum) | void |
| deleteBuffer(buffer:&nbsp;WebGLBuffer&nbsp;\|&nbsp;null) | void | | deleteBuffer(buffer:&nbsp;WebGLBuffer&nbsp;\|&nbsp;null) | void |
| deleteFramebuffer(framebuffer:&nbsp;WebGLFramebuffer&nbsp;\|&nbsp;null) | void | | deleteFramebuffer(framebuffer:&nbsp;WebGLFramebuffer&nbsp;\|&nbsp;null) | void |
...@@ -667,18 +557,18 @@ WebGLRenderingContextBase ...@@ -667,18 +557,18 @@ WebGLRenderingContextBase
| viewport(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void | | viewport(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void |
## webgl.WebGLRenderingContextOverloads ## WebGLRenderingContextOverloads
WebGLRenderingContextOverloads WebGLRenderingContextOverloads
| 方法 | 返回值类型 | | 方法 | 返回值类型 |
| -------- | -------- | | -------- | -------- |
| bufferData(target:&nbsp;GLenum,&nbsp;size:&nbsp;GLsizeiptr,&nbsp;usage:&nbsp;GLenum) | void | | bufferData(target:&nbsp;GLenum,&nbsp;size:&nbsp;GLsizeiptr,&nbsp;usage:&nbsp;GLenum) | void |
| bufferData(target:&nbsp;GLenum,&nbsp;data:&nbsp;BufferSource&nbsp;\|&nbsp;null,&nbsp;usage:&nbsp;GLenum) | void | | bufferData(target:&nbsp;GLenum,&nbsp;data:&nbsp;BufferSource&nbsp;\|&nbsp;null,&nbsp;usage:&nbsp;GLenum) | void |
| bufferSubData(target:&nbsp;GLenum,&nbsp;offset:&nbsp;GLintptr,&nbsp;data:&nbsp;BufferSource) | void | | bufferSubData(target:&nbsp;GLenum,&nbsp;offset:&nbsp;GLintptr,&nbsp;data:&nbsp;BufferSource) | void |
| compressedTexImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;data:&nbsp;ArrayBufferView) | void | | compressedTexImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;data:&nbsp;ArrayBufferView) | void |
| compressedTexSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;data:&nbsp;ArrayBufferView) | void | | compressedTexSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;data:&nbsp;ArrayBufferView) | void |
| readPixels(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void | | readPixels(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void; |
| texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
| texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
......
# WebGL2 # webgl2
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
WebGL标准图形API,对应OpenGL ES 3.0特性集。更多信息请参考[WebgGL™标准](https://www.khronos.org/registry/webgl/specs/latest/2.0/) WebGL标准图形API,对应OpenGL ES 3.0特性集。更多信息请参考[WebGL™标准](https://www.khronos.org/registry/webgl/specs/latest/2.0/)
## 导入模块 ## 导入模块
``` ```
import webgl from 'ohos.webglnapi' import webgl from '@ohos.webglnapi'
``` ```
## 系统能力 ## 调用方式
SystemCapability.Graphic.Graphic2D.WebGL2 hml内创建canvas,示例如下:
## 调用方式 ```
<div class="container">
<canvas ref="canvas1" style="width : 400px; height : 200px; background-color : lightyellow;"></canvas>
<button class="btn-button" onclick="BtnDraw2D">BtnDraw2D</button>
</div>
```
js内获取canvas实例,示例如下:
``` ```
// 获取canvas组件实例 // 获取canvas组件实例
const el = this.$refs.canvas const el = this.$refs.canvas1;
// 从canvas组件实例获取WebGL上下文 // 从canvas组件实例获取WebGL上下文
const gl = el.getContext('webgl'); const gl = el.getContext('webgl');
const gl2 = el.getContext('webgl2');
// 调用WebGL API // 调用WebGL API
gl2.readBuffer(gl.COLOR_ATTACHMENT0) gl.clearColor(0.0, 0.0, 0.0, 1.0);
``` ```
## GLenum ## Type
| 名称 | 类型 |
| -------- | -------- |
| GLenum | number |
## Glint64
| 名称 | 类型 |
| -------- | -------- |
| Glint64 | number |
**表1** Type
## Gluint64 | 名称 | 类型 | 说明 |
| -------- | -------- | -------- |
| GLenum | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL2 |
| GLint64 | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL2 |
| GLuint64 | number | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL2 |
| Uint32List | array | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL2 |
| 名称 | 类型 |
| -------- | -------- |
| Gluint64 | number |
## Interface
## Uint32List **表2** Interface
| 名称 | 类型 | | 名称 | 说明 |
| -------- | -------- | | -------- | -------- |
| Uint32List | array | | [WebGL2RenderingContextBase](#webgl2renderingcontextbase) | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL2 |
| [WebGL2RenderingContextOverloads](#webgl2renderingcontextoverloads) | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL2 |
| WebGLQuery | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL2 |
| WebGLSampler | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL2 |
| WebGLSync | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL2 |
| WebGLTransformFeedback | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL2 |
| WebGLVertexArrayObject | **系统能力:** SystemCapability.Graphic.Graphic2D.WebGL2 |
## webgl.webGL2RenderingContexBase ## WebGL2RenderingContextBase
WebGL2RenderingContexBase WebGL2RenderingContextBase
### 属性 ### 属性
| 名称 | 参数类型 | 必填 | | 名称 | 参数类型 | 必填 |
| -------- | ------- | --------- | | -------- | -------- | -------- |
| READ_BUFFER | [GLenum](#GLenum) | 是 | | READ_BUFFER | GLenum | 是 |
| UNPACK_ROW_LENGTH | [GLenum](#GLenum) | 是 | | UNPACK_ROW_LENGTH | GLenum | 是 |
| UNPACK_SKIP_ROWS | [GLenum](#GLenum) | 是 | | UNPACK_SKIP_ROWS | GLenum | 是 |
| UNPACK_SKIP_PIXELS | [GLenum](#GLenum) | 是 | | UNPACK_SKIP_PIXELS | GLenum | 是 |
| PACK_ROW_LENGTH | [GLenum](#GLenum) | 是 | | PACK_ROW_LENGTH | GLenum | 是 |
| PACK_SKIP_ROWS | [GLenum](#GLenum) | 是 | | PACK_SKIP_ROWS | GLenum | 是 |
| PACK_SKIP_PIXELS | [GLenum](#GLenum) | 是 | | PACK_SKIP_PIXELS | GLenum | 是 |
| COLOR | [GLenum](#GLenum) | 是 | | COLOR | GLenum | 是 |
| DEPTH | [GLenum](#GLenum) | 是 | | DEPTH | GLenum | 是 |
| STENCIL | [GLenum](#GLenum) | 是 | | STENCIL | GLenum | 是 |
| RED | [GLenum](#GLenum) | 是 | | RED | GLenum | 是 |
| RGB8 | [GLenum](#GLenum) | 是 | | RGB8 | GLenum | 是 |
| RGBA8 | [GLenum](#GLenum) | 是 | | RGBA8 | GLenum | 是 |
| RGB10_A2 | [GLenum](#GLenum) | 是 | | RGB10_A2 | GLenum | 是 |
| TEXTURE_BINDING_3D | [GLenum](#GLenum) | 是 | | TEXTURE_BINDING_3D | GLenum | 是 |
| UNPACK_SKIP_IMAGES | [GLenum](#GLenum) | 是 | | UNPACK_SKIP_IMAGES | GLenum | 是 |
| UNPACK_IMAGE_HEIGHT | [GLenum](#GLenum) | 是 | | UNPACK_IMAGE_HEIGHT | GLenum | 是 |
| TEXTURE_3D | [GLenum](#GLenum) | 是 | | TEXTURE_3D | GLenum | 是 |
| TEXTURE_WRAP_R | [GLenum](#GLenum) | 是 | | TEXTURE_WRAP_R | GLenum | 是 |
| MAX_3D_TEXTURE_SIZE | [GLenum](#GLenum) | 是 | | MAX_3D_TEXTURE_SIZE | GLenum | 是 |
| UNSIGNED_INT_2_10_10_10_REV | [GLenum](#GLenum) | 是 | | UNSIGNED_INT_2_10_10_10_REV | GLenum | 是 |
| MAX_ELEMENTS_VERTICES | [GLenum](#GLenum) | 是 | | MAX_ELEMENTS_VERTICES | GLenum | 是 |
| MAX_ELEMENTS_INDICES | [GLenum](#GLenum) | 是 | | MAX_ELEMENTS_INDICES | GLenum | 是 |
| TEXTURE_MIN_LOD | [GLenum](#GLenum) | 是 | | TEXTURE_MIN_LOD | GLenum | 是 |
| TEXTURE_MAX_LOD | [GLenum](#GLenum) | 是 | | TEXTURE_MAX_LOD | GLenum | 是 |
| TEXTURE_BASE_LEVEL | [GLenum](#GLenum) | 是 | | TEXTURE_BASE_LEVEL | GLenum | 是 |
| TEXTURE_MAX_LEVEL | [GLenum](#GLenum) | 是 | | TEXTURE_MAX_LEVEL | GLenum | 是 |
| MIN | [GLenum](#GLenum) | 是 | | MIN | GLenum | 是 |
| MAX | [GLenum](#GLenum) | 是 | | MAX | GLenum | 是 |
| DEPTH_COMPONENT24 | [GLenum](#GLenum) | 是 | | DEPTH_COMPONENT24 | GLenum | 是 |
| MAX_TEXTURE_LOD_BIAS | [GLenum](#GLenum) | 是 | | MAX_TEXTURE_LOD_BIAS | GLenum | 是 |
| TEXTURE_COMPARE_MODE | [GLenum](#GLenum) | 是 | | TEXTURE_COMPARE_MODE | GLenum | 是 |
| TEXTURE_COMPARE_FUNC | [GLenum](#GLenum) | 是 | | TEXTURE_COMPARE_FUNC | GLenum | 是 |
| CURRENT_QUERY | [GLenum](#GLenum) | 是 | | CURRENT_QUERY | GLenum | 是 |
| QUERY_RESULT | [GLenum](#GLenum) | 是 | | QUERY_RESULT | GLenum | 是 |
| QUERY_RESULT_AVAILABLE | [GLenum](#GLenum) | 是 | | QUERY_RESULT_AVAILABLE | GLenum | 是 |
| STREAM_READ | [GLenum](#GLenum) | 是 | | STREAM_READ | GLenum | 是 |
| STREAM_COPY | [GLenum](#GLenum) | 是 | | STREAM_COPY | GLenum | 是 |
| STATIC_READ | [GLenum](#GLenum) | 是 | | STATIC_READ | GLenum | 是 |
| STATIC_COPY | [GLenum](#GLenum) | 是 | | STATIC_COPY | GLenum | 是 |
| DYNAMIC_READ | [GLenum](#GLenum) | 是 | | DYNAMIC_READ | GLenum | 是 |
| DYNAMIC_COPY | [GLenum](#GLenum) | 是 | | DYNAMIC_COPY | GLenum | 是 |
| MAX_DRAW_BUFFERS | [GLenum](#GLenum) | 是 | | MAX_DRAW_BUFFERS | GLenum | 是 |
| DRAW_BUFFER0 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER0 | GLenum | 是 |
| DRAW_BUFFER1 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER1 | GLenum | 是 |
| DRAW_BUFFER2 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER2 | GLenum | 是 |
| DRAW_BUFFER3 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER3 | GLenum | 是 |
| DRAW_BUFFER4 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER4 | GLenum | 是 |
| DRAW_BUFFER5 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER5 | GLenum | 是 |
| DRAW_BUFFER6 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER6 | GLenum | 是 |
| DRAW_BUFFER7 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER7 | GLenum | 是 |
| DRAW_BUFFER8 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER8 | GLenum | 是 |
| DRAW_BUFFER9 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER9 | GLenum | 是 |
| DRAW_BUFFER10 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER10 | GLenum | 是 |
| DRAW_BUFFER11 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER11 | GLenum | 是 |
| DRAW_BUFFER12 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER12 | GLenum | 是 |
| DRAW_BUFFER13 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER13 | GLenum | 是 |
| DRAW_BUFFER14 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER14 | GLenum | 是 |
| DRAW_BUFFER15 | [GLenum](#GLenum) | 是 | | DRAW_BUFFER15 | GLenum | 是 |
| MAX_FRAGMENT_UNIFORM_COMPONENTS | [GLenum](#GLenum) | 是 | | MAX_FRAGMENT_UNIFORM_COMPONENTS | GLenum | 是 |
| MAX_VERTEX_UNIFORM_COMPONENTS | [GLenum](#GLenum) | 是 | | MAX_VERTEX_UNIFORM_COMPONENTS | GLenum | 是 |
| SAMPLER_3D | [GLenum](#GLenum) | 是 | | SAMPLER_3D | GLenum | 是 |
| SAMPLER_2D_SHADOW | [GLenum](#GLenum) | 是 | | SAMPLER_2D_SHADOW | GLenum | 是 |
| FRAGMENT_SHADER_DERIVATIVE_HINT | [GLenum](#GLenum) | 是 | | FRAGMENT_SHADER_DERIVATIVE_HINT | GLenum | 是 |
| PIXEL_PACK_BUFFER | [GLenum](#GLenum) | 是 | | PIXEL_PACK_BUFFER | GLenum | 是 |
| PIXEL_UNPACK_BUFFER | [GLenum](#GLenum) | 是 | | PIXEL_UNPACK_BUFFER | GLenum | 是 |
| PIXEL_PACK_BUFFER_BINDING | [GLenum](#GLenum) | 是 | | PIXEL_PACK_BUFFER_BINDING | GLenum | 是 |
| PIXEL_UNPACK_BUFFER_BINDING | [GLenum](#GLenum) | 是 | | PIXEL_UNPACK_BUFFER_BINDING | GLenum | 是 |
| FLOAT_MAT2x3 | [GLenum](#GLenum) | 是 | | FLOAT_MAT2x3 | GLenum | 是 |
| FLOAT_MAT2x4 | [GLenum](#GLenum) | 是 | | FLOAT_MAT2x4 | GLenum | 是 |
| FLOAT_MAT3x2 | [GLenum](#GLenum) | 是 | | FLOAT_MAT3x2 | GLenum | 是 |
| FLOAT_MAT3x4 | [GLenum](#GLenum) | 是 | | FLOAT_MAT3x4 | GLenum | 是 |
| FLOAT_MAT4x2 | [GLenum](#GLenum) | 是 | | FLOAT_MAT4x2 | GLenum | 是 |
| FLOAT_MAT4x3 | [GLenum](#GLenum) | 是 | | FLOAT_MAT4x3 | GLenum | 是 |
| SRGB | [GLenum](#GLenum) | 是 | | SRGB | GLenum | 是 |
| SRGB8 | [GLenum](#GLenum) | 是 | | SRGB8 | GLenum | 是 |
| SRGB8_ALPHA8 | [GLenum](#GLenum) | 是 | | SRGB8_ALPHA8 | GLenum | 是 |
| COMPARE_REF_TO_TEXTURE | [GLenum](#GLenum) | 是 | | COMPARE_REF_TO_TEXTURE | GLenum | 是 |
| RGBA32F | [GLenum](#GLenum) | 是 | | RGBA32F | GLenum | 是 |
| RGB32F | [GLenum](#GLenum) | 是 | | RGB32F | GLenum | 是 |
| RGBA16F | [GLenum](#GLenum) | 是 | | RGBA16F | GLenum | 是 |
| RGB16F | [GLenum](#GLenum) | 是 | | RGB16F | GLenum | 是 |
| VERTEX_ATTRIB_ARRAY_INTEGER | [GLenum](#GLenum) | 是 | | VERTEX_ATTRIB_ARRAY_INTEGER | GLenum | 是 |
| MAX_ARRAY_TEXTURE_LAYERS | [GLenum](#GLenum) | 是 | | MAX_ARRAY_TEXTURE_LAYERS | GLenum | 是 |
| MIN_PROGRAM_TEXEL_OFFSET | [GLenum](#GLenum) | 是 | | MIN_PROGRAM_TEXEL_OFFSET | GLenum | 是 |
| MAX_PROGRAM_TEXEL_OFFSET | [GLenum](#GLenum) | 是 | | MAX_PROGRAM_TEXEL_OFFSET | GLenum | 是 |
| MAX_VARYING_COMPONENTS | [GLenum](#GLenum) | 是 | | MAX_VARYING_COMPONENTS | GLenum | 是 |
| TEXTURE_2D_ARRAY | [GLenum](#GLenum) | 是 | | TEXTURE_2D_ARRAY | GLenum | 是 |
| TEXTURE_BINDING_2D_ARRAY | [GLenum](#GLenum) | 是 | | TEXTURE_BINDING_2D_ARRAY | GLenum | 是 |
| R11F_G11F_B10F | [GLenum](#GLenum) | 是 | | R11F_G11F_B10F | GLenum | 是 |
| UNSIGNED_INT_10F_11F_11F_REV | [GLenum](#GLenum) | 是 | | UNSIGNED_INT_10F_11F_11F_REV | GLenum | 是 |
| RGB9_E5 | [GLenum](#GLenum) | 是 | | RGB9_E5 | GLenum | 是 |
| UNSIGNED_INT_5_9_9_9_REV | [GLenum](#GLenum) | 是 | | UNSIGNED_INT_5_9_9_9_REV | GLenum | 是 |
| TRANSFORM_FEEDBACK_BUFFER_MODE | [GLenum](#GLenum) | 是 | | TRANSFORM_FEEDBACK_BUFFER_MODE | GLenum | 是 |
| MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS | [GLenum](#GLenum) | 是 | | MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS | GLenum | 是 |
| TRANSFORM_FEEDBACK_VARYINGS | [GLenum](#GLenum) | 是 | | TRANSFORM_FEEDBACK_VARYINGS | GLenum | 是 |
| TRANSFORM_FEEDBACK_BUFFER_START | [GLenum](#GLenum) | 是 | | TRANSFORM_FEEDBACK_BUFFER_START | GLenum | 是 |
| TRANSFORM_FEEDBACK_BUFFER_SIZE | [GLenum](#GLenum) | 是 | | TRANSFORM_FEEDBACK_BUFFER_SIZE | GLenum | 是 |
| TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN | [GLenum](#GLenum) | 是 | | TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN | GLenum | 是 |
| RASTERIZER_DISCARD | [GLenum](#GLenum) | 是 | | RASTERIZER_DISCARD | GLenum | 是 |
| MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS | [GLenum](#GLenum) | 是 | | MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS | GLenum | 是 |
| MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS | [GLenum](#GLenum) | 是 | | MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS | GLenum | 是 |
| INTERLEAVED_ATTRIBS | [GLenum](#GLenum) | 是 | | INTERLEAVED_ATTRIBS | GLenum | 是 |
| SEPARATE_ATTRIBS | [GLenum](#GLenum) | 是 | | SEPARATE_ATTRIBS | GLenum | 是 |
| TRANSFORM_FEEDBACK_BUFFER | [GLenum](#GLenum) | 是 | | TRANSFORM_FEEDBACK_BUFFER | GLenum | 是 |
| TRANSFORM_FEEDBACK_BUFFER_BINDING | [GLenum](#GLenum) | 是 | | TRANSFORM_FEEDBACK_BUFFER_BINDING | GLenum | 是 |
| RGBA32UI | [GLenum](#GLenum) | 是 | | RGBA32UI | GLenum | 是 |
| RGB32UI | [GLenum](#GLenum) | 是 | | RGB32UI | GLenum | 是 |
| RGBA16UI | [GLenum](#GLenum) | 是 | | RGBA16UI | GLenum | 是 |
| RGB16UI | [GLenum](#GLenum) | 是 | | RGB16UI | GLenum | 是 |
| RGBA8UI | [GLenum](#GLenum) | 是 | | RGBA8UI | GLenum | 是 |
| RGB8UI | [GLenum](#GLenum) | 是 | | RGB8UI | GLenum | 是 |
| RGBA32I | [GLenum](#GLenum) | 是 | | RGBA32I | GLenum | 是 |
| RGB32I | [GLenum](#GLenum) | 是 | | RGB32I | GLenum | 是 |
| RGBA16I | [GLenum](#GLenum) | 是 | | RGBA16I | GLenum | 是 |
| RGB16I | [GLenum](#GLenum) | 是 | | RGB16I | GLenum | 是 |
| RGBA8I | [GLenum](#GLenum) | 是 | | RGBA8I | GLenum | 是 |
| RGB8I | [GLenum](#GLenum) | 是 | | RGB8I | GLenum | 是 |
| RED_INTEGER | [GLenum](#GLenum) | 是 | | RED_INTEGER | GLenum | 是 |
| RGB_INTEGER | [GLenum](#GLenum) | 是 | | RGB_INTEGER | GLenum | 是 |
| RGBA_INTEGER | [GLenum](#GLenum) | 是 | | RGBA_INTEGER | GLenum | 是 |
| SAMPLER_2D_ARRAY | [GLenum](#GLenum) | 是 | | SAMPLER_2D_ARRAY | GLenum | 是 |
| SAMPLER_2D_ARRAY_SHADOW | [GLenum](#GLenum) | 是 | | SAMPLER_2D_ARRAY_SHADOW | GLenum | 是 |
| SAMPLER_CUBE_SHADOW | [GLenum](#GLenum) | 是 | | SAMPLER_CUBE_SHADOW | GLenum | 是 |
| UNSIGNED_INT_VEC2 | [GLenum](#GLenum) | 是 | | UNSIGNED_INT_VEC2 | GLenum | 是 |
| UNSIGNED_INT_VEC3 | [GLenum](#GLenum) | 是 | | UNSIGNED_INT_VEC3 | GLenum | 是 |
| UNSIGNED_INT_VEC4 | [GLenum](#GLenum) | 是 | | UNSIGNED_INT_VEC4 | GLenum | 是 |
| INT_SAMPLER_2D | [GLenum](#GLenum) | 是 | | INT_SAMPLER_2D | GLenum | 是 |
| INT_SAMPLER_3D | [GLenum](#GLenum) | 是 | | INT_SAMPLER_3D | GLenum | 是 |
| INT_SAMPLER_CUBE | [GLenum](#GLenum) | 是 | | INT_SAMPLER_CUBE | GLenum | 是 |
| INT_SAMPLER_2D_ARRAY | [GLenum](#GLenum) | 是 | | INT_SAMPLER_2D_ARRAY | GLenum | 是 |
| UNSIGNED_INT_SAMPLER_2D | [GLenum](#GLenum) | 是 | | UNSIGNED_INT_SAMPLER_2D | GLenum | 是 |
| UNSIGNED_INT_SAMPLER_3D | [GLenum](#GLenum) | 是 | | UNSIGNED_INT_SAMPLER_3D | GLenum | 是 |
| UNSIGNED_INT_SAMPLER_CUBE | [GLenum](#GLenum) | 是 | | UNSIGNED_INT_SAMPLER_CUBE | GLenum | 是 |
| UNSIGNED_INT_SAMPLER_2D_ARRAY | [GLenum](#GLenum) | 是 | | UNSIGNED_INT_SAMPLER_2D_ARRAY | GLenum | 是 |
| DEPTH_COMPONENT32F | [GLenum](#GLenum) | 是 | | DEPTH_COMPONENT32F | GLenum | 是 |
| DEPTH32F_STENCIL8 | [GLenum](#GLenum) | 是 | | DEPTH32F_STENCIL8 | GLenum | 是 |
| FLOAT_32_UNSIGNED_INT_24_8_REV | [GLenum](#GLenum) | 是 | | FLOAT_32_UNSIGNED_INT_24_8_REV | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING | [GLenum](#GLenum) | 是 | | FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE | [GLenum](#GLenum) | 是 | | FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_RED_SIZE | [GLenum](#GLenum) | 是 | | FRAMEBUFFER_ATTACHMENT_RED_SIZE | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_GREEN_SIZE | [GLenum](#GLenum) | 是 | | FRAMEBUFFER_ATTACHMENT_GREEN_SIZE | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_BLUE_SIZE | [GLenum](#GLenum) | 是 | | FRAMEBUFFER_ATTACHMENT_BLUE_SIZE | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE | [GLenum](#GLenum) | 是 | | FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE | [GLenum](#GLenum) | 是 | | FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE | [GLenum](#GLenum) | 是 | | FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE | GLenum | 是 |
| FRAMEBUFFER_DEFAULT | [GLenum](#GLenum) | 是 | | FRAMEBUFFER_DEFAULT | GLenum | 是 |
| UNSIGNED_INT_24_8 | [GLenum](#GLenum) | 是 | | UNSIGNED_INT_24_8 | GLenum | 是 |
| DEPTH24_STENCIL8 | [GLenum](#GLenum) | 是 | | DEPTH24_STENCIL8 | GLenum | 是 |
| UNSIGNED_NORMALIZED | [GLenum](#GLenum) | 是 | | UNSIGNED_NORMALIZED | GLenum | 是 |
| DRAW_FRAMEBUFFER_BINDING | [GLenum](#GLenum) | 是 | | DRAW_FRAMEBUFFER_BINDING | GLenum | 是 |
| READ_FRAMEBUFFER | [GLenum](#GLenum) | 是 | | READ_FRAMEBUFFER | GLenum | 是 |
| DRAW_FRAMEBUFFER | [GLenum](#GLenum) | 是 | | DRAW_FRAMEBUFFER | GLenum | 是 |
| READ_FRAMEBUFFER_BINDING | [GLenum](#GLenum) | 是 | | READ_FRAMEBUFFER_BINDING | GLenum | 是 |
| RENDERBUFFER_SAMPLES | [GLenum](#GLenum) | 是 | | RENDERBUFFER_SAMPLES | GLenum | 是 |
| FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER | [GLenum](#GLenum) | 是 | | FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER | GLenum | 是 |
| MAX_COLOR_ATTACHMENTS | [GLenum](#GLenum) | 是 | | MAX_COLOR_ATTACHMENTS | GLenum | 是 |
| COLOR_ATTACHMENT1 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT1 | GLenum | 是 |
| COLOR_ATTACHMENT2 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT2 | GLenum | 是 |
| COLOR_ATTACHMENT3 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT3 | GLenum | 是 |
| COLOR_ATTACHMENT4 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT4 | GLenum | 是 |
| COLOR_ATTACHMENT5 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT5 | GLenum | 是 |
| COLOR_ATTACHMENT6 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT6 | GLenum | 是 |
| COLOR_ATTACHMENT7 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT7 | GLenum | 是 |
| COLOR_ATTACHMENT8 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT8 | GLenum | 是 |
| COLOR_ATTACHMENT9 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT9 | GLenum | 是 |
| COLOR_ATTACHMENT10 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT10 | GLenum | 是 |
| COLOR_ATTACHMENT11 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT11 | GLenum | 是 |
| COLOR_ATTACHMENT12 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT12 | GLenum | 是 |
| COLOR_ATTACHMENT13 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT13 | GLenum | 是 |
| COLOR_ATTACHMENT14 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT14 | GLenum | 是 |
| COLOR_ATTACHMENT15 | [GLenum](#GLenum) | 是 | | COLOR_ATTACHMENT15 | GLenum | 是 |
| FRAMEBUFFER_INCOMPLETE_MULTISAMPLE | [GLenum](#GLenum) | 是 | | FRAMEBUFFER_INCOMPLETE_MULTISAMPLE | GLenum | 是 |
| MAX_SAMPLES | [GLenum](#GLenum) | 是 | | MAX_SAMPLES | GLenum | 是 |
| HALF_FLOAT | [GLenum](#GLenum) | 是 | | HALF_FLOAT | GLenum | 是 |
| RG | [GLenum](#GLenum) | 是 | | RG | GLenum | 是 |
| RG_INTEGER | [GLenum](#GLenum) | 是 | | RG_INTEGER | GLenum | 是 |
| R8 | [GLenum](#GLenum) | 是 | | R8 | GLenum | 是 |
| RG8 | [GLenum](#GLenum) | 是 | | RG8 | GLenum | 是 |
| R16F | [GLenum](#GLenum) | 是 | | R16F | GLenum | 是 |
| R32F | [GLenum](#GLenum) | 是 | | R32F | GLenum | 是 |
| RG16F | [GLenum](#GLenum) | 是 | | RG16F | GLenum | 是 |
| RG32F | [GLenum](#GLenum) | 是 | | RG32F | GLenum | 是 |
| R8I | [GLenum](#GLenum) | 是 | | R8I | GLenum | 是 |
| R8UI | [GLenum](#GLenum) | 是 | | R8UI | GLenum | 是 |
| R16I | [GLenum](#GLenum) | 是 | | R16I | GLenum | 是 |
| R16UI | [GLenum](#GLenum) | 是 | | R16UI | GLenum | 是 |
| R32I | [GLenum](#GLenum) | 是 | | R32I | GLenum | 是 |
| R32UI | [GLenum](#GLenum) | 是 | | R32UI | GLenum | 是 |
| RG8I | [GLenum](#GLenum) | 是 | | RG8I | GLenum | 是 |
| RG8UI | [GLenum](#GLenum) | 是 | | RG8UI | GLenum | 是 |
| RG16I | [GLenum](#GLenum) | 是 | | RG16I | GLenum | 是 |
| RG16UI | [GLenum](#GLenum) | 是 | | RG16UI | GLenum | 是 |
| RG32I | [GLenum](#GLenum) | 是 | | RG32I | GLenum | 是 |
| RG32UI | [GLenum](#GLenum) | 是 | | RG32UI | GLenum | 是 |
| VERTEX_ARRAY_BINDING | [GLenum](#GLenum) | 是 | | VERTEX_ARRAY_BINDING | GLenum | 是 |
| R8_SNORM | [GLenum](#GLenum) | 是 | | R8_SNORM | GLenum | 是 |
| RG8_SNORM | [GLenum](#GLenum) | 是 | | RG8_SNORM | GLenum | 是 |
| RGB8_SNORM | [GLenum](#GLenum) | 是 | | RGB8_SNORM | GLenum | 是 |
| SIGNED_NORMALIZED | [GLenum](#GLenum) | 是 | | SIGNED_NORMALIZED | GLenum | 是 |
| COPY_READ_BUFFER | [GLenum](#GLenum) | 是 | | COPY_READ_BUFFER | GLenum | 是 |
| COPY_WRITE_BUFFER | [GLenum](#GLenum) | 是 | | COPY_WRITE_BUFFER | GLenum | 是 |
| COPY_READ_BUFFER_BINDING | [GLenum](#GLenum) | 是 | | COPY_READ_BUFFER_BINDING | GLenum | 是 |
| COPY_WRITE_BUFFER_BINDING | [GLenum](#GLenum) | 是 | | COPY_WRITE_BUFFER_BINDING | GLenum | 是 |
| UNIFORM_BUFFER | [GLenum](#GLenum) | 是 | | UNIFORM_BUFFER | GLenum | 是 |
| UNIFORM_BUFFER_BINDING | [GLenum](#GLenum) | 是 | | UNIFORM_BUFFER_BINDING | GLenum | 是 |
| UNIFORM_BUFFER_START | [GLenum](#GLenum) | 是 | | UNIFORM_BUFFER_START | GLenum | 是 |
| UNIFORM_BUFFER_SIZE | [GLenum](#GLenum) | 是 | | UNIFORM_BUFFER_SIZE | GLenum | 是 |
| MAX_VERTEX_UNIFORM_BLOCKS | [GLenum](#GLenum) | 是 | | MAX_VERTEX_UNIFORM_BLOCKS | GLenum | 是 |
| MAX_FRAGMENT_UNIFORM_BLOCKS | [GLenum](#GLenum) | 是 | | MAX_FRAGMENT_UNIFORM_BLOCKS | GLenum | 是 |
| MAX_COMBINED_UNIFORM_BLOCKS | [GLenum](#GLenum) | 是 | | MAX_COMBINED_UNIFORM_BLOCKS | GLenum | 是 |
| MAX_UNIFORM_BUFFER_BINDINGS | [GLenum](#GLenum) | 是 | | MAX_UNIFORM_BUFFER_BINDINGS | GLenum | 是 |
| MAX_UNIFORM_BLOCK_SIZE | [GLenum](#GLenum) | 是 | | MAX_UNIFORM_BLOCK_SIZE | GLenum | 是 |
| MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS | [GLenum](#GLenum) | 是 | | MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS | GLenum | 是 |
| MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS | [GLenum](#GLenum) | 是 | | MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS | GLenum | 是 |
| UNIFORM_BUFFER_OFFSET_ALIGNMENT | [GLenum](#GLenum) | 是 | | UNIFORM_BUFFER_OFFSET_ALIGNMENT | GLenum | 是 |
| ACTIVE_UNIFORM_BLOCKS | [GLenum](#GLenum) | 是 | | ACTIVE_UNIFORM_BLOCKS | GLenum | 是 |
| UNIFORM_TYPE | [GLenum](#GLenum) | 是 | | UNIFORM_TYPE | GLenum | 是 |
| UNIFORM_SIZE | [GLenum](#GLenum) | 是 | | UNIFORM_SIZE | GLenum | 是 |
| UNIFORM_BLOCK_INDEX | [GLenum](#GLenum) | 是 | | UNIFORM_BLOCK_INDEX | GLenum | 是 |
| UNIFORM_OFFSET | [GLenum](#GLenum) | 是 | | UNIFORM_OFFSET | GLenum | 是 |
| UNIFORM_ARRAY_STRIDE | [GLenum](#GLenum) | 是 | | UNIFORM_ARRAY_STRIDE | GLenum | 是 |
| UNIFORM_MATRIX_STRIDE | [GLenum](#GLenum) | 是 | | UNIFORM_MATRIX_STRIDE | GLenum | 是 |
| UNIFORM_IS_ROW_MAJOR | [GLenum](#GLenum) | 是 | | UNIFORM_IS_ROW_MAJOR | GLenum | 是 |
| UNIFORM_BLOCK_BINDING | [GLenum](#GLenum) | 是 | | UNIFORM_BLOCK_BINDING | GLenum | 是 |
| UNIFORM_BLOCK_DATA_SIZE | [GLenum](#GLenum) | 是 | | UNIFORM_BLOCK_DATA_SIZE | GLenum | 是 |
| UNIFORM_BLOCK_ACTIVE_UNIFORMS | [GLenum](#GLenum) | 是 | | UNIFORM_BLOCK_ACTIVE_UNIFORMS | GLenum | 是 |
| UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES | [GLenum](#GLenum) | 是 | | UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES | GLenum | 是 |
| UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER | [GLenum](#GLenum) | 是 | | UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER | GLenum | 是 |
| UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER | [GLenum](#GLenum) | 是 | | UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER | GLenum | 是 |
| INVALID_INDEX | [GLenum](#GLenum) | 是 | | INVALID_INDEX | GLenum | 是 |
| MAX_VERTEX_OUTPUT_COMPONENTS | [GLenum](#GLenum) | 是 | | MAX_VERTEX_OUTPUT_COMPONENTS | GLenum | 是 |
| MAX_FRAGMENT_INPUT_COMPONENTS | [GLenum](#GLenum) | 是 | | MAX_FRAGMENT_INPUT_COMPONENTS | GLenum | 是 |
| MAX_SERVER_WAIT_TIMEOUT | [GLenum](#GLenum) | 是 | | MAX_SERVER_WAIT_TIMEOUT | GLenum | 是 |
| OBJECT_TYPE | [GLenum](#GLenum) | 是 | | OBJECT_TYPE | GLenum | 是 |
| SYNC_CONDITION | [GLenum](#GLenum) | 是 | | SYNC_CONDITION | GLenum | 是 |
| SYNC_STATUS | [GLenum](#GLenum) | 是 | | SYNC_STATUS | GLenum | 是 |
| SYNC_FLAGS | [GLenum](#GLenum) | 是 | | SYNC_FLAGS | GLenum | 是 |
| SYNC_FENCE | [GLenum](#GLenum) | 是 | | SYNC_FENCE | GLenum | 是 |
| SYNC_GPU_COMMANDS_COMPLETE | [GLenum](#GLenum) | 是 | | SYNC_GPU_COMMANDS_COMPLETE | GLenum | 是 |
| UNSIGNALED | [GLenum](#GLenum) | 是 | | UNSIGNALED | GLenum | 是 |
| SIGNALED | [GLenum](#GLenum) | 是 | | SIGNALED | GLenum | 是 |
| ALREADY_SIGNALED | [GLenum](#GLenum) | 是 | | ALREADY_SIGNALED | GLenum | 是 |
| TIMEOUT_EXPIRED | [GLenum](#GLenum) | 是 | | TIMEOUT_EXPIRED | GLenum | 是 |
| CONDITION_SATISFIED | [GLenum](#GLenum) | 是 | | CONDITION_SATISFIED | GLenum | 是 |
| WAIT_FAILED | [GLenum](#GLenum) | 是 | | WAIT_FAILED | GLenum | 是 |
| SYNC_FLUSH_COMMANDS_BIT | [GLenum](#GLenum) | 是 | | SYNC_FLUSH_COMMANDS_BIT | GLenum | 是 |
| VERTEX_ATTRIB_ARRAY_DIVISOR | [GLenum](#GLenum) | 是 | | VERTEX_ATTRIB_ARRAY_DIVISOR | GLenum | 是 |
| ANY_SAMPLES_PASSED | [GLenum](#GLenum) | 是 | | ANY_SAMPLES_PASSED | GLenum | 是 |
| ANY_SAMPLES_PASSED_CONSERVATIVE | [GLenum](#GLenum) | 是 | | ANY_SAMPLES_PASSED_CONSERVATIVE | GLenum | 是 |
| SAMPLER_BINDING | [GLenum](#GLenum) | 是 | | SAMPLER_BINDING | GLenum | 是 |
| RGB10_A2UI | [GLenum](#GLenum) | 是 | | RGB10_A2UI | GLenum | 是 |
| INT_2_10_10_10_REV | [GLenum](#GLenum) | 是 | | INT_2_10_10_10_REV | GLenum | 是 |
| TRANSFORM_FEEDBACK | [GLenum](#GLenum) | 是 | | TRANSFORM_FEEDBACK | GLenum | 是 |
| TRANSFORM_FEEDBACK_PAUSED | [GLenum](#GLenum) | 是 | | TRANSFORM_FEEDBACK_PAUSED | GLenum | 是 |
| TRANSFORM_FEEDBACK_ACTIVE | [GLenum](#GLenum) | 是 | | TRANSFORM_FEEDBACK_ACTIVE | GLenum | 是 |
| TRANSFORM_FEEDBACK_BINDING | [GLenum](#GLenum) | 是 | | TRANSFORM_FEEDBACK_BINDING | GLenum | 是 |
| TEXTURE_IMMUTABLE_FORMAT | [GLenum](#GLenum) | 是 | | TEXTURE_IMMUTABLE_FORMAT | GLenum | 是 |
| MAX_ELEMENT_INDEX | [GLenum](#GLenum) | 是 | | MAX_ELEMENT_INDEX | GLenum | 是 |
| TEXTURE_IMMUTABLE_LEVELS | [GLenum](#GLenum) | 是 | | TEXTURE_IMMUTABLE_LEVELS | GLenum | 是 |
| TIMEOUT_IGNORED | [GLenum](#GLenum) | 是 | | TIMEOUT_IGNORED | GLint64 | 是 |
| MAX_CLIENT_WAIT_TIMEOUT_WEBGL | [GLenum](#GLenum) | 是 | | MAX_CLIENT_WAIT_TIMEOUT_WEBGL | GLenum | 是 |
### 方法 ### 方法
| 方法 | 返回值类型 | | 方法 | 返回值类型 |
| -------- | ---------- | | -------- | -------- |
| copyBufferSubData(readTarget:&nbsp; GLenum,&nbsp; writeTarget:&nbsp; GLenum,&nbsp; readOffset:&nbsp; GLintptr,&nbsp; writeOffset:&nbsp; GLintptr,&nbsp; size:&nbsp; GLsizeiptr) | void | | copyBufferSubData(readTarget:&nbsp;GLenum,&nbsp;writeTarget:&nbsp;GLenum,&nbsp;readOffset:&nbsp;GLintptr,&nbsp;writeOffset:&nbsp;GLintptr,&nbsp;size:&nbsp;GLsizeiptr) | void |
| getBufferSubData(target:&nbsp; GLenum,&nbsp; srcByteOffset:&nbsp; GLintptr,&nbsp; dstBuffer:&nbsp; ArrayBufferView,&nbsp; dstOffset?:&nbsp; GLuint,&nbsp; length?:&nbsp; GLuint) | void | | getBufferSubData(target:&nbsp;GLenum,&nbsp;srcByteOffset:&nbsp;GLintptr,&nbsp;dstBuffer:&nbsp;ArrayBufferView,&nbsp;dstOffset?:&nbsp;GLuint,&nbsp;length?:&nbsp;GLuint) | void |
| blitFramebuffer(srcX0:&nbsp; GLint,&nbsp; srcY0:&nbsp; GLint,&nbsp; srcX1:&nbsp; GLint,&nbsp; srcY1:&nbsp; GLint,&nbsp; dstX0:&nbsp; GLint,&nbsp; dstY0:&nbsp; GLint,&nbsp; dstX1:&nbsp; GLint,&nbsp; dstY1:&nbsp; GLint,&nbsp; mask:&nbsp; GLbitfield,&nbsp; filter:&nbsp; GLenum) | void | | blitFramebuffer(srcX0:&nbsp;GLint,&nbsp;srcY0:&nbsp;GLint,&nbsp;srcX1:&nbsp;GLint,&nbsp;srcY1:&nbsp;GLint,&nbsp;dstX0:&nbsp;GLint,&nbsp;dstY0:&nbsp;GLint,&nbsp;dstX1:&nbsp;GLint,&nbsp;dstY1:&nbsp;GLint,&nbsp;mask:&nbsp;GLbitfield,&nbsp;filter:&nbsp;GLenum) | void |
| framebufferTextureLayer(target:&nbsp; GLenum,&nbsp; attachment:&nbsp; GLenum,&nbsp; texture:&nbsp; WebGLTexture&nbsp;\|&nbsp;null,&nbsp; level:&nbsp; GLint,&nbsp; layer:&nbsp; GLint) | void | | framebufferTextureLayer(target:&nbsp;GLenum,&nbsp;attachment:&nbsp;GLenum,&nbsp;texture:&nbsp;WebGLTexture&nbsp;\|&nbsp;null,&nbsp;level:&nbsp;GLint,&nbsp;layer:&nbsp;GLint) | void |
| invalidateFramebuffer(target:&nbsp; GLenum,&nbsp; attachments:&nbsp; GLenum[]) | void | | invalidateFramebuffer(target:&nbsp;GLenum,&nbsp;attachments:&nbsp;GLenum[]) | void |
| invalidateSubFramebuffer(target:&nbsp; GLenum,&nbsp; attachments:&nbsp; GLenum[],&nbsp; x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei) | void | | invalidateSubFramebuffer(target:&nbsp;GLenum,&nbsp;attachments:&nbsp;GLenum[],&nbsp;x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void |
| readBuffer(src:&nbsp; GLenum) | void | | readBuffer(src:&nbsp;GLenum) | void |
| getInternalformatParameter(target:&nbsp; GLenum,&nbsp; internalformat:&nbsp; GLenum,&nbsp; pname:&nbsp; GLenum) | any | | getInternalformatParameter(target:&nbsp;GLenum,&nbsp;internalformat:&nbsp;GLenum,&nbsp;pname:&nbsp;GLenum) | any |
| renderbufferStorageMultisample(target:&nbsp; GLenum,&nbsp; samples:&nbsp; GLsizei,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei) | void | | renderbufferStorageMultisample(target:&nbsp;GLenum,&nbsp;samples:&nbsp;GLsizei,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void |
| texStorage2D(target:&nbsp; GLenum,&nbsp; levels:&nbsp; GLsizei,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei) | void | | texStorage2D(target:&nbsp;GLenum,&nbsp;levels:&nbsp;GLsizei,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void |
| texStorage3D(target:&nbsp; GLenum,&nbsp; levels:&nbsp; GLsizei,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei) | void | | texStorage3D(target:&nbsp;GLenum,&nbsp;levels:&nbsp;GLsizei,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei) | void |
| texImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pboOffset:&nbsp; GLintptr) | void | | texImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pboOffset:&nbsp;GLintptr) | void |
| texImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView&nbsp;\|&nbsp;null) | void | | texImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
| texImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset:&nbsp; GLuint) | void | | texImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset:&nbsp;GLuint) | void |
| texSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pboOffset:&nbsp; GLintptr) | void | | texSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pboOffset:&nbsp;GLintptr) | void |
| texSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView&nbsp;\|&nbsp;null,&nbsp; srcOffset?:&nbsp; GLuint) | void | | texSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null,&nbsp;srcOffset?:&nbsp;GLuint) | void |
| copyTexSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei) | void | | copyTexSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei) | void |
| compressedTexImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; imageSize:&nbsp; GLsizei,&nbsp; offset:&nbsp; GLintptr) | void | | compressedTexImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;imageSize:&nbsp;GLsizei,&nbsp;offset:&nbsp;GLintptr) | void |
| compressedTexImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLengthOverride?:&nbsp; GLuint) | void | | compressedTexImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLengthOverride?:&nbsp;GLuint) | void |
| compressedTexSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; imageSize:&nbsp; GLsizei,&nbsp; offset:&nbsp; GLintptr) | void | | compressedTexSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;imageSize:&nbsp;GLsizei,&nbsp;offset:&nbsp;GLintptr) | void |
| compressedTexSubImage3D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; zoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; depth:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLengthOverride?:&nbsp; GLuint) | void | | compressedTexSubImage3D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;zoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;depth:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLengthOverride?:&nbsp;GLuint) | void |
| getFragDataLocation(program:&nbsp; WebGLProgram,&nbsp; name:&nbsp; string) | GLint | | getFragDataLocation(program:&nbsp;WebGLProgram,&nbsp;name:&nbsp;string) | GLint |
| uniform1ui(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; v0:&nbsp; GLuint) | void | | uniform1ui(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;v0:&nbsp;GLuint) | void |
| uniform2ui(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; v0:&nbsp; GLuint,&nbsp; v1:&nbsp; GLuint) | void | | uniform2ui(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;v0:&nbsp;GLuint,&nbsp;v1:&nbsp;GLuint) | void |
| uniform3ui(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; v0:&nbsp; GLuint,&nbsp; v1:&nbsp; GLuint,&nbsp; v2:&nbsp; GLuint) | void | | uniform3ui(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;v0:&nbsp;GLuint,&nbsp;v1:&nbsp;GLuint,&nbsp;v2:&nbsp;GLuint) | void |
| uniform4ui(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; v0:&nbsp; GLuint,&nbsp; v1:&nbsp; GLuint,&nbsp; v2:&nbsp; GLuint,&nbsp; v3:&nbsp; GLuint) | void | | uniform4ui(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;v0:&nbsp;GLuint,&nbsp;v1:&nbsp;GLuint,&nbsp;v2:&nbsp;GLuint,&nbsp;v3:&nbsp;GLuint) | void |
| uniform1uiv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Uint32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform1uiv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Uint32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform2uiv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Uint32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform2uiv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Uint32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform3uiv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Uint32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform3uiv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Uint32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform4uiv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Uint32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform4uiv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Uint32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix3x2fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix3x2fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix4x2fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix4x2fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix2x3fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix2x3fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix4x3fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix4x3fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix2x4fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix2x4fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix3x4fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix3x4fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| vertexAttribI4i(index:&nbsp; GLuint,&nbsp; x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; z:&nbsp; GLint,&nbsp; w:&nbsp; GLint) | void | | vertexAttribI4i(index:&nbsp;GLuint,&nbsp;x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;z:&nbsp;GLint,&nbsp;w:&nbsp;GLint) | void |
| vertexAttribI4iv(index:&nbsp; GLuint,&nbsp; values:&nbsp; Int32List) | void | | vertexAttribI4iv(index:&nbsp;GLuint,&nbsp;values:&nbsp;Int32List) | void |
| vertexAttribI4ui(index:&nbsp; GLuint,&nbsp; x:&nbsp; GLuint,&nbsp; y:&nbsp; GLuint,&nbsp; z:&nbsp; GLuint,&nbsp; w:&nbsp; GLuint) | void | | vertexAttribI4ui(index:&nbsp;GLuint,&nbsp;x:&nbsp;GLuint,&nbsp;y:&nbsp;GLuint,&nbsp;z:&nbsp;GLuint,&nbsp;w:&nbsp;GLuint) | void |
| vertexAttribI4uiv(index:&nbsp; GLuint,&nbsp; values:&nbsp; Uint32List) | void | | vertexAttribI4uiv(index:&nbsp;GLuint,&nbsp;values:&nbsp;Uint32List) | void |
| vertexAttribIPointer(index:&nbsp; GLuint,&nbsp; size:&nbsp; GLint,&nbsp; type:&nbsp; GLenum,&nbsp; stride:&nbsp; GLsizei,&nbsp; offset:&nbsp; GLintptr) | void | | vertexAttribIPointer(index:&nbsp;GLuint,&nbsp;size:&nbsp;GLint,&nbsp;type:&nbsp;GLenum,&nbsp;stride:&nbsp;GLsizei,&nbsp;offset:&nbsp;GLintptr) | void |
| vertexAttribDivisor(index:&nbsp; GLuint,&nbsp; divisor:&nbsp; GLuint) | void | | vertexAttribDivisor(index:&nbsp;GLuint,&nbsp;divisor:&nbsp;GLuint) | void |
| drawArraysInstanced(mode:&nbsp; GLenum,&nbsp; first:&nbsp; GLint,&nbsp; count:&nbsp; GLsizei,&nbsp; instanceCount:&nbsp; GLsizei) | void | | drawArraysInstanced(mode:&nbsp;GLenum,&nbsp;first:&nbsp;GLint,&nbsp;count:&nbsp;GLsizei,&nbsp;instanceCount:&nbsp;GLsizei) | void |
| drawElementsInstanced(mode:&nbsp; GLenum,&nbsp; count:&nbsp; GLsizei,&nbsp; type:&nbsp; GLenum,&nbsp; offset:&nbsp; GLintptr,&nbsp; instanceCount:&nbsp; GLsizei) | void | | drawElementsInstanced(mode:&nbsp;GLenum,&nbsp;count:&nbsp;GLsizei,&nbsp;type:&nbsp;GLenum,&nbsp;offset:&nbsp;GLintptr,&nbsp;instanceCount:&nbsp;GLsizei) | void |
| drawRangeElements(mode:&nbsp; GLenum,&nbsp; start:&nbsp; GLuint,&nbsp; end:&nbsp; GLuint,&nbsp; count:&nbsp; GLsizei,&nbsp; type:&nbsp; GLenum,&nbsp; offset:&nbsp; GLintptr) | void | | drawRangeElements(mode:&nbsp;GLenum,&nbsp;start:&nbsp;GLuint,&nbsp;end:&nbsp;GLuint,&nbsp;count:&nbsp;GLsizei,&nbsp;type:&nbsp;GLenum,&nbsp;offset:&nbsp;GLintptr) | void |
| drawBuffers(buffers:&nbsp; GLenum[]) | void | | drawBuffers(buffers:&nbsp;GLenum[]) | void |
| clearBufferfv(buffer:&nbsp; GLenum,&nbsp; drawbuffer:&nbsp; GLint,&nbsp; values:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint) | void | | clearBufferfv(buffer:&nbsp;GLenum,&nbsp;drawbuffer:&nbsp;GLint,&nbsp;values:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint) | void |
| clearBufferiv(buffer:&nbsp; GLenum,&nbsp; drawbuffer:&nbsp; GLint,&nbsp; values:&nbsp; Int32List,&nbsp; srcOffset?:&nbsp; GLuint) | void | | clearBufferiv(buffer:&nbsp;GLenum,&nbsp;drawbuffer:&nbsp;GLint,&nbsp;values:&nbsp;Int32List,&nbsp;srcOffset?:&nbsp;GLuint) | void |
| clearBufferuiv(buffer:&nbsp; GLenum,&nbsp; drawbuffer:&nbsp; GLint,&nbsp; values:&nbsp; Uint32List,&nbsp; srcOffset?:&nbsp; GLuint) | void | | clearBufferuiv(buffer:&nbsp;GLenum,&nbsp;drawbuffer:&nbsp;GLint,&nbsp;values:&nbsp;Uint32List,&nbsp;srcOffset?:&nbsp;GLuint) | void |
| clearBufferfi(buffer:&nbsp; GLenum,&nbsp; drawbuffer:&nbsp; GLint,&nbsp; depth:&nbsp; GLfloat,&nbsp; stencil:&nbsp; GLint) | void | | clearBufferfi(buffer:&nbsp;GLenum,&nbsp;drawbuffer:&nbsp;GLint,&nbsp;depth:&nbsp;GLfloat,&nbsp;stencil:&nbsp;GLint) | void |
| createQuery() | WebGLQuery&nbsp;\|&nbsp;null | | createQuery() | WebGLQuery&nbsp;\|&nbsp;null |
| deleteQuery(query:&nbsp; WebGLQuery&nbsp;\|&nbsp;null) | void | | deleteQuery(query:&nbsp;WebGLQuery&nbsp;\|&nbsp;null) | void |
| isQuery(query:&nbsp; WebGLQuery&nbsp;\|&nbsp;null) | GLboolean | | isQuery(query:&nbsp;WebGLQuery&nbsp;\|&nbsp;null) | GLboolean |
| beginQuery(target:&nbsp; GLenum,&nbsp; query:&nbsp; WebGLQuery) | void | | beginQuery(target:&nbsp;GLenum,&nbsp;query:&nbsp;WebGLQuery) | void |
| endQuery(target:&nbsp; GLenum) | void | | endQuery(target:&nbsp;GLenum) | void |
| getQuery(target:&nbsp; GLenum,&nbsp; pname:&nbsp; GLenum) | WebGLQuery&nbsp;\|&nbsp;null | | getQuery(target:&nbsp;GLenum,&nbsp;pname:&nbsp;GLenum) | WebGLQuery&nbsp;\|&nbsp;null |
| getQueryParameter(query:&nbsp; WebGLQuery,&nbsp; pname:&nbsp; GLenum) | any | | getQueryParameter(query:&nbsp;WebGLQuery,&nbsp;pname:&nbsp;GLenum) | any |
| createSampler() | WebGLSampler&nbsp;\|&nbsp;null | | createSampler() | WebGLSampler&nbsp;\|&nbsp;null |
| deleteSampler(sampler:&nbsp; WebGLSampler&nbsp;\|&nbsp;null) | void | | deleteSampler(sampler:&nbsp;WebGLSampler&nbsp;\|&nbsp;null) | void |
| isSampler(sampler:&nbsp; WebGLSampler&nbsp;\|&nbsp;null) | GLboolean | | isSampler(sampler:&nbsp;WebGLSampler&nbsp;\|&nbsp;null) | GLboolean |
| bindSampler(unit:&nbsp; GLuint,&nbsp; sampler:&nbsp; WebGLSampler&nbsp;\|&nbsp;null) | void | | bindSampler(unit:&nbsp;GLuint,&nbsp;sampler:&nbsp;WebGLSampler&nbsp;\|&nbsp;null) | void |
| samplerParameteri(sampler:&nbsp; WebGLSampler,&nbsp; pname:&nbsp; GLenum,&nbsp; param:&nbsp; GLint) | void | | samplerParameteri(sampler:&nbsp;WebGLSampler,&nbsp;pname:&nbsp;GLenum,&nbsp;param:&nbsp;GLint) | void |
| samplerParameterf(sampler:&nbsp; WebGLSampler,&nbsp; pname:&nbsp; GLenum,&nbsp; param:&nbsp; GLfloat) | void | | samplerParameterf(sampler:&nbsp;WebGLSampler,&nbsp;pname:&nbsp;GLenum,&nbsp;param:&nbsp;GLfloat) | void; |
| getSamplerParameter(sampler:&nbsp; WebGLSampler,&nbsp; pname:&nbsp; GLenum) | any | | getSamplerParameter(sampler:&nbsp;WebGLSampler,&nbsp;pname:&nbsp;GLenum) | any |
| fenceSync(condition:&nbsp; GLenum,&nbsp; flags:&nbsp; GLbitfield) | WebGLSync&nbsp;\|&nbsp;null | | fenceSync(condition:&nbsp;GLenum,&nbsp;flags:&nbsp;GLbitfield) | WebGLSync&nbsp;\|&nbsp;null |
| isSync(sync:&nbsp; WebGLSync&nbsp;\|&nbsp;null) | GLboolean | | isSync(sync:&nbsp;WebGLSync&nbsp;\|&nbsp;null) | GLboolean |
| deleteSync(sync:&nbsp; WebGLSync&nbsp;\|&nbsp;null) | void | | deleteSync(sync:&nbsp;WebGLSync&nbsp;\|&nbsp;null) | void |
| clientWaitSync(sync:&nbsp; WebGLSync,&nbsp; flags:&nbsp; GLbitfield,&nbsp; timeout:&nbsp; GLuint64) | GLenum | | clientWaitSync(sync:&nbsp;WebGLSync,&nbsp;flags:&nbsp;GLbitfield,&nbsp;timeout:&nbsp;GLuint64) | GLenum |
| waitSync(sync:&nbsp; WebGLSync,&nbsp; flags:&nbsp; GLbitfield,&nbsp; timeout:&nbsp; GLint64) | void | | waitSync(sync:&nbsp;WebGLSync,&nbsp;flags:&nbsp;GLbitfield,&nbsp;timeout:&nbsp;GLint64) | void |
| getSyncParameter(sync:&nbsp; WebGLSync,&nbsp; pname:&nbsp; GLenum) | any | | getSyncParameter(sync:&nbsp;WebGLSync,&nbsp;pname:&nbsp;GLenum) | any |
| createTransformFeedback() | WebGLTransformFeedback&nbsp;\|&nbsp;null | | createTransformFeedback() | WebGLTransformFeedback&nbsp;\|&nbsp;null |
| deleteTransformFeedback(tf:&nbsp; WebGLTransformFeedback&nbsp;\|&nbsp;null) | void | | deleteTransformFeedback(tf:&nbsp;WebGLTransformFeedback&nbsp;\|&nbsp;null) | void |
| isTransformFeedback(tf:&nbsp; WebGLTransformFeedback&nbsp;\|&nbsp;null) | GLboolean | | isTransformFeedback(tf:&nbsp;WebGLTransformFeedback&nbsp;\|&nbsp;null) | GLboolean |
| bindTransformFeedback(target:&nbsp; GLenum,&nbsp; tf:&nbsp; WebGLTransformFeedback&nbsp;\|&nbsp;null) | void | | bindTransformFeedback(target:&nbsp;GLenum,&nbsp;tf:&nbsp;WebGLTransformFeedback&nbsp;\|&nbsp;null) | void |
| beginTransformFeedback(primitiveMode:&nbsp; GLenum) | void | | beginTransformFeedback(primitiveMode:&nbsp;GLenum) | void |
| endTransformFeedback() | void | | endTransformFeedback() | void |
| transformFeedbackVaryings(program:&nbsp; WebGLProgram,&nbsp; varyings:&nbsp; string[],&nbsp; bufferMode:&nbsp; GLenum) | void | | transformFeedbackVaryings(program:&nbsp;WebGLProgram,&nbsp;varyings:&nbsp;string[],&nbsp;bufferMode:&nbsp;GLenum) | void |
| getTransformFeedbackVarying(program:&nbsp; WebGLProgram,&nbsp; index:&nbsp; GLuint) | WebGLActiveInfo&nbsp;\|&nbsp;null | | getTransformFeedbackVarying(program:&nbsp;WebGLProgram,&nbsp;index:&nbsp;GLuint) | WebGLActiveInfo&nbsp;\|&nbsp;null |
| pauseTransformFeedback() | void | | pauseTransformFeedback() | void |
| resumeTransformFeedback() | void | | resumeTransformFeedback() | void |
| bindBufferBase(target:&nbsp; GLenum,&nbsp; index:&nbsp; GLuint,&nbsp; buffer:&nbsp; WebGLBuffer&nbsp;\|&nbsp;null) | void | | bindBufferBase(target:&nbsp;GLenum,&nbsp;index:&nbsp;GLuint,&nbsp;buffer:&nbsp;WebGLBuffer&nbsp;\|&nbsp;null) | void |
| bindBufferRange(target:&nbsp; GLenum,&nbsp; index:&nbsp; GLuint,&nbsp; buffer:&nbsp; WebGLBuffer&nbsp;\|&nbsp;null,&nbsp; offset:&nbsp; GLintptr,&nbsp; size:&nbsp; GLsizeiptr) | void | | bindBufferRange(target:&nbsp;GLenum,&nbsp;index:&nbsp;GLuint,&nbsp;buffer:&nbsp;WebGLBuffer&nbsp;\|&nbsp;null,&nbsp;offset:&nbsp;GLintptr,&nbsp;size:&nbsp;GLsizeiptr) | void |
| getIndexedParameter(target:&nbsp; GLenum,&nbsp; index:&nbsp; GLuint) | any | | getIndexedParameter(target:&nbsp;GLenum,&nbsp;index:&nbsp;GLuint) | any |
| getUniformIndices(program:&nbsp; WebGLProgram,&nbsp; uniformNames:&nbsp; string[]) | GLuint[]&nbsp;\|&nbsp;null | | getUniformIndices(program:&nbsp;WebGLProgram,&nbsp;uniformNames:&nbsp;string[]) | GLuint[]&nbsp;\|&nbsp;null |
| getActiveUniforms(program:&nbsp; WebGLProgram,&nbsp; uniformIndices:&nbsp; GLuint[],&nbsp; pname:&nbsp; GLenum) | any | | getActiveUniforms(program:&nbsp;WebGLProgram,&nbsp;uniformIndices:&nbsp;GLuint[],&nbsp;pname:&nbsp;GLenum) | any |
| getUniformBlockIndex(program:&nbsp; WebGLProgram,&nbsp; uniformBlockName:&nbsp; string) | GLuint | | getUniformBlockIndex(program:&nbsp;WebGLProgram,&nbsp;uniformBlockName:&nbsp;string) | GLuint |
| getActiveUniformBlockParameter(program:&nbsp; WebGLProgram,&nbsp; uniformBlockIndex:&nbsp; GLuint,&nbsp; pname:&nbsp; GLenum) | any | | getActiveUniformBlockParameter(program:&nbsp;WebGLProgram,&nbsp;uniformBlockIndex:&nbsp;GLuint,&nbsp;pname:&nbsp;GLenum) | any |
| getActiveUniformBlockName(program:&nbsp; WebGLProgram,&nbsp; uniformBlockIndex:&nbsp; GLuint) | string&nbsp;\|&nbsp;null | | getActiveUniformBlockName(program:&nbsp;WebGLProgram,&nbsp;uniformBlockIndex:&nbsp;GLuint) | string&nbsp;\|&nbsp;null |
| uniformBlockBinding(program:&nbsp; WebGLProgram,&nbsp; uniformBlockIndex:&nbsp; GLuint,&nbsp; uniformBlockBinding:&nbsp; GLuint) | void | | uniformBlockBinding(program:&nbsp;WebGLProgram,&nbsp;uniformBlockIndex:&nbsp;GLuint,&nbsp;uniformBlockBinding:&nbsp;GLuint) | void |
| createVertexArray() | WebGLVertexArrayObject&nbsp;\|&nbsp;null | | createVertexArray() | WebGLVertexArrayObject&nbsp;\|&nbsp;null |
| deleteVertexArray(vertexArray:&nbsp; WebGLVertexArrayObject&nbsp;\|&nbsp;null) | void | | deleteVertexArray(vertexArray:&nbsp;WebGLVertexArrayObject&nbsp;\|&nbsp;null) | void |
| isVertexArray(vertexArray:&nbsp; WebGLVertexArrayObject&nbsp;\|&nbsp;null) | GLboolean | | isVertexArray(vertexArray:&nbsp;WebGLVertexArrayObject&nbsp;\|&nbsp;null) | GLboolean |
| bindVertexArray(array:&nbsp; WebGLVertexArrayObject&nbsp;\|&nbsp;null) | void | | bindVertexArray(array:&nbsp;WebGLVertexArrayObject&nbsp;\|&nbsp;null) | void |
## webgl.WebGL2RenderingContextOverloads ## WebGL2RenderingContextOverloads
WebGL2RenderingContextOverloads WebGL2RenderingContextOverloads
| 方法 | 返回值类型 | | 方法 | 返回值类型 |
| -------- | ---------- | | -------- | -------- |
| bufferData(target:&nbsp; GLenum,&nbsp; size:&nbsp; GLsizeiptr,&nbsp; usage:&nbsp; GLenum) | void | | bufferData(target:&nbsp;GLenum,&nbsp;size:&nbsp;GLsizeiptr,&nbsp;usage:&nbsp;GLenum) | void |
| bufferData(target:&nbsp; GLenum,&nbsp; srcData:&nbsp; BufferSource&nbsp;\|&nbsp;null,&nbsp; usage:&nbsp; GLenum) | void | | bufferData(target:&nbsp;GLenum,&nbsp;srcData:&nbsp;BufferSource&nbsp;\|&nbsp;null,&nbsp;usage:&nbsp;GLenum) | void |
| bufferSubData(target:&nbsp; GLenum,&nbsp; dstByteOffset:&nbsp; GLintptr,&nbsp; srcData:&nbsp; BufferSource) | void | | bufferSubData(target:&nbsp;GLenum,&nbsp;dstByteOffset:&nbsp;GLintptr,&nbsp;srcData:&nbsp;BufferSource) | void |
| bufferData(target:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; usage:&nbsp; GLenum,&nbsp; srcOffset:&nbsp; GLuint,&nbsp; length?:&nbsp; GLuint) | void | | bufferData(target:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;usage:&nbsp;GLenum,&nbsp;srcOffset:&nbsp;GLuint,&nbsp;length?:&nbsp;GLuint) | void |
| bufferSubData(target:&nbsp; GLenum,&nbsp; dstByteOffset:&nbsp; GLintptr,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset:&nbsp; GLuint,&nbsp; length?:&nbsp; GLuint) | void | | bufferSubData(target:&nbsp;GLenum,&nbsp;dstByteOffset:&nbsp;GLintptr,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset:&nbsp;GLuint,&nbsp;length?:&nbsp;GLuint) | void |
| texImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pixels:&nbsp; ArrayBufferView&nbsp;\|&nbsp;null) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
| texImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pixels:&nbsp; ArrayBufferView&nbsp;\|&nbsp;null) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pixels:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
| texSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pboOffset:&nbsp; GLintptr) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pboOffset:&nbsp;GLintptr) | void |
| texImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset:&nbsp; GLuint) | void | | texImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset:&nbsp;GLuint) | void |
| texSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; pboOffset:&nbsp; GLintptr) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;pboOffset:&nbsp;GLintptr) | void |
| texSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; source:&nbsp; TexImageSource) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;source:&nbsp;TexImageSource) | void |
| texSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset:&nbsp; GLuint) | void | | texSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset:&nbsp;GLuint) | void |
| compressedTexImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; imageSize:&nbsp; GLsizei,&nbsp; offset:&nbsp; GLintptr) | void | | compressedTexImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;imageSize:&nbsp;GLsizei,&nbsp;offset:&nbsp;GLintptr) | void |
| compressedTexImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; internalformat:&nbsp; GLenum,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; border:&nbsp; GLint,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLengthOverride?:&nbsp; GLuint) | void | | compressedTexImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;internalformat:&nbsp;GLenum,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;border:&nbsp;GLint,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLengthOverride?:&nbsp;GLuint) | void |
| compressedTexSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; imageSize:&nbsp; GLsizei,&nbsp; offset:&nbsp; GLintptr) | void | | compressedTexSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;imageSize:&nbsp;GLsizei,&nbsp;offset:&nbsp;GLintptr) | void |
| compressedTexSubImage2D(target:&nbsp; GLenum,&nbsp; level:&nbsp; GLint,&nbsp; xoffset:&nbsp; GLint,&nbsp; yoffset:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; srcData:&nbsp; ArrayBufferView,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLengthOverride?:&nbsp; GLuint) | void | | compressedTexSubImage2D(target:&nbsp;GLenum,&nbsp;level:&nbsp;GLint,&nbsp;xoffset:&nbsp;GLint,&nbsp;yoffset:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;srcData:&nbsp;ArrayBufferView,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLengthOverride?:&nbsp;GLuint) | void |
| uniform1fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform1fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform2fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform2fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform3fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform3fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform4fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform4fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform1iv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Int32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform1iv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Int32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform2iv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Int32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform2iv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Int32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform3iv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Int32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform3iv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Int32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniform4iv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; data:&nbsp; Int32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniform4iv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;data:&nbsp;Int32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix2fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix2fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix3fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix3fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| uniformMatrix4fv(location:&nbsp; WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp; transpose:&nbsp; GLboolean,&nbsp; data:&nbsp; Float32List,&nbsp; srcOffset?:&nbsp; GLuint,&nbsp; srcLength?:&nbsp; GLuint) | void | | uniformMatrix4fv(location:&nbsp;WebGLUniformLocation&nbsp;\|&nbsp;null,&nbsp;transpose:&nbsp;GLboolean,&nbsp;data:&nbsp;Float32List,&nbsp;srcOffset?:&nbsp;GLuint,&nbsp;srcLength?:&nbsp;GLuint) | void |
| readPixels(x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; dstData:&nbsp; ArrayBufferView&nbsp;\|&nbsp;null) | void | | readPixels(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;dstData:&nbsp;ArrayBufferView&nbsp;\|&nbsp;null) | void |
| readPixels(x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; offset:&nbsp; GLintptr) | void | | readPixels(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;offset:&nbsp;GLintptr) | void |
| readPixels(x:&nbsp; GLint,&nbsp; y:&nbsp; GLint,&nbsp; width:&nbsp; GLsizei,&nbsp; height:&nbsp; GLsizei,&nbsp; format:&nbsp; GLenum,&nbsp; type:&nbsp; GLenum,&nbsp; dstData:&nbsp; ArrayBufferView,&nbsp; dstOffset:&nbsp; GLuint) | void | | readPixels(x:&nbsp;GLint,&nbsp;y:&nbsp;GLint,&nbsp;width:&nbsp;GLsizei,&nbsp;height:&nbsp;GLsizei,&nbsp;format:&nbsp;GLenum,&nbsp;type:&nbsp;GLenum,&nbsp;dstData:&nbsp;ArrayBufferView,&nbsp;dstOffset:&nbsp;GLuint) | void |
## webgl.WebGLQuery
WebGLQuery
## webgl.WebGLSampler
WebGLSampler
## webgl.WebGLSync
WebGLSync
## webgl.WebGLTransformFeedback
WebGLTransformFeedback
## webgl.WebGLVertexArrayObject
WebGLVertexArrayObject
\ No newline at end of file
...@@ -287,7 +287,7 @@ ...@@ -287,7 +287,7 @@
<td class="cellrowborder" valign="top" width="13.66%" headers="mcps1.1.5.1.3 "><p><a href="#table154011838131719">ScrollOffset</a></p> <td class="cellrowborder" valign="top" width="13.66%" headers="mcps1.1.5.1.3 "><p><a href="#table154011838131719">ScrollOffset</a></p>
</td> </td>
<td class="cellrowborder" valign="top" width="57.43000000000001%" headers="mcps1.1.5.1.4 "><p>获取元素内容的滚动偏移。</p> <td class="cellrowborder" valign="top" width="57.43000000000001%" headers="mcps1.1.5.1.4 "><p>获取元素内容的滚动偏移。</p>
<div class="note"><span class="notetitle"> 说明: </span><div class="notebody"><ul><li>需要设置overflow样式为scroll。</li></ul> <div class="note"><span class="notetitle"> 说明: </span><div class="notebody"><ul><li>需要设置overflow样式为scroll,默认滚动方向与容器方向一致</li></ul>
</div></div> </div></div>
</td> </td>
</tr> </tr>
......
...@@ -116,11 +116,11 @@ accessStep(step: number): boolean ...@@ -116,11 +116,11 @@ accessStep(step: number): boolean
### deleteJavaScriptRegister ### deleteJavaScriptRegister
deleteJavaScriptRegister(options: { name: string }): void deleteJavaScriptRegister(name: string): void
清空指定对象已注册的JavaScript方法。 清空指定对象已注册的JavaScript方法。
- options参数说明 - 参数
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ---- | ------ | ---- | ---- | ----------------------- | | ---- | ------ | ---- | ---- | ----------------------- |
...@@ -175,11 +175,11 @@ loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: ...@@ -175,11 +175,11 @@ loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?:
### loadUrl ### loadUrl
loadUrl(url: string, additionalHttpHeaders?: Array<{ key: string, value: string }>): void loadUrl(options:{ url: string, headers?: Array<{ key: string, value: string }> }): void
加载URL。 加载URL。
- 参数 - options参数说明
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| --------------------- | ------------------------------------- | ---- | ---- | ---------- | | --------------------- | ------------------------------------- | ---- | ---- | ---------- |
...@@ -220,11 +220,11 @@ registerJavaScriptProxy(options: { obj: object, name: string, methodList: string ...@@ -220,11 +220,11 @@ registerJavaScriptProxy(options: { obj: object, name: string, methodList: string
### runJavaScript ### runJavaScript
runJavaScript(script: string, callback?: (result: string) => void): void runJavaScript(options: { script: string, callback?: (result: string) => void }): void
执行JavaScript脚本。 执行JavaScript脚本。
- 参数 - options参数说明
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | ------------------------ | ---- | ---- | ------------------------------------ | | -------- | ------------------------ | ---- | ---- | ------------------------------------ |
......
...@@ -10,3 +10,7 @@ ...@@ -10,3 +10,7 @@
- Hap包签名工具 - Hap包签名工具
- [Hap包签名工具开发指导](hapsigntool-guidelines.md) - [Hap包签名工具开发指导](hapsigntool-guidelines.md)
- 访问控制
- [访问控制开发概述](accesstoken-overview.md)
- [访问控制开发指导](accesstoken-guidelines.md)
# 访问控制开发指导
## 场景介绍
当应用申请的权限需要用户授权,即申请的权限为user_grant权限时,可以通过权限校验,判断当前调用者是否具备相应权限。
## 接口说明
接口的具体说明可以查阅[API参考](../reference/apis/js-apis-abilityAccessCtrl.md)
| 接口名 | 描述 |
| ------------------------------------------------------------ | ---------------- |
| verifyAccessToken(tokenID: number, permissionName: string): Promise&lt;GrantStatus&gt; | 校验应用是否授予权限,使用Promise方式异步返回结果。 |
## 开发步骤
对访问者进行权限校验的开发步骤为:
1. 获取调用者的身份标识: tokenId
2. 识别需要校验的权限: permissionNameUser
3. 对当前调用者进行权限校验
代码示例如下:
```js
import {describe, beforeEach, afterEach, it, expect} from 'deccjsunit/index'
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'
import bundle from '@ohos.bundle'
var permissionNameUser = "ohos.permission.ALPHA";
var bundleFlag = 0;
var tokenID = undefined;
var userID = 100;
var appInfo = await bundle.getApplicationInfo('ohos.acts.security.access_token.normal', bundleFlag, userID);
tokenID = appInfo.accessTokenId;
console.log("AccessTokenTest accessTokenId:" + appInfo.accessTokenId + ", name:" + appInfo.name
+ ", bundleName:" + appInfo.bundleName)
var atManager = abilityAccessCtrl.createAtManager();
var result = await atManager.verifyAccessToken(tokenID, permissionNameUser);
if (result == abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) {
// 执行操作
} else {
// 申请动态授权,使用接口:requestPermissionsFromUser
}
```
> **说明:**
动态授权申请接口的使用详见[API参考](../reference/apis/js-apis-ability-context.md)
\ No newline at end of file
# 访问控制开发指南
## 功能简介
ATM(AccessTokenManager)是OpenHarmony上基于AccessToken构建的统一的应用权限管理能力。
当前,ATM模块对应用提供了权限校验功能,应用可以检查当前访问者是否具有所需的权限。
## 基本概念
当前,ATM提供的应用权限校验功能是基于统一管理的TokenID(Token identity)。
- TokenID:32bits的设备内唯一标识符,用于标识每个应用的Accestoken信息。
- Accestoken信息:主要包括应用身份标识APPID、用户ID、应用分身索引、应用APL(Ability Privilege Level)、应用权限信息等。
## 约束与限制
- 应用不允许自定义权限,系统权限定义信息详见[权限定义信息](https://gitee.com/openharmony/resources/blob/master/systemres/main/config.json)
\ No newline at end of file
...@@ -20,7 +20,7 @@ Hap包签名工具支持本地签名需求的开发,为OpenHarmony应用提供 ...@@ -20,7 +20,7 @@ Hap包签名工具支持本地签名需求的开发,为OpenHarmony应用提供
- 证书 - 证书
OpenHarmony采用RFC5280标准构建X509证书信任体系。用于应用签名的OpenHarmony证书按层级可分为:根CA证书、子CA证书、三级实体证书,其中三级实体证书分为应用签名证书和profile签名证书。应用签名证书表示应用开发者的身份,可保证系统上安装的应用来源可追溯,profile签名证书实现对profile文件的签名进行验签,保证profile文件的完整性。 OpenHarmony采用RFC5280标准构建X509证书信任体系。用于应用签名的OpenHarmony证书按层级可分为:根CA证书、子CA证书、三级实体证书,其中三级实体证书分为应用签名证书和profile签名证书。应用签名证书表示应用开发者的身份,可保证系统上安装的应用来源可追溯,profile签名证书实现对profile文件的签名进行验签,保证profile文件的完整性。
- HAP包 - HAP包
HAP(HarmonyOS Ability Package)是Ability的部署包,OpenHarmony应用代码围绕Ability组件展开,它是由一个或者多个Ability组成。 HAP(OpenHarmony Ability Package)是Ability的部署包,OpenHarmony应用代码围绕Ability组件展开,它是由一个或者多个Ability组成。
- profile文件 - profile文件
hap包中的描述文件,该描述文件描述了已授权的证书权限和设备ID信息等信息。 hap包中的描述文件,该描述文件描述了已授权的证书权限和设备ID信息等信息。
### 约束与限制 ### 约束与限制
...@@ -354,6 +354,7 @@ java -jar hap-sign-tool.jar sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256 ...@@ -354,6 +354,7 @@ java -jar hap-sign-tool.jar sign-app -keyAlias "oh-app1-key-v1" -signAlg "SHA256
## 常见问题 ## 常见问题
**1.执行[生成应用签名证书](#生成应用签名证书)命令时,控制台打印结果,无文件输出** **1.执行[生成应用签名证书](#生成应用签名证书)命令时,控制台打印结果,无文件输出**
......
...@@ -90,7 +90,7 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按 ...@@ -90,7 +90,7 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按
</td> </td>
<td class="cellrowborder" valign="top" width="35.61356135613561%" headers="mcps1.2.4.1.2 "><p id="p45798376158"><a name="p45798376158"></a><a name="p45798376158"></a><span id="text16579133741518"><a name="text16579133741518"></a><a name="text16579133741518"></a>OpenHarmony</span>贡献功能组件</p> <td class="cellrowborder" valign="top" width="35.61356135613561%" headers="mcps1.2.4.1.2 "><p id="p45798376158"><a name="p45798376158"></a><a name="p45798376158"></a><span id="text16579133741518"><a name="text16579133741518"></a><a name="text16579133741518"></a>OpenHarmony</span>贡献功能组件</p>
</td> </td>
<td class="cellrowborder" valign="top" width="35.91359135913591%" headers="mcps1.2.4.1.3 "><a name="ul957919379156"></a><a name="ul957919379156"></a><ul id="ul957919379156"><li><a href="bundles/oem_bundle_standard_des.md">HPM Bundle 开发规范</a></li><li><a href="bundles/bundles-guide.md">HPM Bundle 开发指南</a></li><li><a href="bundles/bundles-demo.md">HPM Bundle 开发示例</a></li></ul> <td class="cellrowborder" valign="top" width="35.91359135913591%" headers="mcps1.2.4.1.3 "><a name="ul957919379156"></a><a name="ul957919379156"></a><ul id="ul957919379156"><li><a href="bundles/bundles-standard-rules.md">HPM Bundle 开发规范</a></li><li><a href="bundles/bundles-guide.md">HPM Bundle 开发指南</a></li><li><a href="bundles/bundles-demo.md">HPM Bundle 开发示例</a></li></ul>
</td> </td>
</tr> </tr>
<tr id="row260193701512"><td class="cellrowborder" valign="top" width="28.472847284728473%" headers="mcps1.2.4.1.1 "><p id="p95794372155"><a name="p95794372155"></a><a name="p95794372155"></a>参考</p> <tr id="row260193701512"><td class="cellrowborder" valign="top" width="28.472847284728473%" headers="mcps1.2.4.1.1 "><p id="p95794372155"><a name="p95794372155"></a><a name="p95794372155"></a>参考</p>
...@@ -160,7 +160,7 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按 ...@@ -160,7 +160,7 @@ OpenHarmony也提供了一系列可选的系统组件,方便设备开发者按
</td> </td>
<td class="cellrowborder" valign="top" width="36.053605360536054%" headers="mcps1.2.4.1.2 "><p id="p1469115335113"><a name="p1469115335113"></a><a name="p1469115335113"></a><span id="text6691253155112"><a name="text6691253155112"></a><a name="text6691253155112"></a>OpenHarmony</span>贡献功能组件</p> <td class="cellrowborder" valign="top" width="36.053605360536054%" headers="mcps1.2.4.1.2 "><p id="p1469115335113"><a name="p1469115335113"></a><a name="p1469115335113"></a><span id="text6691253155112"><a name="text6691253155112"></a><a name="text6691253155112"></a>OpenHarmony</span>贡献功能组件</p>
</td> </td>
<td class="cellrowborder" valign="top" width="36.07360736073608%" headers="mcps1.2.4.1.3 "><a name="ul44949625110"></a><a name="ul44949625110"></a><ul id="ul44949625110"><li><a href="bundles/oem_bundle_standard_des.md">HPM Bundle 开发规范</a></li><li><a href="bundles/bundles-guide.md">HPM Bundle 开发指南</a></li><li><a href="bundles/bundles-demo.md">HPM Bundle 开发示例</a></li></ul> <td class="cellrowborder" valign="top" width="36.07360736073608%" headers="mcps1.2.4.1.3 "><a name="ul44949625110"></a><a name="ul44949625110"></a><ul id="ul44949625110"><li><a href="bundles/bundles-standard-rules.md">HPM Bundle 开发规范</a></li><li><a href="bundles/bundles-guide.md">HPM Bundle 开发指南</a></li><li><a href="bundles/bundles-demo.md">HPM Bundle 开发示例</a></li></ul>
</td> </td>
</tr> </tr>
<tr id="row1170153125110"><td class="cellrowborder" valign="top" width="27.872787278727873%" headers="mcps1.2.4.1.1 "><p id="p16701253195118"><a name="p16701253195118"></a><a name="p16701253195118"></a>参考</p> <tr id="row1170153125110"><td class="cellrowborder" valign="top" width="27.872787278727873%" headers="mcps1.2.4.1.1 "><p id="p16701253195118"><a name="p16701253195118"></a><a name="p16701253195118"></a>参考</p>
......
# Bundle开发指南 # Bundle开发指南
- [开发规范](oem_bundle_standard_des.md) - [开发规范](bundles-standard-rules.md )
- [开发指南](bundles-guide.md) - [开发指南](bundles-guide.md)
- [概述](bundles-guide-overview.md) - [概述](bundles-guide-overview.md)
- [安装hpm命令行工具](bundles-guide-prepare.md) - [安装hpm命令行工具](bundles-guide-prepare.md)
......
...@@ -182,7 +182,7 @@ hpm install ...@@ -182,7 +182,7 @@ hpm install
username@server MINGW64 /f/showcase/demo/demo username@server MINGW64 /f/showcase/demo/demo
$ hpm list $ hpm list
+--demo@1.0.0 +--demo@1.0.0
| +--@huawei/media@1.0.2 | +--@demo/media@1.0.2
| +--@demo/sport_hi3518ev300_liteos_a@1.0.0 | +--@demo/sport_hi3518ev300_liteos_a@1.0.0
| | +--@demo/app@4.0.1 | | +--@demo/app@4.0.1
| | | +--@demo/build@4.0.1 | | | +--@demo/build@4.0.1
......
...@@ -55,7 +55,6 @@ kill [-l [_signo_] | _-s signo_ | _-signo_] _pid..._ ...@@ -55,7 +55,6 @@ kill [-l [_signo_] | _-s signo_ | _-signo_] _pid..._
6 1 6 0 Pending 0x688000 0x137000 0x11bca0 0.0 media_server 6 1 6 0 Pending 0x688000 0x137000 0x11bca0 0.0 media_server
7 1 7 0 Pending 0x9d2000 0x103000 0xa1cdf 0.88 wms_server 7 1 7 0 Pending 0x9d2000 0x103000 0xa1cdf 0.88 wms_server
8 1 8 2 Pending 0x1f5000 0x48000 0x47dc2 0.2 mksh 8 1 8 2 Pending 0x1f5000 0x48000 0x47dc2 0.2 mksh
10 5 5 101 Pending 0x11ec000 0x2f9000 0x206047 0.93 com.huawei.launcher
12 1 12 0 Pending 0x4d4000 0x112000 0xe0882 0.0 deviceauth_service 12 1 12 0 Pending 0x4d4000 0x112000 0xe0882 0.0 deviceauth_service
13 1 13 0 Pending 0x34f000 0xbd000 0x51799 0.0 sensor_service 13 1 13 0 Pending 0x34f000 0xbd000 0x51799 0.0 sensor_service
14 1 14 2 Pending 0x34e000 0xb3000 0x52184 0.0 ai_server 14 1 14 2 Pending 0x34e000 0xb3000 0x52184 0.0 ai_server
...@@ -80,7 +79,6 @@ kill [-l [_signo_] | _-s signo_ | _-signo_] _pid..._ ...@@ -80,7 +79,6 @@ kill [-l [_signo_] | _-s signo_ | _-signo_] _pid..._
6 1 6 0 Pending 0x688000 0x137000 0x11c1ba 0.0 media_server 6 1 6 0 Pending 0x688000 0x137000 0x11c1ba 0.0 media_server
7 1 7 0 Pending 0x9d2000 0x103000 0xa21f9 0.89 wms_server 7 1 7 0 Pending 0x9d2000 0x103000 0xa21f9 0.89 wms_server
8 1 8 2 Pending 0x1f5000 0x48000 0x482dc 0.2 mksh 8 1 8 2 Pending 0x1f5000 0x48000 0x482dc 0.2 mksh
10 5 5 101 Pending 0x11ec000 0x2f9000 0x206561 0.93 com.huawei.launcher
12 1 12 0 Pending 0x4d4000 0x112000 0xe0d9c 0.0 deviceauth_service 12 1 12 0 Pending 0x4d4000 0x112000 0xe0d9c 0.0 deviceauth_service
13 1 13 0 Pending 0x34f000 0xbd000 0x51cb3 0.0 sensor_service 13 1 13 0 Pending 0x34f000 0xbd000 0x51cb3 0.0 sensor_service
14 1 14 2 Pending 0x34e000 0xb3000 0x5269e 0.0 ai_server 14 1 14 2 Pending 0x34e000 0xb3000 0x5269e 0.0 ai_server
......
...@@ -52,7 +52,6 @@ OHOS # task ...@@ -52,7 +52,6 @@ OHOS # task
6 1 6 0 Pending 0x688000 0x137000 0x11c518 0.0 media_server 6 1 6 0 Pending 0x688000 0x137000 0x11c518 0.0 media_server
7 1 7 0 Pending 0x9d2000 0x103000 0xa1ddf 0.89 wms_server 7 1 7 0 Pending 0x9d2000 0x103000 0xa1ddf 0.89 wms_server
8 1 1 1000 Running 0x2bf000 0x8f000 0x2a8c6 0.0 shell 8 1 1 1000 Running 0x2bf000 0x8f000 0x2a8c6 0.0 shell
9 5 5 101 Pending 0x11ea000 0x2f9000 0x20429d 0.97 com.huawei.launcher
11 1 11 0 Pending 0x4d4000 0x112000 0xe0ad7 0.0 deviceauth_service 11 1 11 0 Pending 0x4d4000 0x112000 0xe0ad7 0.0 deviceauth_service
12 1 12 0 Pending 0x34f000 0xbd000 0x519ee 0.0 sensor_service 12 1 12 0 Pending 0x34f000 0xbd000 0x519ee 0.0 sensor_service
13 1 13 2 Pending 0x34e000 0xb3000 0x523d9 0.0 ai_server 13 1 13 2 Pending 0x34e000 0xb3000 0x523d9 0.0 ai_server
......
...@@ -52,7 +52,6 @@ OHOS:/$ top ...@@ -52,7 +52,6 @@ OHOS:/$ top
6 1 6 0 Pending 0x688000 0x137000 0x11c1ba 0.0 media_server 6 1 6 0 Pending 0x688000 0x137000 0x11c1ba 0.0 media_server
7 1 7 0 Pending 0x9d2000 0x103000 0xa21f9 0.87 wms_server 7 1 7 0 Pending 0x9d2000 0x103000 0xa21f9 0.87 wms_server
8 1 8 2 Pending 0x1f5000 0x48000 0x462dc 0.0 mksh 8 1 8 2 Pending 0x1f5000 0x48000 0x462dc 0.0 mksh
9 5 5 101 Pending 0x11ea000 0x2f9000 0x204561 0.94 com.huawei.launcher
11 1 11 0 Pending 0x4d4000 0x112000 0xe0d9c 0.0 deviceauth_service 11 1 11 0 Pending 0x4d4000 0x112000 0xe0d9c 0.0 deviceauth_service
12 1 12 0 Pending 0x34f000 0xbd000 0x51cb3 0.0 sensor_service 12 1 12 0 Pending 0x34f000 0xbd000 0x51cb3 0.0 sensor_service
13 1 13 2 Pending 0x34e000 0xb3000 0x5269e 0.0 ai_server 13 1 13 2 Pending 0x34e000 0xb3000 0x5269e 0.0 ai_server
......
...@@ -59,7 +59,6 @@ OHOS # ...@@ -59,7 +59,6 @@ OHOS #
6 1 6 0 Pending 0x688000 0x137000 0x11c518 0.0 media_server 6 1 6 0 Pending 0x688000 0x137000 0x11c518 0.0 media_server
7 1 7 0 Pending 0x9d2000 0x103000 0xa1ddf 0.95 wms_server 7 1 7 0 Pending 0x9d2000 0x103000 0xa1ddf 0.95 wms_server
8 1 1 1000 Running 0x2bf000 0x8f000 0x2a8c6 0.0 shell 8 1 1 1000 Running 0x2bf000 0x8f000 0x2a8c6 0.0 shell
9 5 5 101 Pending 0x11ea000 0x2f9000 0x20429d 1.2 com.huawei.launcher
11 1 11 0 Pending 0x4d4000 0x112000 0xe0ad7 0.0 deviceauth_service 11 1 11 0 Pending 0x4d4000 0x112000 0xe0ad7 0.0 deviceauth_service
12 1 12 0 Pending 0x34f000 0xbd000 0x519ee 0.0 sensor_service 12 1 12 0 Pending 0x34f000 0xbd000 0x519ee 0.0 sensor_service
13 1 13 2 Pending 0x34e000 0xb3000 0x523d9 0.0 ai_server 13 1 13 2 Pending 0x34e000 0xb3000 0x523d9 0.0 ai_server
......
...@@ -77,7 +77,7 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接 ...@@ -77,7 +77,7 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
void OnServiceDied(); void OnServiceDied();
}; };
#endif DEMO_LISTENER_H #endif // DEMO_LISTENER_H
``` ```
增加DemoListener.cpp文件,在DemoListener类中根据实际需求自定义订阅回调接口的实现逻辑: 增加DemoListener.cpp文件,在DemoListener类中根据实际需求自定义订阅回调接口的实现逻辑:
......
...@@ -55,7 +55,7 @@ C++接口实例。 ...@@ -55,7 +55,7 @@ C++接口实例。
- 实现对应的查询回调接口: - 实现对应的查询回调接口:
void HiSysEventQueryCallBack::OnQuery\(const ::std::vector<std::string\>& sysEvent, const ::std::vector<int64\_t\>& seq\) void HiSysEventQueryCallBack::OnQuery\(const ::std::vector&lt;std::string&gt;& sysEvent, const ::std::vector<int64\_t\>& seq\)
void HiSysEventQueryCallBack::OnComplete\(int32\_t reason, int32\_t total\) void HiSysEventQueryCallBack::OnComplete\(int32\_t reason, int32\_t total\)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册