HarmonyOS 使用@ohos.ArkUI.observer进行无感监听路由变化如何获取路由变化发生在哪个窗口呢?-鸿蒙开发者社区-51CTO.COM

HarmonyOS 使用@ohos.ArkUI.observer进行无感监听路由变化如何获取路由变化发生在哪个窗口呢?

在多窗口开发实践中,使用@ohos.ArkUI.observer进行注册路由变化事件:routerPageUpdate

在该事件内,如何感知本次路由变化发生在哪一个窗口呢?

HarmonyOS
2024-09-03 12:25:02
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

通过窗口获取UIContext,然后再注册监听,这样可以明确注册哪个窗口路由变化:

关于UIContext,您可以参考一下链接:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/js-apis-arkui-UIContext.md#ohosarkuiuicontext-uicontext

是否指的是获取window.WindowStage,如果是的话

可以在EntryAbility.ets的 onWindowStageCreate方法中使用localStorage或者AppStorage将windowStage存入在需要使用的地方取出

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-localstorage-V5

在api升级后,ArkTS 只支持匿名函数自动绑定this,bind可能会失效

routerPageChanged中的info对象中有路由页面的状态,可以用于判断路由变化;

页面发生路由使会执行两次routerPageChanged,例如:从A页面进入B页面,先将A状态变为3,B状态变为0.

enum RouterPageState (页面状态)

ABOUT_TO_APPEAR 0 page即将显示

ABOUT_TO_DISAPPEAR 1 page即将销毁

ON_PAGE_SHOW 2 page显示

ON_PAGE_HIDE 3 page隐藏

ON_BACK_PRESS 4 page返回时

分享
微博
QQ
微信
回复
2024-09-03 15:54:53
相关问题
如何监听窗口大小的变化
2157浏览 • 1回复 待解决
HarmonyOS获取设备标识
391浏览 • 1回复 待解决
HarmonyOS窗口路由切换问题
37浏览 • 1回复 待解决
HarmonyOS 页面高度发生变化
22浏览 • 1回复 待解决
HarmonyOS 音频设备变化监听
165浏览 • 1回复 待解决
如何实现路由的动态跳转
325浏览 • 1回复 待解决
如何监听window大小的变化
385浏览 • 1回复 待解决
如何监听数组内对象属性变化
2286浏览 • 1回复 待解决
如何监听Viewmodel里变量值的变化
1901浏览 • 1回复 待解决
如何监听文件或文件目录的变化
1693浏览 • 1回复 待解决
HarmonyOS数据库数据变化是否可以监听
431浏览 • 1回复 待解决
如何监听输入法输入内容的变化
329浏览 • 1回复 待解决
ArkTS中如何监听状态变量的变化
884浏览 • 1回复 待解决
如何实现一个监听网络变化的方法
542浏览 • 1回复 待解决
HarmonyOS 路由参数如何接收?
298浏览 • 1回复 待解决