界面逆向传值 HarmonyOS 鸿蒙Next
界面逆向传值 HarmonyOS 鸿蒙Next 从界面A 到界面B,在界面B相关操作 返回A 界面需要把B界面操作的对象带回A界面
2 回复
页面跳转使用router跳转的时候可以传递参数,router中的back也可以传递参数,可以在B页面返回A页面的时候用back方法传递参数:
import router from '@ohos.router';
router.back({
url: 'pages/Home',
params: {
info: '来自Home页'
}
});
然后回到A页面使用router.getParams()
获取传递的参数
更多关于界面逆向传值 HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙系统)中,界面逆向传值通常通过Ability
或Page
之间的数据传递实现。鸿蒙Next版本中,推荐使用AbilityContext
或PageAbility
的startAbilityForResult
方法来实现界面逆向传值。
使用startAbilityForResult
:
- 在发起页面(PageA)调用
startAbilityForResult
方法,启动目标页面(PageB),并传递必要的数据。 - 目标页面(PageB)处理完逻辑后,通过
setResult
方法返回数据。 - 发起页面(PageA)在
onAbilityResult
回调中接收返回的数据。
数据传递方式:
- 数据可以通过
Intent
对象进行传递,Intent
支持基本数据类型、Parcelable
对象等。 - 返回数据时,目标页面(PageB)将数据封装到
Intent
中,并调用setResult
方法。
示例代码:
发起页面(PageA):
let intent = new Intent();
intent.setAction("action.pageb");
startAbilityForResult(intent, REQUEST_CODE);
目标页面(PageB):
let intent = new Intent();
intent.setParam("resultKey", resultData);
setResult(RESULT_OK, intent);
terminateSelf();
发起页面(PageA)接收数据:
onAbilityResult(requestCode: number, resultCode: number, data: Intent) {
if (requestCode === REQUEST_CODE && resultCode === RESULT_OK) {
let result = data.getParam("resultKey");
}
}
通过以上方式,可以实现HarmonyOS鸿蒙Next版本中的界面逆向传值。