iOS的本地推送删除不了解决方法

最近在研究苹果推送,当测试本地推送的时候,发现一个问题,就是一旦你添加了一个本地推动的通知,当你修改代码,删除应用,当你再次运行app,它还是会在横幅上面弹出推送,尼玛怎么搞都删除不了,近乎崩溃了,开始以为是ios7的Bug,苹果爹自ios7之后各种bug曾出不穷,不过最后冷静思考了一下,有木有可能App本地的推送是设置系统里面,所以你在app删除本地推送的代码都没办法取消推送,于是终于给我找到了一个 cancelAllLocalNotifications方法,尼玛,蛋疼的本地推送终于不见了...狗皮膏药般的恶魔终于不见了.

这个是产生本地推送的一个本地通知,一旦你运行它,那么恭喜,你删除app,修改代码,再安装,横幅就一直尼玛的弹呀弹...                      

     UILocalNotification *notification = [[UILocalNotification alloc] init];
    
    //设置10秒之后
    
    NSDate *pushDate = [NSDate dateWithTimeIntervalSinceNow:10];
    
    if (notification != nil) {
        
        // 设置推送时间
        
        notification.fireDate = pushDate;
        
        // 设置时区
        
        notification.timeZone = [NSTimeZone defaultTimeZone];
        
        // 设置重复间隔
        
        notification.repeatInterval = kCFCalendarUnitDay;
        
        // 推送声音
        
        notification.soundName = UILocalNotificationDefaultSoundName;
        
        // 推送内容
        
        notification.alertBody = @"推送内容";
        
        //显示在icon上的红色圈中的数子
        
        notification.applicationIconBadgeNumber = 1;
        
        //设置userinfo 方便在之后需要撤销的时候使用
        
        NSDictionary *info = [NSDictionary dictionaryWithObject:@"name"forKey:@"key"];
        
        notification.userInfo = info;  
        
        //添加推送到UIApplication       
        
        UIApplication *app = [UIApplication sharedApplication];  
        
        [app scheduleLocalNotification:notification];

怎么才能取消这种流氓行为呢?只需要3行代码,世界瞬间清净了...顺带删除掉那个1的小红点

UIApplication *app = [UIApplication sharedApplication];
app.applicationIconBadgeNumber = 0;
[app cancelAllLocalNotifications];



 

 

posted @ 2015-02-06 14:07  南望青天  阅读(2514)  评论(0编辑  收藏  举报