交互能力受系统严格限制
别名: 小组件交互 · widget tap target · 深链启动 · App Widget
概念解释
小组件看起来像一块迷你界面,但系统不允许它成为迷你应用。可点的往往只有若干按钮或整块热区,点下去多半是打开应用里的某一页;滚动、打字、任意拖动手势要么没有,要么被裁成白名单里的几种。待办上的复选框能勾掉一项,同一块上的「添加」却只能进应用;行情块不能在桌面上完成下单。这条只谈能力上限,不谈这一瞥能不能读出数字,也不谈锁屏上这些内容会不会被旁人看见。
机制
小组件跑在启动器或系统主屏进程里,不在应用自己的前台会话中。宿主限制视图树、刷新预算和可注册的动作,是为了电池、稳定和安全:否则每个应用都可以在主屏上开一个常驻的可输入表面。结果是设计稿上的输入框、分页、手势栈到真机上会塌成「整块可点 → 打开应用」。不同系统、不同版本放开的白名单不一样——有的允许按钮和列表滚动,有的长期只允许深链——但上限逻辑相同:没被明确允许的交互不存在。人会按看见的控件去试;试失败时,责任看起来在产品,其实是宿主把事件吞了。把小组件写成「在桌面上做完整任务」,是在承诺宿主不会给的能力。
怎么研究
做动作审计:列出小组件画面上所有看起来可点的元素,在不打开应用的前提下逐一尝试,记录宿主允许的结果(切换、刷新、深链)与被忽略的点击。对照不同系统版本的能力表。
自变量:控件种类、系统与版本、是否声明为交互式、动作是否需要输入。 因变量:未打开应用即可完成的步骤数、空点击次数、误以为可编辑的区域、任务最终是否仍进应用。
实验室里若先口头说明「这是小组件,很多点不了」,空点击会被人为压低。更接近使用的是不说明限制,只给任务。不要用应用内的完成率代替小组件上的完成率。云端截图点得到像素,测不到「点了没反应」的触感,真机点击日志更有用。
边界
安卓的集合型小组件历史上允许列表滚动和多项按钮,上限比早期 iOS 宽,但不能外推成「安卓上可以做完整应用」。后来放开的交互式小组件仍禁止任意视图和连续手势。智能叠放把多块轮换,交互还要先落到当前可见的那一块。表盘复杂功能的上限更窄,不应把手机小组件的按钮能力搬过去。开发者自己的桌面程序不是系统小组件,不受这套宿主限制。
怎么落地
- 按宿主白名单列动作:能在小组件里完成的做成按钮,需要表单、搜索、多步的只做成打开对应页的入口,并在视觉上分开。
- 不要画输入框、滑块、看起来能拖的手柄,除非该系统该版本真的会响应。
- 交互失败时不要静默:若点了只能打开应用,落地页应接住那个动作,而不是丢在首页。
- 验证:在不进入应用的前提下,用目标系统走一遍产品宣传里「可在桌面完成」的步骤。写下每一步实际结果(完成 / 被忽略 / 打开应用)。任何宣传为桌面完成、实际上必须启动应用的步骤,都是把上限画成了完整界面。