界面逆向传值 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()获取传递的参数

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-routing-0000001813575888#ZH-CN_TOPIC_0000001813575888__%E9%A1%B5%E9%9D%A2%E8%BF%94%E5%9B%9E

更多关于界面逆向传值 HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙系统)中,界面逆向传值通常通过AbilityPage之间的数据传递实现。鸿蒙Next版本中,推荐使用AbilityContextPageAbilitystartAbilityForResult方法来实现界面逆向传值。

使用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版本中的界面逆向传值。

回到顶部