1.1 前言
- 规范中的说明和图示仅为示意,通知能包含的行数及每行字数,视系统当前所使用的字体和语言、当前设备的分辨率、全/半角符号、字/行间距等而定;通知的按钮位置、图片大小等会跟随OS整体视觉风格进行优化或调整,恕不另行通知,建议实际开发时在真机上调试和验证。
- 通知自行设计和开发,系统仅提供基础能力,具体使用由开发者决定需要开发者。
- OS版本覆盖需要较长的时间周期,且Android的接口存在版本差异,请注意通知在各个目标机型上的样式表现,做好兼容。
- 规范中的说明和图示仅适用于OriginOS中国大陆版本。
- 图示文案仅为示例,不代表真实的应用通知内容。
1.2 概述
1.2.1 通知的使用原则
1. 适合发送通知的事件:
(1) 对时间敏感的(例如日程通知)。
(2) 与他人有关的(例如新信息通知)。
(3) 涉及用户财产或数据安全的(例如支付宝转账通知)。
(4) 通知不应该成为主要的与用户沟通的渠道,因为频繁的中断可能会造成影响。
2. 不适合发送通知的事件:
(1) 与用户没有直接关系或时间不敏感的(例如朋友圈的更新)。
(2) 已经显示在屏幕上的(此时应在应用界面中告知用户,例如用户正在聊天界面聊天时,有新的消息,应直接显示在界面上,无需发通知)。
(3) app打包成apk; 一些应用可以自行处理的技术细节(例如保存,同步或升级的过程)。
(4) 应用可以自行快速恢复的错误信息,不需要用户参与操作。
(5) 没有提供直接价值,仅仅为了让用户返回到应用程序的消息。
(6) 对用户当前操作的反馈,最好使用弹出框或Toast提示,而非通知。
1.3 通知提醒方式
通知发出后,可以通过以下方式提醒用户,各应用在定义通知提醒方式时,需要充分考虑用户使用场景及可行性:
1. 通知栏显示通知(默认,如果同一应用的通知条数达到2条,会分组)。
2. 状态栏图标(受开关、channel优先级、应用类型等控制)。
3. 悬浮通知(受开关和channel优先级控制):对用户设定的在顶部预览显示的通知,会在通知发出时在屏幕上方以悬浮框形式显示通知内容,并在5s后自动消失,可上滑收起,横滑删除。
4. 锁屏通知(受应用“锁屏通知”开关控制):对用户允许的、在锁屏之后收到的通知,会在锁屏状态下显示。
5. 另外,部分通知还可发出声音或振动(受channel优先级和开关控制)。
6. 在有闪烁LED的设备上,收到部分通知时还可闪烁LED。
1.4 核心的通知组件
1.标题区域
2.内容区域
3.动作区域
1.5 推荐使用的通知样式
1.5.1 安卓原生的标准样式 (Standard template)
使用说明:最常见的样式,也是通知的默认样式,用于传递信息。
设计要点:
1. 应用图标(必选):使用应用图标而非功能图标,因为该图标不能承载具体的功能。
2. 应用名称(必选):与发通知的应用名称保持一致。
3. 辅助信息(可选):可显示应用中的通知来源,如登陆了多个账户的电子邮件app,可在此处显示该通知所指向的账户。
4. 时间(必选):若非必要,请保证时间显示与通知实际发送时间一致。
5. 通知标题(可选,推荐显示):避免与应用名称重复。
6. 通知详情(可选):避免重复标题中的内容。
7. 附图(可选):应与通知内容有关;避免与应用图标重复。
注意:
1. 建议同时具备通知标题和通知详情,若因内容所限,请保证显示通知详情。
2. 目前vpush仅支持本样式,不支持配置“附图”。
1.5.2 安卓原生的大文本样式 (Big text template)
使用说明:用以展示更多的文本内容。
使用条件:需同时满足API≥16和Android ≥4.1。
设计要点:
• 基本视图
用户可点击右上角箭头按钮展开至扩展视图。
• 扩展视图
版本差异:
1、在OriginOS 1.0以前的版本中,不显示右上角箭头按钮、基本视图显示2行通知详情内容,用户需要双指下滑展开至扩展视图。
2、从OriginOS 1.0开始,显示右上角箭头按钮、基本视图显示1行通知详情内容,用户通过点击箭头按钮展开至扩展视图。
1.5.3 安卓原生的媒体样式 (Media template)
使用说明:为音乐、广播等媒体播放设计的通知样式,可以展示媒体内容,并且可以对媒体内容进行控制。
使用条件:需同时满足API≥21 和Android ≥5.0。
设计要点:
可设置on going属性,让用户无法删除该条通知。
• 基本视图
• 扩展视图
版本差异:
1. 在OriginOS 1.0以前的版本中,不显示右上角箭头按钮,用户需要双指下滑展开至扩展视图。
2.&n网页加壳生成appbsp;从OriginOS 1.0开始,显示右上角箭头按钮,用户通过点击箭头按钮展开至扩展视图。
1.5.4 进度条样式 (Progress template)
使用说明:用以表示上传/下载进度。
设计要点:
• 有两种类型:无明确进度和有明确进度,有明确进度的可以预估结束的时间;(不强制使用,模块自行评估,建议短时间可结束的场景使用百分比,长时间可结束的场景使用预估结束时间。)
• 可设置ongoing属性,让用户无法在一键清空通知栏时删除该条通知(用户单独滑动本条通知时,仍可响应删除操作)。
有明确进度
• 基本视图
1. 预估结束时间(可选):有明确进度的可以预估结束的时间
• 扩展视图
无明确进度
• 基本视图
• 扩展视图
1.6 不宜使用的通知样式
vivo不推荐使用本规范之外的通知样式,尤其是涉及到虚假内容、诱导、欺骗一类的。我们会在此处不定期公开不规范的通知使用样式,请各位开发者予以关注:
近期不规范样式(2022年2月22日更新):
1、通知中包含分割线,使一条通知视觉呈现上如同两条通知。
2、通知中包含异型大按钮,且按钮点击无效。
3、伪装为来源于其他应用的通知,甚至伪装为系统通知。
1.7 为通知添加其他属性
1.7.1 添加附图 (Large icon)
使用说明:通知默认没有 large icon,增加 large icon可丰富通知的内容,尤其适用于 IM / 邮件等场景。
使用条件:需同时满足API≥11 和Android ≥3.0。
设计要点:
1.附图
• 应与通知内容有关,避免与应用图标重复。
• 请不要滥用 large icon,我们后续会视情况而定是否收紧这个能力。
1.7.2 添加按钮 (Action)
使用说明:Actions 指的是通知的快捷按钮。
使用条件:需同时满足API≥16 和Android ≥4.1。
设计要点:
添加了按钮的样式如下(除媒体通知外,最多可以设置3个 Actions)。
注意:
• 通知默认不会有按钮。
• 任何通知样式都可以添加按钮,开发者可以自由搭配。
• 按钮只能在双指下滑展开至大视图时显示,系统应用默认显示按钮是因为做了特殊处理(历史遗留问题)。
1.7.3 ongoing属性
用于表示“会持续一段时间的、正在进行的任务,且提供了用户暂停/停止/关闭该任务所必须的操作选项”的通知。
点击跳转落地页,落地页上可关闭任务 | 不是表示进行中的任务,点击不能快速关闭 |
1.7.4 通知分组
自Android 7版本开始增加了通知的分组功能,将同一应用的多个通知合并为可展开的层次结构。
未分组 | |
分组未展开 | |
分组已展开 |
根据触发方式,分组可分为自动分组和自定义分组:
1、自动分组:如果同一应用发出2条或更多条通知且未指定分组,则系统会自动将这些通知分为一组。
2、自定义分组:应用在发送通知时,发送指定分组id的头通知或子通知,则指定分组的通知将被分为一组,一组中有一个头通知和多个子通知。
注意:
1、请开发者不要滥用自定义分组,包括但不仅限于:一条通知一个分组、同一应用有两个以上的自定义分组。
2、在某条通知与其他通知具有区别较大的功能、且样式与控件与常规通知相差较大时,可以使用自定义分组;运营消息不可以使用自定义分组。
3、同一应用,使用自定义分组的头通知不可以超过2条,即同一应用最多只能有自动分组+2个自定义分组。
1.8 管控及惩罚规则
vivo会定期巡查通知样式,发现有不合理使用通知的行为时,会给予邮件警告,必要时将会采取限制。
1.9 FAQ
1、怎么判断API版本?
各 Android 平台版本所支持的 API 级别请查看文档:https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels
2、API和Android需要同时判断吗?
是的,取API和Android中的较小值,因此,我们强烈建议业务方积极升级API,享受安卓新特性(API关系到的不止是通知,可能也会影响业务中的其他功能,详情请咨询业务中的安卓开发工程师~)
3、章节1.5之外的通知样式,算是符合规范的吗?
我们强烈建议:开发者在通用样式能满足需求的情况下不要去“自创”通知样式;如果当前的通知样式的确不能满足需求,请基于用户体验原则考虑通知是否为最好的呈现方式。另外,我们会使用“巡查”的方式进行监管,严重的话会收紧该应用在vivo手机上的通知能力。
4、什么影响通知栏的排序?应用自己能定义吗?
OriginOS按时间排序;OriginOS之前使用安卓原生的排序规则。
更多FAQ后续补充。
编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/11646/
部分内容来自网络投稿,如有侵权联系立删