Ability 互操作页面:用三个按钮看懂页面、服务与公共事件的调用反馈
在 HarmonyOS 应用中,Ability 互操作经常被描述成页面跳转、服务调用和事件分发三类能力。真正把这些概念讲清楚,并不一定要先搭建一套复杂的多设备系统。一个足够小的演示页面,同样可以把用户能触发什么、界面会显示什么、调用次数如何变化,以及演示与真实系统能力之间的边界呈现出来。
这篇文章围绕一个简洁的 Ability 互操作页面展开。页面顶部显示"Ability 互操作",副标题写着"Stage 模型 · 页面、服务与事件能力互通"。下面依次放置三个全宽按钮:启动页面 Ability、调用服务 Ability、发送公共事件。每个按钮下面都有一句解释文字,分别对应 Want 参数路由、后台任务回传和向订阅方广播状态变化。最下方是一张浅蓝色日志卡片,显示当前累计次数和最近一次操作结果。
页面的重点不是伪装成一个已经连接系统服务的完整产品,而是把三个互操作入口放在同一个可观察的反馈闭环中。点击任意按钮后,次数加一,日志从初始化文字变成带有 IPC 序号和操作名称的成功提示。读者可以通过这个变化理解状态驱动界面,也能清楚知道当前看到的是本地演示反馈,而不是已经完成的跨进程通信。

