harmony 鸿蒙ArkWeb_ControllerAPI
ArkWeb_ControllerAPI
概述
Controller相关的Native API结构体。 在调用接口前建议通过ARKWEB_MEMBER_MISSING校验该函数结构体是否有对应函数指针,避免SDK与设备ROM不匹配导致crash问题。
起始版本: 12
相关模块:Web
所在头文件: arkweb_type.h
汇总
成员变量
名称 | 描述 |
---|---|
size_t size | 结构体的大小。 |
void(* runJavaScript )(const char *webTag, const ArkWeb_JavaScriptObject *javascriptObject) | 注入JavaScript脚本。 |
void(* registerJavaScriptProxy )(const char *webTag, const ArkWeb_ProxyObject *proxyObject) | 注入JavaScript对象到window对象中,并在window对象中调用该对象的同步方法。 |
void(* deleteJavaScriptRegister )(const char *webTag, const char *objName) | 删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。 |
void(* refresh )(const char *webTag) | 刷新当前网页。 |
void(* registerAsyncJavaScriptProxy )(const char *webTag, const ArkWeb_ProxyObject *proxyObject) | 注入JavaScript对象到window对象中,并在window对象中调用该对象的异步方法。 |
ArkWeb_WebMessagePortPtr *(* createWebMessagePorts )(const char *webTag, size_t *size) | 创建Post Message端口。 |
void(* destroyWebMessagePorts )(ArkWeb_WebMessagePortPtr **ports, size_t size) | 销毁端口。 |
ArkWeb_ErrorCode(* postWebMessage )(const char *webTag, const char *name, ArkWeb_WebMessagePortPtr *webMessagePorts, size_t size, const char *url) | 将端口发送到HTML主页面。 |
const char *(* getLastJavascriptProxyCallingFrameUrl )() | 获取调用JavaScriptProxy最后一帧的url。 在JavaScriptProxy调用的线程上调用。 通过registerJavaScriptProxy或者javaScriptProxy注入JavaScript对象到window对象中。该接口可以获取最后一次调用注入对象frame的url。 在被调用函数内部获取url才能获取到正确值,可以在函数里内部获取url后保存下来。 |
void(* registerJavaScriptProxyEx )(const char *webTag, const ArkWeb_ProxyObjectWithResult *proxyObject, const char *permission) | 注入JavaScript对象到window对象中,并在window对象中调用该对象的同步方法。该对象的同步方法可以带返回值。 |
void(* registerAsyncJavaScriptProxyEx )(const char *webTag, const ArkWeb_ProxyObject *proxyObject, const char *permission) | 注入JavaScript对象到window对象中,并在window对象中调用该对象的异步方法。 |
结构体成员变量说明
createWebMessagePorts
ArkWeb_WebMessagePortPtr*(* ArkWeb_ControllerAPI::createWebMessagePorts) (const char *webTag, size_t *size)
描述:
创建Post Message端口。
参数:
名称 | 描述 |
---|---|
webTag | Web组件名称。 |
size | 出参,端口数量。 |
返回:
Post Message端口结构体指针。
deleteJavaScriptRegister
void(* ArkWeb_ControllerAPI::deleteJavaScriptRegister) (const char *webTag, const char *objName)
描述:
删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。
参数:
名称 | 描述 |
---|---|
webTag | Web组件名称。 |
objName | JavaScript对象名称。 |
destroyWebMessagePorts
void(* ArkWeb_ControllerAPI::destroyWebMessagePorts) (ArkWeb_WebMessagePortPtr **ports, size_t size)
描述:
销毁端口。
参数:
名称 | 描述 |
---|---|
ports | Message端口结构体指针数组。 |
size | 端口数量。 |
getLastJavascriptProxyCallingFrameUrl
const char*(* ArkWeb_ControllerAPI::getLastJavascriptProxyCallingFrameUrl) ()
描述:
获取调用JavaScriptProxy最后一帧的url。 在JavaScriptProxy调用的线程上调用。 通过registerJavaScriptProxy或者javaScriptProxy注入JavaScript对象到window对象中。该接口可以获取最后一次调用注入对象frame的url。 在被调用函数内部获取url才能获取到正确值,可以在函数里内部获取url后保存下来。
起始版本: 14
返回:
调用JavaScriptProxy最后一帧的url。
postWebMessage
ArkWeb_ErrorCode(* ArkWeb_ControllerAPI::postWebMessage) (const char *webTag, const char *name, ArkWeb_WebMessagePortPtr *webMessagePorts, size_t size, const char *url)
描述:
将端口发送到HTML主页面。
参数:
名称 | 描述 |
---|---|
webTag | Web组件名称。 |
name | 发送给HTML的消息名称。 |
webMessagePorts | Post Message端口结构体指针。 |
size | 端口数量。 |
url | 接收到消息的页面url。 |
返回:
返回值错误码。 ARKWEB_SUCCESS 执行成功。 ARKWEB_INVALID_PARAM 参数无效。 ARKWEB_INIT_ERROR 初始化失败,没有找到与webTag绑定的Web组件。
refresh
void(* ArkWeb_ControllerAPI::refresh) (const char *webTag)
描述:
刷新当前网页。刷新的同时会清理页面栈,导致当前页面无法前进后退。
registerAsyncJavaScriptProxy
void(* ArkWeb_ControllerAPI::registerAsyncJavaScriptProxy) (const char *webTag, const ArkWeb_ProxyObject *proxyObject)
描述:
注入JavaScript对象到window对象中,并在window对象中调用该对象的异步方法。
registerAsyncJavaScriptProxyEx
void(* ArkWeb_ControllerAPI::registerAsyncJavaScriptProxyEx) (const char *webTag, const ArkWeb_ProxyObject *proxyObject, const char *permission)
描述:
注入JavaScript对象到window对象中,并在window对象中调用该对象的异步方法。
起始版本: 14
参数:
名称 | 描述 |
---|---|
webTag | Web组件名称。 |
proxyObject | 注册的对象。 |
permission | json格式字符串,默认值为空。该字符串用来配置JSBridge的权限限制,可以配置对象和方法级别。 |
registerJavaScriptProxy
void(* ArkWeb_ControllerAPI::registerJavaScriptProxy) (const char *webTag, const ArkWeb_ProxyObject *proxyObject)
描述:
注入JavaScript对象到window对象中,并在window对象中调用该对象的同步方法。
registerJavaScriptProxyEx
void(* ArkWeb_ControllerAPI::registerJavaScriptProxyEx) (const char *webTag, const ArkWeb_ProxyObjectWithResult *proxyObject, const char *permission)
描述:
注入JavaScript对象到window对象中,并在window对象中调用该对象的同步方法。该对象的同步方法可以带返回值。
起始版本: 14
参数:
名称 | 描述 |
---|---|
webTag | Web组件名称。 |
proxyObject | 注册的对象。 |
permission | json格式字符串,默认值为空。该字符串用来配置JSBridge的权限限制,可以配置对象和方法级别。 |
runJavaScript
void(* ArkWeb_ControllerAPI::runJavaScript) (const char *webTag, const ArkWeb_JavaScriptObject *javascriptObject)
描述:
注入JavaScript脚本。
size
size_t ArkWeb_ControllerAPI::size
描述:
结构体的大小。
你可能感兴趣的鸿蒙文章
harmony 鸿蒙ArkWeb_CookieManagerAPI
harmony 鸿蒙ArkWeb_JavaScriptBridgeData
harmony 鸿蒙ArkWeb_JavaScriptObject
harmony 鸿蒙ArkWeb_JavaScriptValueAPI
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