關於iOS8上本地通知接收不到的問題

本地推送線上的項目沒事,我這測試了6 plusxcode創建的項目正常。如果是新xcode創建的項目的ios8不行,需要加新方法

//註冊本地通知

    if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){

        [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];

    }

需要手動加上這句話 

if ([UIApplicationinstancesRespondToSelector:@selector(registerUserNotificationSettings:)]){

        [[UIApplicationsharedApplication]registerUserNotificationSettings:[UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSoundcategories:nil]];

    }

 ios 鬧鐘的總結-------也就是本地通知。

      //發送通知
      UILocalNotification *notification=[[UILocalNotification alloc] init];  
      if (notification!=nil) {
      NSDate *now=[NSDate new];
      notification.fireDate=[now dateByAddingTimeInterval:10];//10秒後通知
      notification.repeatInterval=0;//循環次數,kCFCalendarUnitWeekday一週一次
      notification.timeZone=[NSTimeZone defaultTimeZone];
      notification.applicationIconBadgeNumber=1; //應用的紅色數字
      notification.soundName= UILocalNotificationDefaultSoundName;//聲音,可以換成alarm.soundName = @"myMusic.caf"
      //去掉下面2行就不會彈出提示框
      notification.alertBody=@"通知內容";//提示信息 彈出提示框
      notification.alertAction = @"打開";  //提示框按鈕
      //notification.hasAction = NO; //是否顯示額外的按鈕,爲no時alertAction消失
      // NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"someValue" forKey:@"someKey"];
      //notification.userInfo = infoDict; //添加額外的信息
      [[UIApplication sharedApplication] scheduleLocalNotification:notification];     
      }
      [notification release];

      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   
      // Override point for customization after application launch.
      application.applicationIconBadgeNumber = 0;
      // Add the view controller's view to the window and display.
      [window addSubview:viewController.view];
      [window makeKeyAndVisible];
      return YES;
      }
      - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
      //點擊提示框的打開
      application.applicationIconBadgeNumber = 0;
      }
      - (void)applicationDidBecomeActive:(UIApplication *)application {
      //當程序還在後天運行
      application.applicationIconBadgeNumber = 0;
      }

      - (void)clock:(UIButton *)button
      {
      NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
      [formatter setDateFormat:(@"yyyy-MM-dd HH:mm:ss")];
      NSString *now = [formatter stringFromDate:[NSDate new]];
      NSString *hourstr = [NSString stringWithFormat:@"%d",hour];
      NSString *minutestr = [NSString stringWithFormat:@"%d",minute];
      if (hour <= 9) {
      hourstr = [NSString stringWithFormat:@"0%d",hour];
      }
      if (hour <= 9) {
      minutestr = [NSString stringWithFormat:@"0%d",minute];
      }
      NSString *fireTimeStr = [NSString stringWithFormat:@"%@%@:%@:00",[now substringToIndex:11],hourstr,minutestr];
      NSDate *fireTime = [formatter dateFromString:fireTimeStr];
      UILocalNotification *notification = [[UILocalNotification alloc] init];
      if (notification != nil) {
      notification.fireDate = fireTime;
      notification.timeZone = [NSTimeZone defaultTimeZone];
      notification.soundName= UILocalNotificationDefaultSoundName;//聲音,可以換成
      //        notification.soundName = @"beep-beep.caf";
      notification.alertLaunchImage = [NSString stringWithFormat:@"redgift.png"]; //鬧鐘的圖片。
      notification.applicationIconBadgeNumber = 4; //鬧鐘的icon 數量。
      notification.repeatInterval = kCFCalendarUnitMinute; //重複的方式。
      notification.alertBody = [NSString stringWithFormat:@"%@已到",fireTimeStr];
      [[UIApplication sharedApplication] scheduleLocalNotification:notification];
      }
      }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章