推送本地通知-创建本地通知 - (Obj-C)

  • 推送通知和NSNotification区别:
    NSNotification是抽象的,不可见的
    推送通知是可见的(能用肉眼看到)

  • iOS中提供了2种推送通知
    本地推送通知(Local Notification)
    远程推送通知(Remote Notification)

推送通知的呈现效果:

推送本地通知-创建本地通知 - (Obj-C)_第1张图片
通知_01.png

横幅方式:

推送本地通知-创建本地通知 - (Obj-C)_第2张图片
通知_02.png

提醒样式:

推送本地通知-创建本地通知 - (Obj-C)_第3张图片
通知_03.png

锁屏时也可以获取通知:

推送本地通知-创建本地通知 - (Obj-C)_第4张图片
通知_04.png
  • 推送通知有5种不同的呈现效果
    1.在屏幕顶部显示一块横幅(显示具体内容)
    2.在屏幕中间弹出一个UIAlertView(显示具体内容)
    3.在锁屏界面显示一块横幅(锁屏状态下,显示具体内容)
    4.更新app图标的数字(说明新内容的数量)
    5.播放音效(提醒作用)

本地推送通知:顾名思义,就是不需要联网就能发出的推送通知(不需要服务器的支持)
由应用本身发起,一旦满足触发条件就会推送通知

本地推送通知的使用场景
闹钟,常用来定时提醒用户完成一些任务,比如
清理垃圾、记账、买衣服、看电影、玩游戏

接下来演示本地推送通知的实现
简单的界面搭建:

推送本地通知-创建本地通知 - (Obj-C)_第5张图片
界面搭建.png

点击按钮的时候,创建一个本地通知,示例代码:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

// 创建本地通知
- (IBAction)StartLocalNoteButtonClick:(id)sender {
    
    // 创建本地通知
    UILocalNotification *localNotification = [[UILocalNotification alloc]init];
    
    // 设置属性
    // 1.触发时间
    localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:5];
    // 2.设置通知的显示内容
    localNotification.alertBody = @"收到一条新消息";
    
    // 预定通知(UIApplication 作为系统和应用的桥梁,一般负责应用和系统相关的工作)
    // iOS 8.0以后,在预定和展示通知之前必须要注册通知,请求授权
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    
}

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 注册通知,请求授权
    /*
         UIUserNotificationTypeNone  无任何效果
         UIUserNotificationTypeBadge 通知含有角标
         UIUserNotificationTypeSound 带声音
         UIUserNotificationTypeAlert 提示文字
     */
    UIUserNotificationSettings *notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert categories:nil];
    [[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
    
}
@end

从iOS 8.0开始,为了保护用户隐私,使用通知需要授权(代码注册注册通知),授权:

推送本地通知-创建本地通知 - (Obj-C)_第6张图片
第一次授权.png

这里我只添加了文字,如果还需要声音和角标提醒,可以都加上

UIUserNotificationSettings *notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];

接收通知之后在后台模式下才有视图显示,在前台状态可以接收数据,但是不会有视图显示,所以演示时点击按钮,将应用切换至后台,等待5s后弹出提醒,提醒样式可以通过系统设置:横幅或窗口.

设置提醒样式:

推送本地通知-创建本地通知 - (Obj-C)_第7张图片
提醒样式.png

设置为横幅样式,点击创建本地通知按钮后,将程序切换至后台,5s后的通知提醒效果:

推送本地通知-创建本地通知 - (Obj-C)_第8张图片
后台横幅.png

窗口样式:

![Uploading 后台窗口_179539.png . . .]

你可能感兴趣的:(推送本地通知-创建本地通知 - (Obj-C))