本地推送線上的項目沒事,我這測試了6 plus。舊xcode創建的項目正常。如果是新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];
}
}