1.在用户第一次进入进入程序时,需要对app打开推送
1 if([[UIApplication sharedApplication]currentUserNotificationSettings].types == UIUserNotificationTypeNone) 2 { 3 [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil]]; 4 }
** 在IOS8之后要添加以下代码,防止推送可能不成功
1 #pragma mark - 调用用户注册通知方法之后执行(即调用registerUserNotificationSettings: 方法之后执行) 2 -(void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings{ 3 if (notificationSettings.types!=UIUserNotificationTypeNone) { 4 [self addLocalNotification]; 5 } 6 }
2.添加本地推送
1 // 创建本地推送 2 UILocalNotification *notification = [[UILocalNotification alloc] init]; 3 // 当前app添加推送 4 [[UIApplication sharedApplication] scheduleLocalNotification:notification];
3.设置推送的内容,需要在app添加推送之前设置
1 notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:0]; // 通知触发事件的时间,一般为0,即立即发送通知 2 notification.alertBody = @"推送测试"; 3 notification.alertAction=@"打开应用"; //待机界面的滑动动作提示 4 5 // notification.repeatInterval = 2; // 重复次数 6 // notification.repeatCalendar=[NSCalendar currentCalendar];//当前日历,使用前最好设置时区等信息以便能够自动同步时间 7 // notification.applicationIconBadgeNumber=1;//应用程序图标右上角显示的消息数 8 // [email protected]"Default";//通过点击通知打开应用时的启动图片,这里使用程序启动图片 9 // notification.soundName=UILocalNotificationDefaultSoundName;//收到通知时播放的声音,默认消息声音 10 // [email protected]"msg.caf";//通知声音(需要真机才能听到声音) 11 12 //设置用户信息(额外信息,可以不添加) 13 [email protected]{@"id":@1,@"user":@"Kenshin Cui"};//绑定到通知上的其他附加信息
1 //设置启动打开的启动图片 2 notification.alertLaunchImage = nil; 3 //设置推送的间隔 4 notification.repeatInterval = kCFCalendarUnitEra; // 一个世纪
4.移除本地通知,在不需要此通知时记得移除
1 [[UIApplication sharedApplication] cancelAllLocalNotifications];
时间: 2024-10-03 16:31:20