iOS-本地通知

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

实现如下效果:

Simulator Screen Shot 2016年5月26日 上午11.21.55.png
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];
    }

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、苹果中的几种通知 1、广播通知(NSNotificationCenter) 1)实现一个对象对多个对象的通信 ...
    空白Null阅读 1,235评论 0 1
  • iOS 本地通知和远程推送 推送通知的应用,可以推送最新的消息给用户,获得更多的关注。推送分为本地推送和远程推送两...
    李小六_阅读 1,301评论 0 6
  • 本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一段时候后...
    babybus_break阅读 1,541评论 0 3
  • //联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄 /**注意:本地通知 直接拷贝到AppDelega...
    石虎132阅读 402评论 6 14
  • 去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去
    JL93阅读 139评论 0 0