logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

HarmonyOS应用<奇妙科学乐园>开发第70篇:深度链接与页面恢复——从通知/推送跳转

本文从路由常量管理、路由工具封装、页面参数校验、Tab页面保活、深度链接设计五个维度,完整解析了《奇妙科学乐园》的深度链接与页面恢复方案。层次技术方案解决的问题关键要点路由常量RouteUrls + TypeScript接口硬编码字符串易出错集中管理、类型约束路由工具RouterUtil封装异常崩溃、日志缺失try-catch、from来源标记参数校验四步校验法空值、类型错误、无效数据存在性→类型

文章图片
#harmonyos
HarmonyOS应用<奇妙科学乐园>开发第70篇:深度链接与页面恢复——从通知/推送跳转

 引言 《奇妙科学乐园》作为一款面向6-12岁儿童的纯离线科普教育应用,虽然不需要处理复杂的云端推送跳转,但深度链接(Deep Link)与页面状态恢复在离线场景下同样重要。家长通过家长控制设置提醒后,系统通知点击应该能直接跳转到对应页面;用户从后台恢复应用时,页面应该保持之前的浏览状态;路由参数携带的topicId、categoryId等信息需要经过严格的校验才能安全使用。 本篇将从URI

文章图片
#harmonyos
HarmonyOS应用<奇妙科学乐园>开发第69篇:组件通信机制——props/emit/provide/inject

本文完整解析了《奇妙科学乐园》项目中的五种组件通信方式,覆盖了父子通信、子父回调、跨Tab全局状态、弹窗通信等核心场景。通信方式适用场景项目实例关键要点@Prop父→子单向传递只读、自动同步、配合aboutToUpdate回调函数子→父通知事件可选属性、判空调用AppStorage跨组件/跨Tab@Watch+ 指令清除单例服务全局数据共享非组件状态、import即用弹窗通信controller控

文章图片
#harmonyos
HarmonyOS应用<奇妙科学乐园>开发第69篇:组件通信机制——props/emit/provide/inject

 引言 在《奇妙科学乐园》的开发过程中,组件通信是最基础也最频繁涉及的技术点。我们的应用拥有超过20个自定义组件,从首页的BannerCarousel轮播图到答题页的QuizOptionItem选项卡,从通用基础组件AppBar到业务组件TopicCard,数据在组件树中不断流动。父子组件如何传递数据?子组件如何通知父组件用户操作?跨层级的Tab切换指令如何下发?这些问题都需要一套清晰的组件通

文章图片
#harmonyos
HarmonyOS应用<奇妙科学乐园>开发第68篇:页面生命周期管理——aboutToAppear/aboutToDisappear

在《奇妙科学乐园》的整个开发过程中,Previewer与真机之间的环境差异是我们反复踩坑的地方。以下是完整的差异总结和应对策略。✅aboutToAppear兜底初始化模板} else {} else {✅aboutToDisappear定时器清理模板✅数据服务重复初始化保护// 防止重复初始化 } try {// 正常加载... this .isInitialized = true;// 回退到M

文章图片
#harmonyos
HarmonyOS应用<奇妙科学乐园>开发第68篇:页面生命周期管理——aboutToAppear/aboutToDisappear

 引言 在《奇妙科学乐园》的开发过程中,我们遇到了一个极为隐蔽的环境差异问题:所有页面在DevEco Studio Previewer中预览时白屏无数据,但在真机和模拟器上运行一切正常。经过数小时的排查,我们发现了根本原因——**DevEco Studio Previewer不会调用UIAbility.onCreate()**。这意味着我们在EntryAbility.onCreate()中做的

文章图片
#harmonyos
HarmonyOS应用<奇妙科学乐园>开发第67篇:Tab切换通信——AppStorage替代Router跳转方案

改造前 vs 改造后对比改造前(路由跳转) 改造后(AppStorage)通信方式 router.push Url() AppStorage . set OrCreate() 页面状态 每次跳转丢失 TabContent保活,状态保持路由栈影响 栈+ 1 (需手动返回) 无变化(同页面内通信)切换动画 路由转场动画 Tab滑动动画代码改动量 Index . ets仅需改跳转方式 Index + M

文章图片
#harmonyos
HarmonyOS应用<奇妙科学乐园>开发第67篇:Tab切换通信——AppStorage替代Router跳转方案

 引言 在《奇妙科学乐园》的开发历程中,有一类问题反复困扰着整个架构设计:当用户在首页点击某个分类卡片、Banner轮播图或"全部>"按钮时,需要自动切换到"科普"Tab并按分类筛选文章。这听起来只是一个再普通不过的交互跳转,但当我们用传统的router.replaceUrl()实现时,却遭遇了一个让人百思不得其解的现象——跳转完全没有效果,页面纹

文章图片
#harmonyos
HarmonyOS应用《奇妙科学乐园》开发第66篇:页面跳转与参数传递——pushUrl/replaceUrl实战

在文件中,首先定义了// 工具文件:entry /src/m ain /ets/u tils/RouterUtil.ets/** 文件用途:路由工具 - 统一路由跳转封装,处理异常和日志* 创建时间: 2026 - 07 - 14 * 兼容环境:macOS /Linux/ Docker/TRAE 云端* 版本:v1. 0 * 风险提示:无*/// 路由参数接口——全应用统一的参数类型定义topic

文章图片
#harmonyos
HarmonyOS应用《奇妙科学乐园》开发第66篇:页面跳转与参数传递——pushUrl/replaceUrl实战

在文件中,首先定义了// 工具文件:entry /src/m ain /ets/u tils/RouterUtil.ets/** 文件用途:路由工具 - 统一路由跳转封装,处理异常和日志* 创建时间: 2026 - 07 - 14 * 兼容环境:macOS /Linux/ Docker/TRAE 云端* 版本:v1. 0 * 风险提示:无*/// 路由参数接口——全应用统一的参数类型定义topic

文章图片
#harmonyos
    共 146 条
  • 1
  • 2
  • 3
  • 15
  • 请选择