一、先看页面:三个能力入口和一张日志卡片
打开页面后,最先看到的是一个浅灰蓝色背景。所有内容沿垂直方向排列,左右留有统一内边距,标题、说明、按钮和日志卡片都占据可读的横向宽度。它没有底部导航、列表、弹窗或输入框,页面的操作路径很短:看懂三个入口,点击其中一个,再观察日志卡片变化。
标题使用较大的深色粗体显示,文字是"Ability 互操作"。它没有附带编号,也没有把页面当作某个系列中的一节。副标题字号较小,颜色偏灰,说明这个页面讨论的是 Stage 模型下页面、服务和事件能力之间的互通关系。标题负责告诉用户主题,副标题负责缩小理解范围,两层文字没有承担交互功能。
第一个按钮是蓝色的"↗ 启动页面 Ability"。按钮下面的说明是"路由到目标页面并传递 Want 参数"。第二个按钮使用墨绿色,文字是"⚙ 调用服务 Ability",下面写着"执行后台任务并回传结果"。第三个按钮使用紫色,文字是"◌ 发送公共事件",下面写着"向订阅方广播状态变化"。三种颜色分别对应三类概念入口,用户无需进入下一页就能通过颜色、图标和文字区分它们。
日志卡片位于三个入口之后,使用浅蓝色背景和圆角。初始时,卡片第一行显示"跨进程日志 · 0 次",第二行显示"AbilityInterop 桥接已初始化"。这里的"桥接已初始化"是页面的初始状态文字,它告诉用户页面已经准备好接收点击操作,但不能据此推断系统已经建立了真实的 IPC 通道。点击按钮后,第一行的次数和第二行的最近结果会同时变化。
二、页面真正演示的是什么
从视觉上看,按钮文字使用了"启动页面 Ability""调用服务 Ability""发送公共事件"等真实 HarmonyOS 概念;从交互上看,当前页面把它们当作三个演示入口。三个入口最终走向同一个本地调用方法:记录一次调用,保存本次调用的名称,再让日志区域显示结果。页面没有配置目标页面地址,没有创建 Want 对象,没有启动远端服务,也没有注册公共事件订阅者。
这个区别很重要。如果只看按钮文案,很容易把页面理解为完整的 Ability 桥接工具;如果观察点击后的实际结果,就会发现它的行为是固定且可重复的。无论点击哪个按钮,页面都会增加一次累计次数,并显示"IPC #次数 > 操作名称 调用成功"。页面仍然停留在原处,按钮不会跳转,后台不会出现可观察的任务进度,其他设备也不会出现通知。
因此,页面适合用来讲三件事。第一,怎样把互操作概念组织成清晰的 UI 入口。第二,怎样用一个数字状态和一个文本状态形成操作反馈。第三,怎样在技术文章中准确区分演示状态与真实系统能力。它不适合被描述成已经完成页面路由、服务调度或事件广播的生产应用。
三、一次点击如何改变页面
页面的状态可以用两个维度理解。第一个维度是累计调用次数,开始为零,每次点击任意一个按钮增加一。第二个维度是最近一次日志,开始为初始化文字,每次点击后替换为新的调用结果。两个状态一起决定日志卡片的内容:次数用于告诉用户这次操作在整个页面会话中排在第几次,日志用于告诉用户本次点击对应哪一种入口。
例如,第一次点击"启动页面 Ability"后,卡片第一行变成"跨进程日志 · 1 次",第二行变成"IPC #1 > 启动页面 Ability 调用成功"。这并不表示真的已经跳转到目标页面,而是页面记录了一个名为"启动页面 Ability"的演示调用。随后点击"调用服务 Ability",次数变为 2,日志变成"IPC #2 > 调用服务 Ability 调用成功"。这时页面仍然处于同一界面,第一条操作结果不会保留在列表中,只会被最新结果覆盖。
第三次点击"发送公共事件"时,显示内容变为"跨进程日志 · 3 次"和"IPC #3 > 发送公共事件 调用成功"。如果继续点击同一个按钮,次数会继续递增,序号也会随之变化。三个按钮共享同一个计数,因此它记录的是页面内所有演示入口的总调用数,而不是每个按钮各自的调用次数。
页面没有重置按钮,所以次数不会通过界面操作恢复为零。重新创建页面或重新启动应用后,初始状态会重新出现。文章在讨论测试时,应该把"刷新后恢复初始化"理解为页面生命周期带来的重新开始,而不是把它写成一个用户可以点击的清除功能。
四、启动页面 Ability:文案中的路由和 Want 参数
第一个入口的说明文字是"路由到目标页面并传递 Want 参数"。这句话对应页面跳转类 Ability 互操作的常见使用场景:当前界面提出一次导航意图,目标页面接收必要参数,然后根据参数展示内容。在真实应用里,Want 可以承载目标 Ability、传递数据和启动选项,页面之间需要按照系统提供的方式完成调用和回调处理。
但在当前页面中,点击这个入口并不会真的打开第二个页面。它只把按钮名称交给统一的演示方法,再更新次数与日志。这种设计虽然简单,却有一个好处:用户可以先观察"一个页面如何表达路由入口",再把注意力放在状态反馈上,而不会被真实路由配置、目标页面生命周期和返回结果分散注意力。
从使用体验看,蓝色按钮承担的是"开始一次页面能力调用"的视觉角色。左上角的箭头符号提示方向感,蓝色在三个按钮中最接近常见的主要行动色。说明文字放在按钮下方,而不是塞进按钮内部,使按钮保持短而明确,补充说明负责解释参数传递的含义。
如果将来把这个入口扩展成真实路由,需要增加目标页面和参数接收逻辑,还要处理目标页面不存在、参数缺失、返回取消等情况。那些内容属于后续能力,不是当前页面已经完成的行为。当前文章只把按钮显示、点击记录和日志结果作为可验证事实。
五、调用服务 Ability:后台任务和结果回传的表达方式
第二个入口的文案是"调用服务 Ability",说明文字是"执行后台任务并回传结果"。在实际架构里,服务能力通常承担不依赖当前页面持续显示的工作,调用方关心的是任务是否被接受、任务结果是什么、失败时如何反馈。服务 Ability 的生命周期、权限、参数和回调方式都需要按照具体场景设计。
当前页面没有后台任务队列,也没有延迟进度或返回数据对象。点击墨绿色按钮后,页面立即在日志中写入"调用服务 Ability"这个名称,并把总次数增加一。这里的"调用成功"是对演示按钮动作的反馈,不是对某个后台任务执行结果的证明。没有网络请求、文件处理、数据库操作或服务端日志可以被用户观察到。
这个入口仍然有教学价值,因为它把服务调用和页面导航放在了同一组视觉结构中。用户看到两个按钮尺寸相同、下方都有一句说明,但颜色和文字不同。点击后它们又会进入同一个日志卡片,说明不同能力可以共享统一的反馈区域,同时保留自己的操作名称。
如果服务调用真的需要回传结果,界面还应该能区分等待中、成功、失败和超时。当前页面没有这些状态,因此不能把日志中的一次成功文字解读成完整的服务调用生命周期。对于读者而言,最可靠的观察是:点击入口后次数与最近日志发生同步变化。
六、发送公共事件:广播概念与本地反馈边界
第三个入口是紫色的"发送公共事件",说明文字是"向订阅方广播状态变化"。公共事件的典型含义是发布者向符合条件的订阅者发送一条事件消息,订阅方收到消息后再执行自己的响应。事件机制与页面跳转不同,它不一定需要用户离开当前界面,也不一定只对应一个接收者。
当前页面没有事件发布器、订阅者列表或接收回调。点击紫色按钮后,仍然只是增加总次数,并把最近日志写成对应的操作名称。页面本身没有显示任何订阅方反馈,也没有展示广播到哪些组件或设备。因此,"向订阅方广播状态变化"是这个入口对概念的说明,不是页面已经完成的跨进程事件传递。
把事件按钮放在第三位有利于形成从点对点到一对多的理解顺序。第一个按钮表达去某个目标页面,第二个按钮表达请求某个服务,第三个按钮表达向订阅方发布变化。三种入口在概念上有差别,在当前交互上却共享同一条反馈路径,这正好可以帮助初学者区分"能力的语义"和"界面的演示实现"。
如果后续接入真实事件机制,需要明确事件名称、数据结构、订阅范围、权限和取消订阅时机,还要考虑重复事件、无订阅者和发送失败等边界。当前页面并没有这些条件,文章不把它们写成已经存在的功能。
七、统一调用入口带来的界面一致性
三个按钮最终都由一个统一的调用入口处理。这个入口接收本次操作的名称,先把次数加一,再根据新的次数和操作名称生成日志文字。由于所有按钮遵循同一条路径,次数不会出现某个按钮忘记累加、某个按钮使用不同格式等问题。对于只有两个状态的页面来说,这种集中处理能让反馈规则非常清楚。
统一处理还有一个视觉上的结果:日志卡片不需要知道按钮来自哪里,它只负责显示总次数和最新消息。按钮承担触发职责,状态承担数据职责,卡片承担展示职责。页面结构因此形成了"入口---状态---结果"的小闭环。即使用户连续点击不同按钮,也能用相同的阅读方式理解结果。
需要注意的是,统一入口并不意味着三个能力在系统层面完全相同。它只是当前演示的 UI 组织方式。真实的页面 Ability、服务 Ability 和公共事件通常拥有不同的 API、生命周期和错误处理策略,不能因为它们在页面上使用了相同尺寸的按钮,就认为它们的系统实现也可以完全复用。
八、日志卡片为什么只显示一条最近结果
日志卡片的第一行是累计次数,第二行是最近一次结果。它没有使用列表,也没有把每次操作保存成多条记录。这种设计适合突出"当前操作已经产生反馈",让页面保持紧凑。用户关注的是刚刚点击了什么,而不是在这个小页面中浏览长时间历史。
如果连续点击三个入口,卡片只显示第三次的名称,但次数会告诉用户之前至少已经发生过两次操作。也就是说,次数保存了会话级的总量,日志文本保存了最近一次的上下文。这两个字段分别解决数量和内容两个问题,不需要在一条长文本中混合表达。
卡片的背景色是浅蓝色,文字使用深色和灰色两种层次。标题行使用较大的粗体,突出"跨进程日志"和次数;结果行字号较小,适合展示较长的操作名称。卡片四周留有内边距,圆角让它和按钮区分开来。这里的视觉强调服务于信息阅读,没有动态进度条、加载动画或成功图标。
九、三个按钮的颜色和文本如何帮助理解
蓝色、墨绿色和紫色分别给三个入口提供了识别线索。颜色不是状态开关,点击前后按钮不会变成另一种颜色,也没有禁用色或选中色。它们的作用是帮助用户在页面初始状态就分辨入口,而不是告诉用户某个系统调用是否真的成功。
按钮都设置为全宽,并保持相同高度,用户可以在相同的触控区域内完成操作。按钮间距统一,说明文字紧跟在相应按钮下方。这样的排布避免了"按钮属于哪条解释"的歧义。每个按钮本身的文字已经说明动作,下面的文字再补充该动作在 Ability 互操作语境中的含义。
按钮上的箭头、齿轮和圆环符号是视觉提示,不是独立控件。它们不会被单独点击,也不会触发不同逻辑。实际触发区域是整个按钮,点击文字、符号或按钮空白区域都属于同一个按钮点击事件。
十、从初始状态到多次操作的完整观察
页面首次打开时,用户可以看到零次调用和初始化日志。此时三种入口都可点击,页面没有等待状态,也没有错误提示。点击第一个入口,次数变成 1,日志包含页面 Ability 的名称;点击第二个入口,次数变成 2,日志替换为服务 Ability 的名称;点击第三个入口,次数变成 3,日志替换为公共事件的名称。
如果用户再次点击第一个入口,次数会变成 4,日志重新显示页面 Ability。次数变化与按钮种类无关,只与点击发生有关。快速连续点击时,页面仍然按照点击顺序更新,当前实现没有节流、去重或防重复提交机制。由于每次更新都是同步的本地状态变更,用户可以直接观察到数字递增。
重新进入页面后,初始数字和初始化日志会重新出现。页面没有保存调用历史的持久化逻辑,也没有把次数同步到其他页面。关闭页面不会留下可供下次打开读取的结果,这一点同样说明它是一个短生命周期的交互演示。
十一、适合初学者观察的 ArkUI 状态驱动思路
这个页面虽然功能少,但能把声明式 UI 的基本思路讲清楚。界面不是在点击回调里手工寻找文本并替换,而是由状态决定应该显示什么。当次数变化时,卡片标题中的数字自然跟着变化;当最近日志变化时,结果文本自然显示新的内容。开发者描述的是状态和界面之间的关系,框架负责完成状态变化后的界面更新。
页面只有一个组件拥有这两个状态,因此数据流非常短。按钮事件把操作名称交给统一方法,统一方法更新数字和文本,日志卡片读取这两个值。没有子组件之间的参数传递,没有复杂的双向绑定,也没有异步回调链。初学者可以先掌握这条简单路径,再把同样的思路应用到真实的页面跳转、服务响应或事件接收场景。
状态驱动并不等于所有系统行为都自动完成。它只负责把状态变化准确地反映到 UI。真正的 Ability 启动、服务调用或事件广播仍然需要对应的系统接口、配置、权限和错误处理。当前页面把这些系统动作抽象成按钮名称,是为了让状态更新机制容易被观察。
十二、真实互操作能力与当前页面的边界
为了避免误解,需要把页面能证明的内容和不能证明的内容分开。页面能证明:三个按钮存在;每个按钮都有对应说明;点击任意按钮会增加总次数;日志会显示带序号的操作名称;页面保持在当前界面;初始日志会在新一轮页面创建时出现。
页面不能证明:是否真的创建了 Want;是否真的启动了目标页面;是否真的调用了后台服务;是否真的有 IPC 数据传递;是否真的广播给了订阅方;是否真的发生了跨设备通信。页面也没有展示权限拒绝、目标不存在、服务超时、事件无人订阅等异常情况。
这不是对页面功能的否定,而是对演示范围的准确描述。一个好的技术示例应当让读者知道自己观察到了什么。把"IPC #1 > 启动页面 Ability 调用成功"看作本地反馈文本是准确的;把它解释成系统已经建立 IPC 并成功打开另一个 Ability,就是超出了页面证据。
十三、如果要把演示逐步扩展成真实功能
从当前页面走向真实互操作,可以按照三个入口分别扩展。页面 Ability 方向需要增加目标页面、传参约定和返回结果处理。服务 Ability 方向需要明确任务输入、服务生命周期、完成结果和失败反馈。公共事件方向需要确定事件名称、发布数据、订阅者范围和取消订阅策略。
扩展时可以继续保留当前的统一反馈卡片,但状态模型要更细。比如页面跳转需要显示"准备跳转""已返回"或"启动失败",服务调用需要显示"执行中"和"结果已返回",公共事件需要显示"已发送"和"订阅者响应"。这些状态不能直接复用当前的"调用成功"文字,因为它们代表不同的系统阶段。
还要考虑权限和安全边界。不同 Ability 之间传递的数据可能包含用户信息,公共事件也可能被不应接收的组件监听。真实应用需要在接口设计、参数校验、权限检查和异常反馈上投入更多工作。当前页面没有敏感数据输入和网络请求,所以不应把它描述成安全通信方案。
十四、实际操作时可以观察的几个细节
第一,观察初始卡片的次数是否为零,日志是否为"AbilityInterop 桥接已初始化"。第二,分别点击三个按钮,确认按钮下方的说明与日志中出现的操作名称相互对应。第三,混合点击顺序,确认次数只递增不回退,日志只保留最后一次操作。第四,连续点击同一个按钮,确认每一次点击都会生成新的 IPC 序号。
第五,注意按钮点击后页面不会跳转。这个现象不是操作失败,而是当前页面把调用作为本地演示记录。第六,重新创建页面后,次数会重新开始,日志恢复初始化文字。第七,观察三个按钮的视觉颜色在点击前后保持不变,颜色只是入口区分,不是实时通信状态。
这些观察足以覆盖页面实际提供的主要行为,不需要假设存在没有显示出来的远端设备、后台服务或事件订阅者。对于初学者来说,先把可见事实记录清楚,再研究系统 API,会比直接把概念和实现混为一谈更容易建立正确理解。

