HarmonyOS Next 应用元服务开发-应用接续动态配置迁移按需迁移页面

按需迁移页面栈,支持应用动态选择是否进行页面栈恢复(默认进行页面栈信息恢复)。如果应用不想使用系统默认恢复的页面栈,则可以设置不进行页面栈迁移,而需要在onWindowStageRestore设置迁移后进入的页面,参数定义见SUPPORT_CONTINUE_PAGE_STACK_KEY。

说明,当前仅支持router路由的页面栈信息自动恢复,暂不支持navigation路由的页面栈自动恢复。

如果应用使用navigation路由,可以设置不进行页面栈迁移,并将需要接续的页面(或页面栈)信息保存在want中传递,然后在目标端手动加载指定页面。应用在源端的页面栈中存在Index和Second路由,而在目标端恢复时不需要按照源端页面栈进行恢复,需要恢复到指定页面。

示例:应用迁移不需要自动迁移页面栈信息

复制代码
// EntryAbility.ets
import { AbilityConstant, UIAbility, wantConstant } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
export default class EntryAbility extends UIAbility {
  // ...
  onContinue(wantParam: Record<string, Object>) {
    console.info(`onContinue version = ${wantParam.version}, targetDevice: ${wantParam.targetDevice}`);
    wantParam[wantConstant.Params.SUPPORT_CONTINUE_PAGE_STACK_KEY] = false;
    return AbilityConstant.OnContinueResult.AGREE;
  }
  // ...
  onWindowStageRestore(windowStage: window.WindowStage) {
      // 若不需要自动迁移页面栈信息,则需要在此处设置应用迁移后进入的页面
    windowStage.loadContent('pages/Index', (err, data) => {
      if (err.code) {
        console.info('Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
        return;
      }
      console.info('Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
    });
  }
}

本文主要引用HarmonyOS官方文档

相关推荐
挠到秃头的涛某5 小时前
华为防火墙web配置SSL-在外人员访问内网资源
运维·网络·网络协议·tcp/ip·华为·ssl·防火墙
爱笑的眼睛117 小时前
HarmonyOS后台代理提醒机制深度解析:从架构设计到场景化实践
华为·harmonyos
猫林老师9 小时前
Flutter for HarmonyOS开发指南(七):插件开发与平台能力桥接
flutter·华为·harmonyos
kirk_wang10 小时前
HarmonyOS 6.0 服务卡片实战:把「轻食刻」装进桌面,让轻断食一眼可控
华为·harmonyos
●VON1 天前
补充说明:Windows 完全可以开发 Qt 鸿蒙应用!(附专属适配方案)
windows·qt·华为·harmonyos·鸿蒙
Fanmeang1 天前
华为SRv6技术:引领IP网络进入新时代的智能导航系统
运维·网络·华为·vpn·ipv6·srv6
东林知识库1 天前
鸿蒙5:HarmonyOS应用开发-线程模型
华为·harmonyos
猫林老师1 天前
Flutter for HarmonyOS开发指南(九):测试、调试与质量保障体系
flutter·wpf·harmonyos
Keya1 天前
鸿蒙Next系统手机使用Charles配置证书并抓包教程
前端·harmonyos
爱笑的眼睛111 天前
HarmonyOS DataShare数据共享机制深度解析:构建分布式应用的数据桥梁
华为·harmonyos