iOS-本地通知

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

实现如下效果:

这里写图片描述

这里写图片描述
本地通知实现步骤:
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];
    }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值