彻底弄懂了HarmonyOS鸿蒙Next中路由和路由传值的几种方法
彻底弄懂了HarmonyOS鸿蒙Next中路由和路由传值的几种方法,这里将学习资源分享出来,内容对很重要,同学们加油。
发视频还不如发段代码
更多关于彻底弄懂了HarmonyOS鸿蒙Next中路由和路由传值的几种方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
提问1:AbilitySlice的onAbilityResult方法什么时候被调用?
提问2:AbilitySlice如何接收其他PageAbility里的AbilitySlice通过setResult传过来的数据
在HarmonyOS鸿蒙Next中,Slice页面的跳转、传值及回传值主要通过Intent
和AbilitySlice
实现。Intent
用于在页面之间传递数据和启动目标页面,AbilitySlice
是页面的基本单元。
-
页面跳转:使用
Intent
对象设置目标页面的AbilitySlice
类,然后调用present
或startAbility
方法进行跳转。例如:let intent = new Intent(); intent.setClass(this, TargetSlice.class); this.present(intent);
-
传值:通过
Intent
的setParam
方法传递数据。例如:intent.setParam("key", "value");
-
回传值:在目标页面使用
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
方法,并通过Intent
的setParams
方法传递参数。接收页面通过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");
}
}