ios本地通知

首先在注册通知

 if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){
        
        [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
        
    }

再需要使用通知的地方创建通知

-(void)createLocalNotifaction{
    //设置20秒之后
    
    NSDate *date = [NSDate dateWithTimeIntervalSinceNow:0];
    
    /*
     
     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
     
     [formatter setDateFormat:@"HH:mm:ss"];
     
     NSDate *now = [formatter dateFromString:@"15:00:00"];//触发通知的时间
     
     */
    UILocalNotification *noti = [[UILocalNotification alloc] init];
    
    if (noti) {
        
        //设置推送时间
        
        noti.fireDate = date;//=now
        
        //设置时区
        
        noti.timeZone = [NSTimeZone defaultTimeZone];
        
        //设置重复间隔
        
       // noti.repeatInterval = NSCalendarUnitMinute;
        
        //推送声音
        
        noti.soundName = @"push01.caf";
        
        //内容
        
        noti.alertBody = @"推送内容";
        
        //显示在icon上的红色圈中的数子
        
        noti.applicationIconBadgeNumber = 1;
        
        //设置userinfo 方便在之后需要撤销的时候使用
        
        NSDictionary *infoDic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"];
        
        noti.userInfo = infoDic;
        
        //添加推送到uiapplication        
        
        UIApplication *app = [UIApplication sharedApplication];
        
        [app scheduleLocalNotification:noti];  
        
    }
}

关闭所有通知

-(void)cancelNotify{
    
    //删除全部的通知
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
    
}

关闭指定通知

  
            for (UILocalNotification *noti in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
                
                if([noti.userInfo[@"key"] isEqualToString:@"name"]){
                    
                    [[UIApplication sharedApplication] cancelLocalNotification:noti];
                }
            }

倒计时结束播放音乐

-(void)cutDownCount:(NSTimer *)theTimer{
    
    NSString *strSecond;
    NSString *strMinute;
    if(senconds < 10){
        
        strSecond = [NSString stringWithFormat:@"0%d",(int)senconds];
    }else{
        
        strSecond = [NSString stringWithFormat:@"%d",(int)senconds];
    }
    if(projectTime < 10){
        
        strMinute = [NSString stringWithFormat:@"0%d",(int)projectTime];
    }else{
        
        strMinute = [NSString stringWithFormat:@"%d",(int)projectTime];
    }
    
    NSString *buttonTitle = [NSString stringWithFormat:@"%@:%@",strMinute,strSecond];
    coutTimeLabel.text = buttonTitle;
    if(senconds == 0){
        
        if(projectTime == 0 && senconds == 0){
            
            //计时器结束
            [theTimer invalidate];
            [self showAlertView];
            
            for (UILocalNotification *noti in [[UIApplication sharedApplication] scheduledLocalNotifications]) {
                
                if([noti.userInfo[@"key"] isEqualToString:@"name"]){
                    
                    [[UIApplication sharedApplication] cancelLocalNotification:noti];
                }
            }
//            movePlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"夜空中最亮的星" ofType:@"mp3"]] error:nil];
//            
            NSString *tmp=[[NSBundle mainBundle].resourcePath stringByAppendingPathComponent:@"夜空中最亮的星.mp3"];
            NSLog(@"%@",tmp);
            NSURL *moveMP3=[NSURL fileURLWithPath:[[NSBundle mainBundle].resourcePath stringByAppendingPathComponent:@"夜空中最亮的星.mp3"]];
            NSError *err=nil;
            movePlayer=[[AVAudioPlayer alloc] initWithContentsOfURL:moveMP3 error:&err];
            movePlayer.volume=1.0;
            [movePlayer prepareToPlay];
            if (err!=nil) {
                NSLog(@"move player init error:%@",err);
            }else {
                [movePlayer play];
            }
            projectTime --;
            senconds = 59;
        }
    }
    senconds--;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值