只为此心无垠

A blog for Jekyll

凤凰花开开两季,之余青春止于青春


Download the theme

Local and Remote Notifications Overview

本地通知和远程通知,可以在当新事件和事务发生时通知用户,甚至当你的应用程序不是在前台运行。例如,社交应用可以通知用户有一个新消息,日历应用可会提醒用户即将到来的约会。本地和远程的通知之间的区别是直接的:

  • 随着本地通知,您的应用程序在本地配置的通知的详细信息,并将这些信息传到系统中,然后当你的应用程序不在前台时发送本地通知。
  • 随着远程通知,您使用公司的一台服务器通过苹果推送通知服务(简称APNs)将数据推送到用户设备。iOS上,tvOS,watchOS和MacOS支持远程通知。

本地和远程通知,要求您将添加代码,来支持通知的调度和处理。对于远程通知,还必须提供服务器环境,能够接收来自用户设备的数据和发送通知相关的数据到APNs,这是苹果提供的服务(处理远程通知到用户设备的传输)。

用户通知和用户通知UI框架

iOS10,watchOS 3和tvOS 10开始,用户通知框架提供了便利的方式来调度和处理本地通知。除了管理本地通知,该框架还支持远程通知的处理,虽然远程通知的配置仍然需要一些特定平台的API。因为它是一个独立的框架,可以在创建的应用程序或所创建的extensions使用,如WatchKit extension。

注意

在MacOS,远程通知的配置和处理,需要使用的是AppKit框架中特定于平台的方法。

用户通知架构还支持创建通知服务应用程序的扩展,extensions在通知发出之前可以让您修改远程通知的内容。如果你的应用程序加入了一个通知服务的extensions,系统会将通知传送给扩展,然后再将其传递给用户。您可以使用这种extension,来加密终端到终端的通知,发送之前修改通知内容,下载图片或多媒体。

User Notifications UI frameworkUser Notification framework的伴侣,可以让你自定义系统的通知界面的外观。您可以使用User Notifications UI framework来定义一个通知内容的extension,其任务是提供了自定义view controller,来显示在通知界面的自定义内容。系统会显示您的自定义view controller而不是默认的系统界面。您可以使用这种extension,纳入媒体或动态内容到您的通知接口。

有关User Notification framework的更多信息,请参阅 User Notifications Framework Reference。有关类的信息,你用它来创建一个通知内容的应用程序扩展,请参阅User Notifications UI Framework Reference

何时使用本地和远程通知

因为在iOS上,tvOS和watchOS应用程序并不总是在运行,本地通知提供一种方式来提醒用户,当您的应用程序有新的信息展示。例如,在收到了一些有趣的信息时,在后台从服务器提取数据的应用程序,可以安排本地通知。本地通知也非常适合一些应用程序,如日历和提醒APP需要在特定的时间或在达到特定的地理位置,以提醒用户。

当部分或全部应用程序的数据是由公司的服务器管理,远程通知是需要的。随着远程通知,你可以决定何时要推送通知到用户的设备。例如,一个社交应用程序将使用远程通知,通知用户新邮件到达了。因为他们是从你的服务器发送,您可以随时发送远程通知,包括当应用程序不是在用户的设备上运,。

本地和远程通知对用户是一样的

在给定的设备上给用户呈现时,本地和远程通知没有区别。这两种类型的通知具有相同的默认外观,这是由系统提供的。您可以自定义外观,但主要是选择你要如何通知用户。具体而言,您选择发送通知的下列选项之一:

  • 屏幕上的弹窗或横幅
  • 图标上的badge
  • 声音

在配置本地和远程通知,选择交互类型,最适合您正在提供的信息类型。例如,一个待办事项应用程序可能有一个事项列表,每一个都有项目必须完成时间和优先级列表。对于高优先级项目,你需要显示警报,在完成时间的推移,让用户知道自己应该在马上完成项目。对于低优先级的项目,您可能适用badge或播放声音,以提供一个更微妙的提醒来完成该项目。

提醒让你直接显示信息给用户,但badge和声音的含义取决于您的应用程序。您可以使用不同的声音进行沟通特定类型的事件,如消息的到达或任务的完成。badge总是含有一个数值,并通常用于指示等待用户的关注的项目数。

图1-1 应用程序图标带有badge(IOS)

图片:../Art/badged_app.jpg

始终谨慎使用本地和远程通知,以免打扰用户。该系统允许用户针对每个APP,启用和禁用alert,声音和badge。虽然通知可能仍然被传递到您的应用程序,系统会通知用户仅当前启动的选项。如果用户完全禁用通知,APNs不传输通知到用户的设备,本地通知的调度会失败。

最近的文章

Managing Your App’s Notification Support

管理你的应用程序的通知支持应用必须在启动时,被配置为支持本地和远程通知。具体而言,您必须事先配置你的应用程序,如果这样做以下任何一项: 显示alert,badge和声音。 显示自定义操作按钮。通常情况下,您的应用程序完成启动前完成所有的配置。在iOS和tvOS,这意味着配置您的通知支持,在application:didFinishLaunchingWithOptions:委托之前。在watchOS,最迟配置支持比applicationDidFinishLaunching委托。您可以在以...…

Notification继续阅读
更早的文章

Understand Cache Accesss

了解高速缓存访问URL Loading system给请求和响应提供一个复合的磁盘和内存缓存方式。此缓存允许应用程序减少对网络连接的依赖,并提高其性能。请求使用缓存一个NSURLRequest实例可以说明本地缓存是如何使用的,通过将缓存策略设置为NSURLRequestCachePolicy枚举中的一个值:NSURLRequestUseProtocolCachePolicy,NSURLRequestReloadIgnoringCacheData,NSURLRequestReturnCach...…

NSURLSession继续阅读