iOS Development Guidelines
  • Introduction
  • 规范
    • 0. 介绍
    • 1. 序言
    • 2. 代码命名规范
      • 2.1. 代码命名基础
      • 2.2. 方法(Method)命名
      • 2.3. 函数(Function)命名
      • 2.4. 属性(Property)与数据类型命名
      • 2.5. 其它命名规范
      • 2.6. 可接受缩略名
    • 3. 代码格式规范
      • 3.1. 代码注释格式
      • 3.2. 代码结构与排版
    • 4. 开发实践
      • 4.1. Objective-C保留字
    • 5. Xcode工程结构
    • 6. 版本控制
      • 6.1. Git基本配置
      • 6.2. Git分支模型
      • 6.3. SVN源代码管理规范
      • 6.4. SVN的标准目录结构
    • 7. 附录
      • 7.1. Xcode扩展插件
      • 7.2. 第三方开源库
    • 8. 参考
    • 9. iOS开发优化
  • Swift编码规范
  • Objective-C新特性
  • iOS生命周期
  • Apple 官方设计指南
    • iOS 人机交互指南
      • 概览 - 设计理念
      • 概览 - iOS 10 新功能
      • 概览 - 接口要素
      • 交互 - 3D Touch
      • 交互 - 辅助功能
      • 交互 - 音频
      • 交互 - 身份验证
      • 交互 - 数据输入
      • 交互 - 反馈
      • 交互 - 文件处理
      • 交互 - 初次启动体验
      • 交互 - 手势
      • 交互 - 加载
      • 交互 - 模态
      • 交互 - 导航
      • 交互 - 评分和评论
      • 交互 - 请求权限
      • 交互 - 设置
      • 交互 - 术语
      • 交互 - 撤销与重做
      • 系统功能 - 多任务
      • 系统功能 - 通知
      • 系统功能 - 打印
      • 系统功能 - 快速预览
      • 系统功能 - Siri
      • 系统功能 - TV 供应商
      • 可视化设计 - 动画
      • 可视化设计 - 品牌化
      • 可视化设计 - 颜色
      • 可视化设计 - 布局
      • 图像 - 应用图标
  • Apple 官方开发指南
    • App 发布指南
      • 待完善
    • Cocoa 代码指南
      • 代码命名基础
      • 方法命名
      • 函数命名
      • 属性和数据类型命名
      • 可接受的缩写词和首字母缩写词
      • 针对框架开发者的技术细节
    • 核心蓝牙编程指南
      • 待完善
  • iOS 杂谈
    • Auto Layout 是怎么进行自动布局的性能如何
    • App 启动速度的优化与监控
    • 多人的大项目,架构怎么设计更合理
    • 链接器:符号是怎么绑定到地址上的
    • App 如何通过注入动态库的方式实现极速编译调试
    • 静态分析工具的选择
    • Clang的App 提质
    • 无侵入的埋点方案如何实现
    • 包大小:如何从资源和代码层面实现全方位瘦身
    • iOS 崩溃千奇百怪如何全面监控
    • 如何利用 RunLoop 原理去监控卡顿
    • 临近 OOM,如何获取详细内存分配信息,分析内存问题
    • 日志监控:怎样获取 App 中的全量日志
    • 性能监控:衡量 App 质量的那把尺
    • 远超想象的多线程的那些坑
    • 怎么减少 App 电量消耗
    • 除了 Cocoa,iOS还可以用哪些 GUI 框架开发
    • 细说 iOS 响应式框架变迁,哪些思想可以为我所用
    • 如何构造酷炫的物理效果和过场动画效果
    • A/B 测试:验证决策效果的利器
    • 怎样构建底层的发布和订阅事件总线
    • 如何提高 JSON 解析的性能
    • 如何用 Flexbox 思路开发?跟自动布局比,Flexbox 好在哪
    • 怎么应对各种富文本表现需求
    • 如何在 iOS 中进行面向测试驱动开发和面向行为驱动开发
    • 如何制定一套适合自己团队的 iOS 编码规范
    • iOS 系统内核 XNU:App 如何加载
    • iOS 黑魔法 Runtime Method Swizzling 背后的原理
    • libffi:动态调用和定义 C 函数
    • iOS 是怎么管理内存的
    • 如何编写 Clang 插件
    • 打通前端与原生的桥梁:JavaScriptCore 能干哪些事情
    • React Native、Flutter 等,这些跨端方案怎么选
    • 原生布局转到前端布局,开发思路有哪些转变
    • iOS原生、大前端和Flutter分别是怎么渲染的
    • 剖析使 App 具有动态化和热更新能力的方案
  • Flutter
    • 0.Flutter学习笔记以及问题记录
    • 1.Dart基础快速入门
    • 2.什么是声明式UI
    • 3.Flutter入门基础知识
    • 4.项目结构、资源、依赖和本地化
    • 6.布局与列表
    • 7.状态管理
    • 8.路由与导航
    • 9.手势检测及触摸事件处理
    • 9.线程和异步UI
    • 10.主题和文字处理
    • 11.表单输入与富文本
    • 12.调用硬件、第三方服务以及平台交互、通知
    • 13.基于Http实现网络操作
    • 14.图片控件开发详解
    • 15.异步:Future与FutureBuilder实用技巧
    • 16.APP首页框架搭建-Scaffold与PageView
Powered by GitBook
On this page

Was this helpful?

  1. Apple 官方设计指南
  2. iOS 人机交互指南

