1# ArkWeb_WebMessagePortAPI 2 3## Overview 4 5Defines a native API struct of the post message. Before calling the API, you are advised to use **ARKWEB_MEMBER_MISSING** to check whether the function struct has the corresponding pointer to avoid crash caused by mismatch between the SDK and the device ROM. 6 7**Since**: 12 8 9**Related module**: [Web](capi-web.md) 10 11**Header file**: [arkweb_type.h](capi-arkweb-type-h.md) 12 13## Summary 14 15### Member Variables 16 17| Name| Description| 18| -- | -- | 19| size_t size | Size of the struct.| 20 21 22### Member Functions 23 24| Name | Description | 25|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------| 26| [ArkWeb_ErrorCode (\*postMessage)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag, const ArkWeb_WebMessagePtr webMessage)](#postmessage) | Sends a message to the HTML page.| 27| [void (\*close)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag)](#close) | Closes a message port. | 28| [void (\*setMessageEventHandler)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag, ArkWeb_OnMessageEventHandler messageEventHandler, void* userData)](#setmessageeventhandler) | Sets a callback for receiving HTML messages. | 29 30## Member Function Description 31 32### postMessage() 33 34``` 35ArkWeb_ErrorCode (*postMessage)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag, const ArkWeb_WebMessagePtr webMessage) 36``` 37 38**Description** 39 40Sends a message to the HTML page. 41 42**Parameters** 43 44| Name| Description| 45| -- | -- | 46| const [ArkWeb_WebMessagePortPtr](capi-web-arkweb-webmessageport8h.md) webMessagePort | Pointer to the message port.| 47| const char* webTag | Name of the **Web** component.| 48| const [ArkWeb_WebMessagePtr](capi-web-arkweb-webmessage8h.md) webMessage | Message to send.| 49 50**Returns** 51 52| Type | Description | 53|------------------------------------------------------------------|--------------------------------------------------------------------------------------| 54| [ArkWeb_ErrorCode](capi-arkweb-error-code-h.md#arkweb_errorcode) | [ARKWEB_SUCCESS](capi-arkweb-error-code-h.md#arkweb_errorcode): The operation is successful.<br>[ARKWEB_INVALID_PARAM](capi-arkweb-error-code-h.md#arkweb_errorcode): The parameter is invalid.<br>[ARKWEB_INIT_ERROR](capi-arkweb-error-code-h.md#arkweb_errorcode): The initialization fails because the **Web** component bound to **webTag** is not found.| 55 56### close() 57 58``` 59void (*close)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag) 60``` 61 62**Description** 63 64Closes a message port. 65 66**Parameters** 67 68| Name| Description| 69| -- | -- | 70| const [ArkWeb_WebMessagePortPtr](capi-web-arkweb-webmessageport8h.md) webMessagePort | Pointer to the message port.| 71 72### setMessageEventHandler() 73 74``` 75void (*setMessageEventHandler)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag, 76 ArkWeb_OnMessageEventHandler messageEventHandler, void* userData) 77``` 78 79**Description** 80 81Sets a callback for receiving HTML messages. 82 83**Parameters** 84 85| Name | Description | 86|--------------------------------------------------------------------------------------------------------|----------------------| 87| const [ArkWeb_WebMessagePortPtr](capi-web-arkweb-webmessageport8h.md) webMessagePort | Pointer to the message port.| 88| const char* webTag | Name of the **Web** component. | 89| [ArkWeb_OnMessageEventHandler](capi-arkweb-type-h.md#arkweb_onmessageeventhandler) messageEventHandler | Callback used to handle messages. | 90| void* userData | User-defined data. | 91