1# ArkWeb_WebMessagePortAPI 2<!--Kit: ArkWeb--> 3<!--Subsystem: Web--> 4<!--Owner: @aohui--> 5<!--Designer: @yaomingliu--> 6<!--Tester: @ghiker--> 7<!--Adviser: @HelloCrease--> 8 9## 概述 10 11Post Message相关的Native API结构体。在调用接口前建议通过[ARKWEB_MEMBER_MISSING](capi-arkweb-type-h.md#宏定义)校验该函数结构体是否有对应函数指针,避免SDK与设备ROM不匹配导致crash问题。 12 13**起始版本:** 12 14 15**相关模块:** [Web](capi-web.md) 16 17**所在头文件:** [arkweb_type.h](capi-arkweb-type-h.md) 18 19## 汇总 20 21### 成员变量 22 23| 名称 | 描述 | 24| -- | -- | 25| size_t size | 结构体的大小。 | 26 27 28### 成员函数 29 30| 名称 | 描述 | 31|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------| 32| [ArkWeb_ErrorCode (\*postMessage)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag, const ArkWeb_WebMessagePtr webMessage)](#postmessage) | 发送消息到HTML。 | 33| [void (\*close)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag)](#close) | 关闭消息端口。 | 34| [void (\*setMessageEventHandler)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag, ArkWeb_OnMessageEventHandler messageEventHandler, void* userData)](#setmessageeventhandler) | 设置接收HTML消息的回调。 | 35 36## 成员函数说明 37 38### postMessage() 39 40``` 41ArkWeb_ErrorCode (*postMessage)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag, const ArkWeb_WebMessagePtr webMessage) 42``` 43 44**描述:** 45 46发送消息到HTML。 47 48**参数:** 49 50| 参数项 | 描述 | 51| -- | -- | 52| const [ArkWeb_WebMessagePortPtr](capi-web-arkweb-webmessageport8h.md) webMessagePort | Post Message端口结构体指针。 | 53| const char* webTag | Web组件名称。 | 54| const [ArkWeb_WebMessagePtr](capi-web-arkweb-webmessage8h.md) webMessage | 需要发送的消息。 | 55 56**返回:** 57 58| 类型 | 说明 | 59|------------------------------------------------------------------|--------------------------------------------------------------------------------------| 60| [ArkWeb_ErrorCode](capi-arkweb-error-code-h.md#arkweb_errorcode) | [ARKWEB_SUCCESS](capi-arkweb-error-code-h.md#arkweb_errorcode) 执行成功。<br>[ARKWEB_INVALID_PARAM](capi-arkweb-error-code-h.md#arkweb_errorcode) 参数无效。<br>[ARKWEB_INIT_ERROR](capi-arkweb-error-code-h.md#arkweb_errorcode) 初始化失败,没有找到与webTag绑定的Web组件。 | 61 62### close() 63 64``` 65void (*close)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag) 66``` 67 68**描述:** 69 70关闭消息端口。 71 72**参数:** 73 74| 参数项 | 描述 | 75| -- | -- | 76| const [ArkWeb_WebMessagePortPtr](capi-web-arkweb-webmessageport8h.md) webMessagePort | Post Message端口结构体指针。 | 77 78### setMessageEventHandler() 79 80``` 81void (*setMessageEventHandler)(const ArkWeb_WebMessagePortPtr webMessagePort, const char* webTag, 82 ArkWeb_OnMessageEventHandler messageEventHandler, void* userData) 83``` 84 85**描述:** 86 87关闭消息端口。 88 89**参数:** 90 91| 参数项 | 描述 | 92|--------------------------------------------------------------------------------------------------------|----------------------| 93| const [ArkWeb_WebMessagePortPtr](capi-web-arkweb-webmessageport8h.md) webMessagePort | Post Message端口结构体指针。 | 94| const char* webTag | Web组件名称。 | 95| [ArkWeb_OnMessageEventHandler](capi-arkweb-type-h.md#arkweb_onmessageeventhandler) messageEventHandler | 处理消息的回调。 | 96| void* userData | 用户自定义数据。 | 97 98