HarmonyOS 应用开发《掌上英语》第78篇:Live View Kit 实况窗:将学习进度“钉“在锁屏上

发布时间:2026/9/20 5:21:08

HarmonyOS 应用开发《掌上英语》第78篇:Live View Kit 实况窗:将学习进度“钉“在锁屏上 Live View Kit 实况窗将学习进度钉在锁屏上一、实况窗的概念生活中我们都有这样的场景锁屏想看学了多少单词必须解锁手机、打开 App、等待首页加载、查看进度数字——操作成本太高。HarmonyOS 6.0 的 Live View Kit 实况窗允许 App 在锁屏和通知栏上创建动态信息卡片用户无需解锁就能看到关键信息。实况窗分为三种位置形态锁屏实况窗在锁屏界面底部展示支持交互点击跳转应用。通知栏实况窗下拉通知栏时展示通常信息更详细。灵动岛胶囊在挖孔屏设备的顶部胶囊区域展示紧凑信息。对于英语学习 App最实用的场景是锁屏上显示今日已学 15/30 词用户在通勤路上扫一眼就知道今天的学习进度。如果还有未完成的单词点击实况窗直接跳转到CourseHomePage继续学习。二、Live View 的创建、更新与销毁Live View 的生命周期分为三个阶段创建、更新、销毁。创建当用户开始学习进入CourseHomePage时创建实况窗。import{ liveView }fromkit.LiveViewKit;functioncreateStudyLiveView():void{ liveView.createLiveView(study_progress, {template: liveView.TemplateType.ASSISTANT, data: { title:今日学习, progress:0, target:30, currentWord:, continuousDays:0, }, buttons: [ {text:继续学习, actionType: liveView.ActionType.JUMP }, ], }); }更新当用户学完一个单词后更新实况窗数据。functionupdateStudyProgress(learnedCount:number, target:number):void{ liveView.updateLiveView(study_progress, {progress: learnedCount,target: target,currentWord:apple,// 当前学习的单词}); }销毁当用户完成今日目标或退出学习页面时销毁实况窗。functiondestroyStudyLiveView(): void { liveView.destroyLiveView(study_progress); }实况窗的数据更新频率需要合理控制。建议在以下时机触发更新用户学完一个单词更新进度。用户完成一次答题练习更新正确率。连续学习天数变更更新徽章信息。今日目标完成触发庆祝动画。三、辅助区模板百分比进度环Live View Kit 提供了多种模板类型其中辅助区模板支持在实况窗中嵌入进度环、图标等视觉元素。对于学习进度展示进度环是最直观的方式——一眼就能看出今天完成了多少。liveView.createLiveView(study_progress, { template: liveView.TemplateType.ASSISTANT,//主信息区 mainInfo: { title:今日目标, description:已学 X/30 词, progress:0.5,//50% },//辅助信息区进度环 auxiliaryInfo: { type: liveView.AuxiliaryType.PROGRESS_RING, value:0.5, startColor:#007DFF, endColor:#00E5FF, }, });进度环的参数包括起始颜色、结束颜色和当前值。建议使用蓝色渐变与 App 主色调一致在目标完成时切换为金色或绿色渐变营造完成感和成就感。四、锁屏实况窗今日已学 X/30 词锁屏实况窗是用户最常看到的位置。在锁屏界面实况窗展示在时钟下方用户可以快速获取信息。场景一学习进行中。用户在CourseHomePage背单词时锁屏锁屏实况窗显示今日已学 12/30 词以及当前单词的单词和音标。这实现了碎片化复习——用户锁屏时无意中又看到了一次当前单词相当于一次被动复习。场景二学习暂停中。用户中途退出 App但今日目标尚未完成。锁屏实况窗保持显示进度提醒用户还有未完成的学习任务。这是一种温柔提醒比通知推送更不打扰用户但效果同样显著。场景三目标完成。用户学完 30 词后实况窗切换到完成状态显示今日目标已完成连续学习 7 天并展示一个小徽章图标。成就感驱动用户明天继续学习。function onStudyComplete(plan:LearningPlan): void {liveView.updateLiveView(study_progress, { mainInfo:{title: 今日目标完成,description:连续学习 ${plan.continuousDays} 天,progress:1.0,}, auxiliaryInfo:{type:liveView.AuxiliaryType.PROGRESS_RING,value:1.0,startColor:#00C853,endColor:#69F0AE,}, }); }五、通知栏实况窗连续学习天数 明日目标通知栏实况窗比锁屏实况窗有更大的展示空间可以展示更多信息。在学习场景中建议展示以下内容连续学习天数以徽章或数字形式突出显示。明日目标基于 LearningPlanManager 的数据显示明日推荐学习量。进步曲线近 7 天的学习时长 / 单词数趋势。通知栏实况窗的优势在于用户可以主动下拉查看信息密度可以更高。例如──────────────── 英语学习 | 连续7天 今日15/30词 | 正确率85%明日目标25词同阶段词汇 [继续学习] [查看报告] ────────────────liveView.updateLiveView(study_progress, { template:liveView.TemplateType.NOTIFICATION,data:{title:连续学习 7 天 ,description:今日${todayCount}/${target} 词,subDescription:明日目标${tomorrowTarget} 词,stats:{correctRate:85%,totalWords:plan.totalWordCount,totalDays:plan.continuousDays,}, }, });六、基于 StatisticsManager 的数据推送实况窗的数据来源是项目中已有的数据管理层。通过StatisticsManager获取答题统计通过LearningPlanManager获取学习计划和今日进度。functionrefreshLiveViewData(): void {constplan LearningPlanManager.getInstance().getLearningPlan();conststats StatisticsManager.getInstance().getHistoryStatistics(); liveView.updateLiveView(study_progress, { progress: plan.todayWordCount, target: plan.dailyWordGoal, continuousDays: plan.continuousDays, correctRate: stats.correctRate, }); }建议在LearningPlanManager.recordWordStudy()方法中自动触发实况窗更新。这样每当用户学完一个单词实况窗的数据自动刷新无需在 UI 层手动调用。七、实践建议学习开始创建学习结束销毁实况窗虽然强大但不宜长期驻留。推荐的生命周期管理策略创建时机用户进入CourseHomePage开始学习或完成一次答题练习时创建。更新时机每次recordWordStudy()调用后更新。销毁时机用户完成当日所有目标或主动点击结束学习时销毁。闲置超时用户超过 30 分钟没有学习操作自动销毁实况窗。这种策略确保实况窗只在用户真正在学习时显示避免被用户视为广告位。实况窗的核心价值是方便而非打扰。八、总结Live View Kit 实况窗将学习进度从 App 内部延伸到锁屏界面创造了一个无需解锁就知道进度、扫一眼就能被提醒的学习闭环。基于StatisticsManager和LearningPlanManager的数据驱动结合进度环模板和分段生命周期管理实况窗成功地将英语学习的信息触达率提升到了一个新的高度。
延伸阅读

更多相关文章

2026/9/20 5:21:12

Python 类封装功能:面向对象编程的基础知识

1. 什么是封装封装(Encapsulation)是面向对象编程(OOP)的三大核心特性之一,另外两个是继承和多态。封装的核心思想是将数据(属性)和操作数据的方法(方法)捆绑在一起&…

2026/9/20 5:21:19

Spring Boot中Jackson ObjectMapper核心配置详解与实战避坑指南

1. 项目概述:为什么ObjectMapper的配置值得深究?如果你用过Spring Boot,那Jackson的ObjectMapper对你来说肯定不陌生。它就像项目里那个最勤恳的“数据搬运工”,默默地把Java对象变成JSON字符串,或者把JSON字符串变回J…

2026/9/20 23:57:23

MoltBook 式 AI 自治社交,Agent 的模型通道改到 TaoToken 行不行?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 23:57:23

BCC 实战:用 eBPF SOCKET_FILTER 解析 HTTP 流量并提取 URL

eBPF可观测性性能剖析网络 【免费下载链接】bcc BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more 项目地址: https://gitcode.com/gh_mirrors/bc/bcc 点击查看 免费下载 导读 本篇文章以 BCC 仓库中的 examples/networking/http_…

2026/9/20 23:57:23

Cline 实战:TaoToken 跑通 pytest 仓库的 test_skipping 回归用例

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/20 5:01:23

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/20 5:09:33

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码