系统功能 - 通知

Previous系统功能 - 多任务Next系统功能 - 打印

Last updated 5 years ago

Was this helpful?

应用可以在任何时候使用通知来提供及时且重要的信息,不管设备处于锁屏还是使用中。例如,当一条信息到达时,通知可能会出现,一个事件即将发生,有新的数据可用,或者一些状态的变化。用户可以在锁屏上看到通知,或者在使用时设备的时候,在屏幕顶部看到通知,通知中心可以通过在屏幕顶部边部下滑打开。每一个通知包含应用名称,一个小的应用图标和一条信息。通知可能也会伴随声音,并且可能会导致相应应用图标上出现徽标或者徽标的更新。

在单个应用基础设置中可以管理通知的行为。针对所有支持通知的应用,你都可以启动或者禁用整个通知功能。你可以设置通知在通知中心或者锁屏下是否可见,设置应用图标徽标的标记,以及选择以下这些通知样式之一:

  • 横幅。当设备使用时,会出现在屏幕的顶部,几秒钟之后就会消失。

  • 提醒框。当设备使用时,会出现在屏幕的顶部,一直停留在那里,直到你手动关闭。

当设备非锁屏时,可以通过轻触动作以及当设备锁屏可以通过向右滑动来关闭通知,从通知中心移除通知,并且打开相应的应用,展示相关信息。例如,在非锁屏的设备上轻触一个新邮件通知,可以打开邮件应用并且展示新的信息。

在一个非锁屏的设备上,通过向上滑动通知或者让他自行消失关闭通知,可以在通知中心中移除这个通知。

通过 3D Touch 功能对一个通知施加压力,或者在非锁屏设备上,向下滑动一个通知,可以打开展开的细节视图。这个视图是可以定制的,并且可以包含最多四个按钮来执行操作。例如一个待办事宜列表的应用,可能会发送一个带有细节视图的任务通知,他包含推迟任务和标记完成等动作。日历事件通知提供一个“Snooze”操作来简单的延迟事件闹钟。

小提示 通知可以是本地的,也可以是远程的。本地通知源头和发送都是在同一个设备上。一个待办事宜列表的应用可能会使用本地通知来提醒用户即将到来的会议或者到期日。远程通知,也被称为推送通知,来自服务器端。多用户游戏可能会使用远程通知来让玩家知道他们的行动。

用户必须针对每一个支持通知的应用来选择是否接收通知,用户初次使用应用的时候,应用会请求使用通知功能。如果通知被禁用了,可以通过设置中来开启。

提供有用的、详实的通知。用户通过启动通知来快速获取更新的信息,所以重点在于提供有价值的信息。使用完整的句子,正确的标点符号,不要截断你的信息。如果有必要的话,让系统自动执行接下来的操作。避免告知用户打开你的应用,导航到特定页面,点击指定按钮,执行其他任务,诸如此类的很难记住的操作,尤其是一旦通知被关闭。

不要针对同一事件发送多个通知,即使用户没有响应。用户会在方便的时候查看通知。如果你针对同一事件发送多个通知,这些通知将会填充通知中心,用户可能会关闭你应用的通知功能。

不用包含你的应用名或者应用图标。系统会在每一个通知的顶部自动展示这些信息。

使用徽标补充通知,而不是表示关键信息。请记住,你的应用徽标可能会被关闭。如果你的应用依赖于徽标传达重要信息,将会冒着用户遗漏信息的风险。

徽标的使用仅限于通知。徽标不应用于其他类型的数字信息,例如:空气质量、日期、股票价格或者天气。

保持徽标的更新。一旦相关信息被阅读,就应该立即更新你应用的徽标。你不能让用户认为还有新的信息未读,紧发现他们已经看过了。请注意,将徽标数量降为0,会从通知中心移除所有相关的通知。

考虑提供一个细节视图。通知细节视图可以提供关于通知的更多信息,同时也也具备在不离开当前环境打开你的应用来执行快速的操作。这个视图应当包含有用信息,可被识别的,看起来像是你应用的自然扩展。它可以包含图片、视频和其他内容,可以在显示的时候动态更新。例如,一个拼车的应用可以在这个位置显示地图,展示一辆正在接近你当前位置的汽车。

提供直观、有益的操作。一个通知细节视图可以包含最多四个操作按钮。这些按钮可以在不需要打开你应用的前提下执行常见的,省时的任务。请使用简短标题名称来清楚的描述操作结果。通知细节视图还可以显示用来执行操作手机信息的屏幕键盘。例如,一个消息应用可以让用户直接从新信息通知中快速回复。

避免提供破坏性行为。在通知细节视图中提供破坏性行为的操作之前,请三思。如果你必须提供这样的操作,确保用户有足够的上下文环境来避免意外的后果。确定的破坏性行为可以使用红色来标记。

提供声音来补充你的通知。当用户没有盯住屏幕时,声音是一个很好的引起用户注意的方式。一个待办事宜列表的应用可能会播放一个提醒的剩余,例如:当执行一项重要任务的时间到了。你的应用可以使用自定义提示音或者内置的提示音。如果你使用自定义提示音,确保简短、独特和专业的制作。请参阅中的。请记住,用户可以选择性的关闭通知提示音。同样可以启用伴随提示音的震动,这种情况必须手动的启用,不能通过你应用自动启用。

《本地及远程通知编程指南》
《自定义提示音准备》