彻底弄懂了HarmonyOS鸿蒙Next中路由和路由传值的几种方法

彻底弄懂了HarmonyOS鸿蒙Next中路由和路由传值的几种方法,这里将学习资源分享出来,内容对很重要,同学们加油。

4 回复
发视频还不如发段代码

更多关于彻底弄懂了HarmonyOS鸿蒙Next中路由和路由传值的几种方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


提问1:AbilitySlice的onAbilityResult方法什么时候被调用?

提问2:AbilitySlice如何接收其他PageAbility里的AbilitySlice通过setResult传过来的数据

在HarmonyOS鸿蒙Next中,Slice页面的跳转、传值及回传值主要通过IntentAbilitySlice实现。Intent用于在页面之间传递数据和启动目标页面,AbilitySlice是页面的基本单元。

  1. 页面跳转:使用Intent对象设置目标页面的AbilitySlice类,然后调用presentstartAbility方法进行跳转。例如:

    let intent = new Intent();
    intent.setClass(this, TargetSlice.class);
    this.present(intent);
    
  2. 传值:通过IntentsetParam方法传递数据。例如:

    intent.setParam("key", "value");
    
  3. 回传值:在目标页面使用setResult方法设置返回数据,并在源页面通过onResult方法接收。例如:

    // 目标页面
    let resultIntent = new Intent();
    resultIntent.setParam("resultKey", "resultValue");
    this.setResult(0, resultIntent);
    this.terminate();
    
    // 源页面
    onResult(requestCode, resultCode, data) {
        if (resultCode === 0) {
            let result = data.getParam("resultKey");
        }
    }
    

这些操作在HarmonyOS鸿蒙Next中实现页面间的数据传递和跳转。

在HarmonyOS鸿蒙Next中,Slice页面的跳转、传值及回传值主要通过Intent实现。跳转时,使用startAbility方法,并通过IntentsetParams方法传递参数。接收页面通过onStart方法中的intent获取参数。回传值则通过setResult方法设置返回数据,并在原页面通过onResult方法接收。具体代码示例如下:

// 跳转并传值
Intent intent = new Intent();
intent.setParams("key", "value");
startAbility(intent);

// 接收参数
protected void onStart(Intent intent) {
    String value = intent.getStringParam("key");
}

// 回传值
setResult(RESULT_OK, new Intent().setParams("resultKey", "resultValue"));

// 接收回传值
protected void onResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        String result = data.getStringParam("resultKey");
    }
}
回到顶部