在多数移动应用中不论什么时候都仅仅能有一个应用程序处于活跃状态。假设其它应用此刻发生了一些用户感兴趣的那么通过通知机制就能够告诉用户此时发生的事情。
iOS中通知机制又叫消息机制,其包含两类:一类是本地通知;还有一类是推送通知,也叫远程通知。
两种通知在iOS中的表现一致,能够通过横幅或者弹出提醒两种形式告诉用户,而且点击通知能够会打开应用程序,可是实现原理却全然不同。今天就和大家一块去看一下怎样在iOS中实现这两种机制,而且在文章后面会补充通知中心的内容避免刚開始学习的人对两种概念的混淆。
通知
本地通知是由本地应用触发的。它是基于时间行为的一种通知形式,比如闹钟定时、待办事项提醒。又或者一个应用在一段时候后不使用一般会提示用户使用此应用等都是本地通知。
创建一个本地通知通常分为以下几个步骤:
创建UILocalNotification。
设置处理通知的时间fireDate。
配置通知的内容:通知主体、通知声音、图标数字等。
配置通知传递的自己定义数据參数userInfo(这一步可选)。
调用通知,能够使用scheduleLocalNotification:按计划调度一个通知,也能够使用presentLocalNotificationNow马上调用通知。
以下就以一个程序更新后用户长期没有使用的提醒为例对本地通知做一个简单的了解。
在这个过程中并没有牵扯太多的界面操作。全部的逻辑都在AppDelegate中:进入应用后假设没有注冊通知,须要首先注冊通知请求用户同意通知;一旦调用完注冊方法,不管用户是否选择同意通知此刻都会调用应用程序的
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
代理方法,在这种方法中依据用户的选择:假设是同意通知则会依照前面的步骤创建通知并在一定时间后运行