iOS-本地通知

在iOS中,本地通知非常适用于基于时间的行为.例如,有一个需求是让用户专注做某件事情一段时间. 时间到了后给个通知告知.实现这样一个功能可以使用本地通知

实现如下效果:

iOS-本地通知_第1张图片
Simulator Screen Shot 2016年5月26日 上午11.21.55.png
iOS-本地通知_第2张图片
Simulator Screen Shot 2016年5月26日 上午11.17.48.png

本地通知实现步骤:
1.创建本地通知对象 ( UILocalNotification )
2.设置通知的属性
3.让应用程序调用通知,使用UIApplication对象调用scheduleLocalNotification:方法
4.在iOS8.0之后,在调度通知之前需要使用 UIApplication的对象方法registerUserNotificationSettings:来请求用户授权

代码实现
定义本地通知对象属性

/** 创建本地通知对象*/
@property (nonatomic,strong) UILocalNotification *lNotification;

懒加载

//懒加载
- (UILocalNotification *)lNotification{
    
    if (!_lNotification) {
        
        _lNotification = [[UILocalNotification alloc] init];
    }
    return _lNotification;
}

设置通知的属性

 /** 设置通知的内容*/
    self.lNotification.alertBody = @"时间到了";
    
    /** 设置通知触发开始的时间*/
    self.lNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:3];
    /**  设置时区*/
    self.lNotification.timeZone = [NSTimeZone defaultTimeZone];
    
    /** 设置应用图标右上角的数字*/
    self.lNotification.applicationIconBadgeNumber = 1;
    
    /** 设置通知的音效(只有真机有效)*/
    self.lNotification.soundName = UILocalNotificationDefaultSoundName;

让应用程序调用通知

/** 让应用程序调用通知*/
    [[UIApplication sharedApplication] scheduleLocalNotification:self.lNotification];

更新显示徽章数方法

 /** 更新显示徽章数*/
    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;

在iOS8.0之后,在调度通知之前需要使用 UIApplication的对象方法registerUserNotificationSettings:来请求用户授权,该方法需要在**application: didFinishLaunchingWithOptions: **中实现

/**
     *  在iOS8.0之后,在调度通知之前需要使用 UIApplication的对象方法registerUserNotificationSettings:来请求用户授权
     
        UIUserNotificationType:
     
        UIUserNotificationTypeBadge       接收到通知可更改程序的应用图标
        UIUserNotificationTypeSound       接收到通知可播放声音
        UIUserNotificationTypeAlert       接收到通知提示内容
     */
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge |UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];
        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
    }

到此,可以实现本地通知功能.

你可能感兴趣的:(iOS-本地通知)