本地通知·

  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
    {
    /

    本地通知的应用场景:
    1.闹铃类的应用
    2.简单地单机游戏,比如开心农场
    3.阅读或者小说类的应用
    */
    //在iOS8之后,推送接收不到消息,需要我们手动设置
    float systemVersion = [[UIDevice currentDevice].systemVersion floatValue];
    if (systemVersion >= 8.0)
    {
    //设置推送的类型
    UIUserNotificationType type = UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound;
    //将设置的类型添加到设置对象里面
    UIUserNotificationSettings * settings = [UIUserNotificationSettings settingsForTypes:type categories:nil];
    //将设置的内容添加到系统管理里面
    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
    }
    //创建一个本地通知任务
    [self createLocalNotification];
    //取消本地通知任务
    [self cancelLocalNotification];
    return YES;
    }

#pragma mark - 处理小红点的个数

//接收到本地通知任务之后所做的操作
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
     notification.applicationIconBadgeNumber = 0;
}
//应用将要进入前台的时候
- (void)applicationWillEnterForeground:(UIApplication *)application {
    application.applicationIconBadgeNumber = 0;
}

#pragma mark - 取消本地通知任务

-(void)cancelLocalNotification
{
    //方式一:直接取消全部的通知任务
    //[[UIApplication sharedApplication]cancelAllLocalNotifications];
    //方式二:取消指定条件下的通知任务
    //首先获取系统管理里面全部的通知任务
    NSArray * notifications = [[UIApplication sharedApplication]scheduledLocalNotifications];
    for (UILocalNotification * noti in notifications) 
    {
         //通过条件判断,取消指定条件下的通知任务
         if ([noti.alertBody isEqualToString:@""]) 
         {
              [[UIApplication sharedApplication]cancelLocalNotification:noti];
              //处理小红点的数目
              noti.applicationIconBadgeNumber = 0;
          }
     }
}

#pragma mark - 创建本地通知任务

-(void)createLocalNotification
{
    //创建对象
    UILocalNotification * localNotification = [[UILocalNotification alloc]init];
    //设置推送时间,从当前时间开始计算多长时间之后开始推送
    localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
    //设置推送重复的周期,相隔多长时间推送一次
    localNotification.repeatInterval = NSCalendarUnitHour;
    //设置推送的时区,使用默认的时区
    localNotification.timeZone = [NSTimeZone defaultTimeZone];
    //设置需要推送的内容
    localNotification.alertBody = @"亲~~~不要忘了吃药,千万不要放弃治疗";
    //设置推送消息时的音效
    localNotification.soundName =@"音效.caf";
    //设置接收到消息之后的小圆点数目
    localNotification.applicationIconBadgeNumber = 1;
    //将本地通知任务添加到系统管理里面
    [[UIApplication sharedApplication]scheduleLocalNotification:localNotification];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 许多集成的步骤个推官网都有了,这里只写关于推送的远程推送和本地通知的步骤和代码。APP在后台时:走苹果的APNS通...
    AllureJM阅读 2,765评论 1 9
  • 本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时、待办事项提醒,又或者一个应用在一段时候后...
    成语笔记阅读 280评论 0 0
  • 一、本地推送/本地通知 是什么? (名称概念)本地推送,其实也就是本地通知,它们指的是同一种概念,只是叫法不同,下...
    Jacob_LJ阅读 4,483评论 3 4
  • 本地通知: kvc(键值编码)优点:可以给类的任意实例变量赋值,即使实例变量是私有的 缺点:必须要知道实例变量名,...
    虞小虞阅读 329评论 0 1
  • 夜中雨不寐, 還思是與非。 點點滴滴碎, 零落儷人淚。 ——癸未戊戌日
    RHIGHT阅读 246评论 0 0