HarmonyOS NativeXComponent获取window问题

Native中获取XComponent window,只能通过map方式来存储NativeXComponent,然后使用时通过id查找吗,我看官方例子都是这样的,有没有其他方式获取,比如可以在ArkTS层监听onCreate回调,然后再通过native获取对应的window不呢?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

一、获取Xcomponent对应的Native Window:参考https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/native-window-guidelines-V5可直接在事件回调OnSurfaceCreatedCB中获取到对应的Native XComponent 和 Native Window

二、在ArkTS获取id和XCompont的映射关系:由于id和controller都是ArkTS 组件指定的,context可在onLoad回调获取,可在ArkTS 建立id和context的映射关系,context上可以挂载Native的方法,参考https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/drawing-guidelines-V5Native Window可在OnSurfaceCreatedCB获取通过context上挂载的方法可以操作Native Window

三、如希望ArkTS能响应特定的Native事件,可参考:

  1. https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/drawing-guidelines-V5参考示例代码中绑定方法到context上的部分,绑定一个回调注册函数如SetEventFunction
  2. 在ArkTS侧声明回调函数,如doAction,在onLoad获取到context后,注册该回调到Nativethis.context.SetEventFunction(this.doAction.bind(this))
  3. 参考https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/use-napi-asynchronous-task-V5在Native侧的SetEventFunction解析并创建该回调的referencenapi_create_reference(env, args[0], 1, &ref)
  4. Native事件触发后,调用ArkTS的回调napi_get_reference_value(env, ref, &callback)…napi_call_function(env, undefined, callback, 1, callbackArg, &result)参数可以携带id等标识
分享
微博
QQ
微信
回复
23h前
相关问题
HarmonyOS获取NativeXcomponent失败
457浏览 • 1回复 待解决
HarmonyOS 无法获取NativeXComponent的id
34浏览 • 1回复 待解决
window获取屏幕方向配置
477浏览 • 1回复 待解决
HarmonyOS 如何获取app的window
23浏览 • 1回复 待解决
HarmonyOS NativeXComponent的用法
66浏览 • 1回复 待解决
HarmonyOS window.findWindow("test")问题
21浏览 • 1回复 待解决
HarmonyOS window.setUIContent 参数path问题
31浏览 • 1回复 待解决
HarmonyOS 关于OH_NativeXComponent的销毁
46浏览 • 1回复 待解决
如何获取主窗口window的宽度
2026浏览 • 1回复 待解决
HarmonyOS window.findWindow获取子窗口错误
494浏览 • 1回复 待解决
HarmonyOS 底部横条和子window路由问题
79浏览 • 1回复 待解决
在页面中如何获取window实例?
364浏览 • 1回复 待解决
如何获取当前window的窗口方向
470浏览 • 1回复 待解决
Window窗口的生命周期问题
352浏览 • 1回复 待解决
window 安装 Docker的问题有知道的吗?
2424浏览 • 1回复 待解决