//1.创建一个本地通知对象
UILocalNotification *localNote = [[UILocalNotification alloc]init];
//2.设置本地通知的相应属性
//通知时间
localNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:5];
//通知内容
localNote.alertBody = @" 吃了吗";
//锁屏时的动作标题
localNote.alertAction = @"昭君是小狗";
//设置点击通知时的启动图片
localNote.alertLaunchImage = @"{37E039CC-F171-70EC-1261-318DB195289E}.png";
//设置音效名
localNote.soundName = UILocalNotificationDefaultSoundName;
//设置app图标数字
localNote.applicationIconBadgeNumber = 4;
//设置通知的附加信息
localNote.userInfo = @{@"type":@"1"};
//3.调度通知
[[UIApplication sharedApplication]scheduleLocalNotification:localNote];
以上步骤写完之后并不能成功推送 还需要进入appdelegate里面进行权限申请
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
[self.window makeKeyAndVisible];
self.window.rootViewController = [[ViewController alloc]init];
//获取到授权内容
UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert categories:nil];
//使用application对象授权
[application registerUserNotificationSettings:setting];
如果关闭程序 点击通知消息进入程序的话 就需要在这里进行代码设置
//如果launchOptions是nil,就代表正常启动,如果不为空,就代表是点击通知启动的
if (launchOptions) {
//找到推送的通知
UILocalNotification *localNote = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey];
if ([localNote.userInfo[@"type"] isEqualToString:@"1"]) {
//判断如果和我传的值一样的话让它随便跳转一个界面
[self.window.rootViewController presentViewController:[[MyViewController alloc]init] animated:YES completion:nil];
}
}
return YES;
}
如果程序在后台运行 点击通知消息进入程序的话 在这里设置相应代码
//点击通知进入前台和在前台时调用
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
//判断什么情况下接收到的通知
if (application.applicationState ==UIApplicationStateInactive) {
//判断接收到的通知类型
if ([notification.userInfo[@"type"] isEqualToString:@"1"]) {
[self.window.rootViewController presentViewController:[[MyViewController alloc]init] animated:YES completion:nil];
}
}
NSLog(@"%@",notification.userInfo);
}