美文网首页iOS经验总结
iOS 本地推送闹钟功能实现

iOS 本地推送闹钟功能实现

作者: 大宝来巡山 | 来源:发表于2019-12-02 15:12 被阅读0次

在AppDelegate中导入

#import <UserNotifications/UserNotifications.h>

//注册本地通知
-(void)registerLocalNotification:(NSDictionary *)launchOptions application:(UIApplication *)application {
    //注册通知
    if (@available(iOS 8, *)) {
        if (UIDevice.currentDevice.systemVersion.floatValue >=10.0) {
              if (@available(iOS 10, *)) {
                      UNUserNotificationCenter * center = [UNUserNotificationCenter currentNotificationCenter];
                       //请求获取通知权限(角标,声音,弹框)
                       [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge |
                                                                UNAuthorizationOptionSound |
                                                                UNAuthorizationOptionAlert)
                                             completionHandler:^(BOOL granted, NSError * _Nullable error) {
                           if (granted) {
                               //获取用户是否同意开启通知
                               DDLog(@"开启通知成功!");
                           }
                       }];
              }
        }else{
              // *注册本地通知, ios8之后必须要注册*
              if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){
                  [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
              }
        }
    }
}

//进入前台移除通知角标
- (void)applicationWillEnterForeground:(UIApplication *)application {
    [application setApplicationIconBadgeNumber:0]; //清除角标
    [[UIApplication sharedApplication] cancelAllLocalNotifications];//清除APP所有通知消息
}

//添加通知移除通知参考demo
demo地址:https://github.com/mrZombie2016/ZBLocalNotification

创建时间为date的每天重复提醒例子:
导入

#import "ZBLocalNotification.h"

#pragma mark  - 添加删除通知
-(void)addLocalNotification {
         // 设置一个每天都提醒的推送,传入的时间设置为:
           NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
           [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
           NSDate * date = [formatter dateFromString:@"2019-12-02 08:00:00"];
            [ZBLocalNotification createLocalNotificationWithAttribute:
                                            @{ZBNotificationUserInfoName:@"notificationNameMorning",
                                              ZBNotificationSoundName:ZBNotificationSoundAlarm,
                                              ZBNotificationAlertBody:@"妈妈再也不用担心扔垃圾啦!",
                                              ZBNotificationAlertTitle:@"扔垃圾啦!扔垃圾啦!扔垃圾啦!重要的事情说三遍!",
                                              ZBNotificationFireDate:date,
                                              ZBNotificationPriority:@(0),
                                              ZBNotificationRepeat:@(ZBLocalNotificationRepeatEveryDay)}];
       date = [formatter dateFromString:@"2019-12-02 18:00:00"];
        [ZBLocalNotification createLocalNotificationWithAttribute:
                                            @{ZBNotificationUserInfoName:@"notificationNameNight",
                                              ZBNotificationSoundName:ZBNotificationSoundAlarm,
                                              ZBNotificationAlertBody:@"妈妈再也不用担心扔垃圾啦!",
                                              ZBNotificationAlertTitle:@"扔垃圾啦!扔垃圾啦!扔垃圾啦!重要的事情说三遍!",
                                              ZBNotificationFireDate:date,
                                              ZBNotificationPriority:@(0),
                                              ZBNotificationRepeat:@(ZBLocalNotificationRepeatEveryDay)}];
}

   //设置取消本地推送
-(void)cancelLocalNotification {
    [ZBLocalNotification cancelLocalNotificationWithName:@"notificationNameMorning"];
    [ZBLocalNotification cancelLocalNotificationWithName:@"notificationNameNight"];
}

参考链接:https://blog.csdn.net/weixin_42857581/article/details/85399721

相关文章

  • 本地推送闹钟功能实现

    本地推送闹钟功能实现 在ios10下使用UserNotifications用本地推送实现闹钟功能,只是实现了简单的...

  • iOS 本地推送闹钟功能实现

    在AppDelegate中导入 import

  • Unity在iOS的本地推送功能

    Babybus-u3d技术交流-Unity在iOS的本地推送功能 Unity内部封装了在iOS下的本地推送功能,可...

  • 转的推送功能

    iOS的推送功能包括:远程推送以及本地推送,从iOS4到目前的iOS10,推送功能经历了多个版本的修改。现在做一个...

  • iOS本地通知

    众所周知,iOS中的通知推送分为:本地和远程两种。本地推送主要用于日历闹钟等提醒类应用中,APNS远程推送以后专门...

  • iOS 实现闹钟功能

    今天想到以前做的一个项目, 有一个闹钟功能,但是当时没写,今天尝试写了下,有点问题,先拿出来,近期再继续修改。De...

  • iOS8-推送(本地和远程)的简单使用

    参考文章:本地推送:一、iOS推送之本地推送(iOS Notification Of Local Notifica...

  • IOS实现本地推送

    本地推送(UILocalNotification)和远程推送其目的都是要提醒用户去做某件事情,其本质区别有两点:(...

  • IOS 处理本地推送,设置一个闹钟功能

    最近有一个需求,需要做一个闹钟提示的功能,也就是点击按钮,设置一段时间后可以铃声提示用户时间到了。 1.刚开始是用...

  • 本地通知/推送

    ios 交流群:264706196 本地推送 本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟...

网友评论

    本文标题:iOS 本地推送闹钟功能实现

    本文链接:https://www.haomeiwen.com/subject/axcfgctx.html