HarmonyOS鸿蒙Next原生API中,画面间迁移后,是否有类似Android的onActivityResult()功能
HarmonyOS鸿蒙Next原生API中,画面间迁移后,是否有类似Android的onActivityResult()功能
- 当前应用中定义了主画面MainPage.ets, 通过Tabs()-TabContent()加载首页、个人中心等自定义组件【@Component】的Tab页。
- 个人中心中,通常的用户头像Image(),通过aboutToAppear()调用接口,获取用户信息,加载并显示。
- 点击用户头像,进入头像、昵称编辑画面。
- 点击编辑画面中的头像,通过“相机”、“从相册中选取”等功能,进行图片裁剪编辑后,显示到编辑画面中,点击【保存】按钮,将编辑后的头像、新昵称调用文件上传服务器,并返回到个人中心Tab画面。
问题:这时返回到个人中心画面时,是否有类似Android原生的那种onActivityResult()方法,来处理前画面返回后的逻辑处理,从而进行个人中心Tab中,用户头像和昵称的更新显示。 调查及调试:通过下面的API,对aboutToAppear()、onPageShow()都尝试过。 aboutToAppear()只在画面初回显示时调用了,之后再也不会调用执行了。 onPageShow()不会执行,并且在MineView这个自定义组件名上的@Component的上面加上@Entry,也不会执行。
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-router-V5#routerback
更多关于HarmonyOS鸿蒙Next原生API中,画面间迁移后,是否有类似Android的onActivityResult()功能的实战教程也可以访问 https://www.itying.com/category-93-b0.html
暂无对应的方法或者Api,
如果点击编辑头像拉起相机裁剪等功能,有离开当前的Ability,会触发Ability的onBackground,返回会触发Ability的onForeground,即Ability进入前后台,可以在这里通知相应的页面进行ui的刷新
可以试下通过AppStorage设置一个状态变量,在编辑资料和个人页面中通过@StorageLink监听此值,在编辑资料页面中点击保存时改变此状态变量的值,个人页面可以通过@Watch观察此状态变量的变化触发对应的方法,具体使用可以参考文档:
更多关于HarmonyOS鸿蒙Next原生API中,画面间迁移后,是否有类似Android的onActivityResult()功能的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next的原生API中,画面间迁移后,没有直接对应Android的onActivityResult()
功能。鸿蒙系统采用了不同的设计理念,页面间的数据传递和回传主要通过Ability
和Page
的生命周期方法来实现。
具体来说,鸿蒙系统使用startAbilityForResult()
方法启动另一个页面,并通过onResult()
方法接收返回的数据。开发者需要在目标页面中调用setResult()
方法设置返回的数据,然后在源页面的onResult()
方法中处理这些数据。
例如:
- 在源页面中,使用
startAbilityForResult()
启动目标页面。 - 在目标页面中,使用
setResult()
设置返回的数据。 - 在源页面的
onResult()
方法中接收并处理返回的数据。
这种机制与Android的onActivityResult()
类似,但具体的实现方式和API调用有所不同。
在HarmonyOS中,页面迁移后没有直接的onActivityResult()
功能,但可以通过Ability
的startAbilityForResult()
和onAbilityResult()
实现类似功能。开发者可以在这两个方法中处理页面迁移的结果,从而实现页面间数据传递和结果回调。