diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md
index a82240f1b3deb7cf01e1f10e0dc501959d9e5922..39ce8ae645b668bdc84e2283a9a5f7bfb919a177 100644
--- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md
+++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md
@@ -2735,6 +2735,88 @@ getCookieManager(): WebCookie
}
```
+### createWebMessagePorts9+
+
+createWebMessagePorts(): Array\
+
+创建Web信息端口。
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------------------- | ------------- |
+| Array\<[WebMessagePort](#webmessageport9)\> | web信息端口列表。 |
+
+**示例:**
+ ```ts
+ // xxx.ets
+ @Entry
+ @Component
+ struct WebComponent {
+ controller: WebController = new WebController();
+ ports: WebMessagePorts[] = null;
+ build() {
+ Column() {
+ Button('createWebMessagePorts')
+ .onClick(() => {
+ this.ports = this.controller.createWebMessagePorts();
+ console.log("createWebMessagePorts size:" + this.ports.length)
+ })
+ Web({ src: 'www.example.com', controller: this.controller })
+ }
+ }
+ }
+ ```
+
+### postMessage9+
+
+postMessage(options: { message: WebMessageEvent, uri: string}): void
+
+发送Web信息端口到HTML5。
+
+**参数:**
+
+| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+| ---------- | --------------- | ---- | ---- | ------------------------- |
+| message | [WebMessageEvent](#webmessageevent9) | 是 | - |要发送的信息,包含数据和信息端口 。 |
+| uri | string | 是 | - | 接收该信息的URI。 |
+
+**示例:**
+ ```ts
+ // xxx.ets
+ @Entry
+ @Component
+ struct WebComponent {
+ controller: WebController = new WebController();
+ ports: WebMessagePorts[] = null;
+ build() {
+ Column() {
+ Button('postMessage')
+ .onClick(() => {
+ var sendPortArray = new Array(this.ports[1]);
+ var msgEvent = new WebMessageEvent();
+ msgEvent.setData("__init_ports__");
+ msgEvent.setPorts(sendPortArray);
+ this.controller.postMessage(msgEvent, uri:"*");
+ })
+ Web({ src: 'www.example.com', controller: this.controller })
+ }
+ }
+ }
+ // xxx.js
+ var h5Port;
+ window.addEventListener('message', function(event){
+ if (event.data == '__init_ports__') {
+ if(event.ports[0] != null) {
+ h5Port = event.ports[0];
+ h5Port.onmessage = function(event) {
+ console.log('receive message from ets, on message:' + event.data);
+ }
+ }
+ }
+ })
+ ```
+
## HitTestValue9+
提供点击区域的元素信息。示例代码参考[getHitTestValue](#gethittestvalue9)。
@@ -3590,3 +3672,218 @@ storeWebArchive(baseName: string, autoName: boolean): Promise
}
}
```
+
+## WebMessagePort9+
+
+通过WebMessagePort可以进行消息的发送以及接收。
+
+### close9+
+close(): void
+
+关闭该信息端口。
+
+### postMessageEvent9+
+postMessageEvent(message: WebMessageEvent): void
+
+发送消息。
+
+**参数:**
+
+| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+| ----- | ------ | ---- | ---- | ----------------- |
+| message | [WebMessageEvent](#webmessageevent9) | 是 | - | 要发送的消息。 |
+
+**示例:**
+ ```ts
+ // xxx.ets
+ @Entry
+ @Component
+ struct WebComponent {
+ controller: WebController = new WebController();
+ ports: WebMessagePorts[] = null;
+
+ build() {
+ Column() {
+ Button('postMessageEvent')
+ .onClick(() => {
+ var msg = new WebMessageEvent();
+ msg.setData("post message from ets to html5");
+ this.port[0].postMessageEvent(msg);
+ })
+ Web({ src: 'www.example.com', controller: this.controller })
+ }
+ }
+ }
+ ```
+
+### onMessageEvent9+
+onMessageEvent(callback: (result: string) => void): void
+
+注册回调函数,接收HTML5侧发送过来的消息。
+
+**参数:**
+
+| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+| ----- | ------ | ---- | ---- | ----------------- |
+| callback | function | 是 | - | 接收消息的回调函数。 |
+
+**示例:**
+ ```ts
+ // xxx.ets
+ @Entry
+ @Component
+ struct WebComponent {
+ controller: WebController = new WebController();
+ ports: WebMessagePorts[] = null;
+
+ build() {
+ Column() {
+ Button('onMessageEvent')
+ .onClick(() => {
+ this.port[0].onMessageEvent((result: string) => {
+ console.log("received message from html5, on message:" + result);
+ })
+ })
+ Web({ src: 'www.example.com', controller: this.controller })
+ }
+ }
+ }
+ ```
+
+
+## WebMessageEvent9+
+
+通过WebMessagePort对要发送的消息和端口进行封装。
+
+### getData9+
+getData(): string
+
+获取当前对象中存放的消息。
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------------------- | ------------- |
+| string | 当前该类型对象中存放的消息。 |
+
+**示例:**
+ ```ts
+ // xxx.ets
+ @Entry
+ @Component
+ struct WebComponent {
+ build() {
+ Column() {
+ Button('getPorts')
+ .onClick(() => {
+ var msgEvent = new WebMessageEvent();
+ msgEvent.setData("message event data");
+ var messageData = msgEvent.getData();
+ console.log("message is:" + messageData);
+ })
+ }
+ }
+ }
+ ```
+
+### setData9+
+setData(data: string): void
+
+设置当前对象中的消息。
+
+**参数:**
+
+| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+| ----- | ------ | ---- | ---- | ----------------- |
+| data | string | 是 | - | 要发送的消息。 |
+
+**示例:**
+ ```ts
+ // xxx.ets
+ @Entry
+ @Component
+ struct WebComponent {
+ controller: WebController = new WebController();
+ ports: WebMessagePorts[] = null;
+
+ build() {
+ Column() {
+ Button('setData')
+ .onClick(() => {
+ var msg = new WebMessageEvent();
+ msg.setData("post message from ets to HTML5");
+ this.port[0].postMessageEvent(msg);
+ })
+ Web({ src: 'www.example.com', controller: this.controller })
+ }
+ }
+ }
+ ```
+### getPorts9+
+getPorts(): Array\
+
+获取当前对象中存放的消息端口。
+
+**返回值:**
+
+| 类型 | 说明 |
+| ------------------------------- | ------------- |
+| Array\<[WebMessagePort](#webmessageport9)\> | 当前该类型对象中存放的消息端口。 |
+
+**示例:**
+ ```ts
+ // xxx.ets
+ @Entry
+ @Component
+ struct WebComponent {
+ ports: WebMessagePorts[] = null;
+ build() {
+ Column() {
+ Button('getPorts')
+ .onClick(() => {
+ var sendPortArray = new Array(this.ports[0]);
+ var msgEvent = new WebMessageEvent();
+ msgEvent.setPorts(sendPortArray);
+ var getPorts = msgEvent.getPorts();
+ console.log("Ports is:" + getPorts);
+ })
+ }
+ }
+ }
+ ```
+
+### setPorts9+
+setPorts(ports: Array\): void
+
+设置当前对象中的消息端口。
+
+**参数:**
+
+| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
+| ----- | ------ | ---- | ---- | ----------------- |
+| ports | Array\<[WebMessagePort](#webmessageport9)\> | 是 | - | 要发送的消息端口。 |
+
+**示例:**
+ ```ts
+ // xxx.ets
+ @Entry
+ @Component
+ struct WebComponent {
+ controller: WebController = new WebController();
+ ports: WebMessagePorts[] = null;
+
+ build() {
+ Column() {
+ Button('setPorts')
+ .onClick(() => {
+ var sendPortArray = new Array(this.ports[1]);
+ var msgEvent = new WebMessageEvent();
+ msgEvent.setData("__init_ports__");
+ msgEvent.setPorts(sendPortArray);
+ this.controller.postMessage(msgEvent, uri:"*");
+ })
+ Web({ src: 'www.example.com', controller: this.controller })
+ }
+ }
+ }
+ ```
\ No newline at end of file