十五、页面布局为何采用简单的纵向结构
三个入口具有相同的重要程度,纵向排列比复杂的网格更适合当前内容。每个按钮与自己的说明文字形成一个小单元,用户从上到下阅读时,可以顺着"能力名称---补充说明---点击反馈"的顺序理解页面。若使用多列布局,说明文字可能被压缩,三个入口之间的对应关系也不如现在直观。
根容器使用固定间距组织元素,页面宽度和高度都填满可用区域,并通过内边距避免文字和按钮贴近屏幕边缘。背景色较浅,按钮颜色较深,日志卡片使用另一种浅色背景,层次由此自然形成。页面没有滚动容器,因为当前内容量在常见屏幕上可以完整显示。
这种布局也使触控路径简单。用户不需要打开菜单、切换标签或返回上一层,看到入口后就能操作。对于演示 Ability 概念的页面来说,减少导航层级有助于把注意力集中到三个动作和一条日志上。
十六、常见误读与纠正
误读一:看到"IPC #1"就认为页面已经完成跨进程调用。纠正:这是日志卡片拼出的演示文本,当前页面没有可见的远端结果。
误读二:看到"启动页面 Ability"就认为一定会打开另一个页面。纠正:当前点击只更新次数和日志,页面没有发生跳转。
误读三:看到"调用服务 Ability"就认为后台任务已经运行。纠正:当前页面没有任务进度和服务回传对象,能确认的只有本地反馈更新。
误读四:看到"发送公共事件"就认为存在订阅者。纠正:页面没有订阅者列表或接收回调,事件概念只体现在按钮名称和说明中。
误读五:看到"跨进程日志"就认为日志会持久化。纠正:日志只显示当前页面会话的总次数和最近结果,重新创建页面后会恢复初始状态。
十七、从用户视角评价这个页面
作为一个概念演示页面,它的优点是入口少、层次清楚、反馈直接。用户打开后不需要学习复杂操作,三种互操作方向已经写在按钮和说明里。点击后的次数变化提供了可见证据,日志名称让用户知道刚刚点击的入口。即使用户不了解 Stage 模型,也能通过页面结构建立基本印象。
它的边界也非常明确:没有真实跳转、服务执行或事件订阅反馈,日志只保留最近一条结果,不支持撤销和重置。若应用目标是展示概念,这种取舍是合理的;若目标是承载真实业务,就需要补足系统调用、结果状态、异常处理和数据安全。
十八、适合这三个入口的扩展验证思路
验证页面时,可以先按单按钮路径操作,再按混合路径操作。单按钮路径用于确认每个名称都能正确进入日志;混合路径用于确认共享计数是否保持连续。还可以在点击后观察标题行与结果行是否同时变化,避免只检查其中一处。
边界观察包括快速连续点击、长时间停留后再次点击、重复点击同一个入口以及重新进入页面。当前页面没有输入框,因此不存在文本为空、字符超长或非法格式等输入边界。当前页面也没有异步等待,因此不应期待出现加载动画或延迟完成状态。
如果未来接入真实接口,验证范围应相应扩大,包括参数是否传递、目标是否可达、服务是否返回、事件是否被订阅以及失败时界面是否能说明原因。那是扩展后的新行为,不能反过来填补当前页面没有实现的部分。
十九、三个入口在同一页面中的取舍
把三种能力放在同一页,首先解决的是比较问题。用户不需要在不同页面之间来回切换,就能看到三种入口的文字、颜色和说明保持并列。蓝色入口强调向页面移动,墨绿色入口强调请求服务,紫色入口强调发送事件。它们的差异通过视觉和文案呈现,点击后的日志格式却保持一致,因此既能比较概念,又不会让反馈规则变得复杂。
这种安排也限制了页面的职责。它没有为每种能力单独设计复杂结果区,而是让所有结果汇聚到一张卡片中。对于演示来说,汇聚能减少干扰;对于真实业务来说,如果三种调用的返回内容差异很大,就需要为每种结果增加独立的信息区域。当前页面没有这样的需求,单一日志卡片足以表达最近一次动作。
次数使用一个总计而不是三个分计,也体现了页面的取舍。总计可以快速回答"这个会话触发了多少次入口",但不能回答"每个入口分别触发了几次"。如果以后需要统计不同类型的调用,就要增加分类型计数,同时在卡片中说明统计口径,避免用户把总数和分类数混在一起。当前实现只需要一个总数,所以读起来更直接。
二十、按钮说明与日志文本的对应关系
按钮下面的说明和日志中的结果承担不同职责。说明是静态的,用户在点击之前就能看到它,用来解释"这个入口代表什么"。日志是动态的,只有点击之后才变化,用来告诉用户"刚才触发了哪一个入口"。例如,页面按钮下面始终保留"执行后台任务并回传结果",而日志只在用户实际点击服务入口后写入"调用服务 Ability"。
这种静态说明与动态结果的分离,避免了点击一次后页面结构发生大幅变化。用户可以连续比较三条说明,也可以通过日志确认最后一次操作。若把说明也改成动态文字,用户可能在观察结果时失去其他入口的语义;当前设计保留三条说明,保证页面始终可读。
日志中的序号又提供了第二层对应关系。序号不是某个能力的编号,而是整个页面会话的点击顺序。第一次点击哪个按钮都会得到一号,第二次点击哪个按钮都会得到二号。因此,读者在测试时应当结合按钮名称和序号一起阅读,不能把"IPC #2"理解成第二种能力。
二十一、触控反馈和可见反馈的区别
按钮本身提供的是触控入口,日志卡片提供的是可见结果。点击时,系统会先处理按钮事件,随后状态变更让卡片文字更新。按钮颜色不会变成成功色,页面也没有弹出提示框,所以用户判断结果主要依靠日志卡片。这个反馈路径非常短,操作和结果在同一屏内完成。
当前页面没有单独的加载态,说明调用方法不会等待异步结果。它也没有错误态,因为按钮点击没有输入校验和失败分支。这样的反馈模型适合演示"点击后状态如何更新",不适合说明网络请求、跨进程调用或后台任务的真实耗时。真实能力接入后,触控反馈和结果反馈应当分开设计,避免用户把按钮被点击误认为远端操作已经完成。
二十二、可读性来自哪些具体细节
页面可读性不是由大量说明堆出来的,而是由固定的空间关系形成的。标题先给出主题,副标题补充范围;按钮负责动作,紧邻的灰色文字负责解释;日志卡片最后出现,承接前面任何一个入口的结果。相同的宽度和高度让三个按钮形成一组,三种颜色又让它们保留差异。
文字颜色也有明确分工。标题使用深色,确保第一眼能识别主题;副标题和说明文字使用灰色,避免抢过按钮;日志卡片的结果文字使用较深的灰色,保证长文本仍然清楚。浅灰蓝背景和浅蓝日志卡片之间有轻微区分,按钮的高饱和颜色成为视觉锚点。页面没有额外装饰,因此每一处颜色都与信息层次有关。
二十三、总结
这个 Ability 互操作页面用三个按钮和一张日志卡片,把页面能力、服务能力和公共事件三个概念放在同一条可观察路径上。标题和副标题先建立主题,三个不同颜色的入口负责表达动作,按钮下方的短说明补充每种能力的语义,日志卡片则用累计次数和最近结果形成即时反馈。
它最值得学习的地方不是按钮数量,而是边界表达。页面用"启动页面 Ability""调用服务 Ability""发送公共事件"作为演示入口,却没有假装已经完成真实系统互操作。点击后的行为稳定而简单:次数加一,日志更新,页面保持不变。正因为结果可重复,读者才能清楚观察状态变化和界面更新。
从 ArkUI 角度看,页面展示了一个小而完整的状态驱动闭环:用户点击按钮,事件传入操作名称,次数和日志状态被更新,日志卡片显示新值。这个闭环可以成为理解更复杂应用的起点。将来增加真实路由、服务或公共事件时,应在此基础上补充真实 API、参数、权限、生命周期和异常状态,同时继续保持反馈清晰。
因此,阅读或运行这个页面时,最准确的结论是:它是一个把 Ability 互操作概念转化为可点击 UI 和可见日志的演示。它帮助读者理解三类入口如何组织、共享状态如何更新以及反馈如何设计;至于真实的跨进程通信、页面跳转、服务执行和公共事件广播,则需要在更完整的系统实现中单独完成。
如果把页面当作一次小型体验,完整路径可以概括为"进入页面、阅读三种能力说明、选择一个入口、查看次数、核对最近日志"。这条路径没有隐藏步骤,也没有需要额外准备的数据。它让能力概念从抽象名词变成了可以观察的动作,同时保留了真实系统接入前必须面对的接口、权限和生命周期问题。对于学习者而言,先建立这种清楚的观察边界,再继续扩展实际能力,能够减少把演示文字误判为系统结果的情况。
页面的另一个特点是每次操作都能立即回到同一个信息中心。无论用户选择页面、服务还是事件,最终都在日志卡片中看到统一格式的序号和名称。这样的回到中心设计减少了操作后的不确定感,也让三条路径始终保持可比较。它没有把不同入口包装成互不相干的功能,而是在相同的反馈规则下呈现各自的语义差别。
从阅读顺序看,先看静态说明,再做一次点击,最后对照动态日志,正好覆盖了页面的全部核心信息。读者不需要依靠隐藏状态或额外配置,就能理解一次操作前后的差异。