UILocalNotification
有些时候我们需要处理一些本地推送,小细节的处理.
if ([UIApplication sharedApplication].applicationState != UIApplicationStateActive) {
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.alertBody = @"您刚完成了一段行程,快去看看分数吧!";
localNotification.alertAction = @"您刚完成了一段行程,快去看看分数吧!";
localNotification.applicationIconBadgeNumber = 1;
localNotification.soundName = UILocalNotificationDefaultSoundName;
NSString * tripId = [NSString stringWithFormat:@"%ld",(long)((Trip *)extras).startTimestamp];
localNotification.userInfo = @{@"tripId":tripId};
[[UIApplication sharedApplication] presentLocalNotificationNow:localNotification];
NSLog(@"T_TRIP_FINISHED已经发送推送成功%@ --》userInfo%@",extras,localNotification.userInfo);
}
请不要忘了设置通知类型及声音数字提示,还有授权.还有不要忘了当点击定不推送为空的情况排除
UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:setting];
UILocalNotification* localNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (localNotification) {
[self checkNotification:localNotification.userInfo isLaunch:YES];
}
-(void)checkNotification:(NSDictionary *)userInfo isLaunch:(BOOL)isLaunch{
if (tripId && tripId.length > 0) {
if (isLaunch) {
}else{
}
当然也需要去改变红点数量的变化显示及隐藏 别忘了
- (void)applicationDidEnterBackground:(UIApplication *)application {
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
}