알림의 핵심 데이터를 구현해야하지만 애플리케이션이 활성 상태 일 때만 발생할 수 있습니다.
1 - 새로운 알림이 도착할 때마다 새로운 신원을 만듭니다. 2 회 저장하십시오.
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSDictionary *Notification = userInfo;
NSString *title = [(NSDictionary*)[(NSDictionary*)[Notification valueForKey:@"aps"] valueForKey:@"alert"] valueForKey:@"title"];
NSString *body = [(NSDictionary*)[(NSDictionary*)[Notification valueForKey:@"aps"] valueForKey:@"alert"] valueForKey:@"body"];
XXNotification *objNotification = [XXNotification create];
objNotification.title = title;
objNotification.detail = body;
[XXNotification save:nil];
NSArray *arrNotification =[XXNotification allUnRead:nil];
[UtilityFunctions setApplicationBadgeNumber:[arrNotification count]];//Utility functions is my class for common functions.
if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive)
{
[UtilityFunctions showAlertView:title message:body delegate:self cancelButtonTitle:@"Ok" otherButtonTitle:@"Cancel" withTag:99 withAccessibilityHint:[NSString stringWithFormat:@"%@:|:%@", title,body]];
}
else if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateInactive || [[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground)
{
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.userInfo = userInfo;
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.alertBody = body;
localNotification.fireDate = [NSDate date];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
if (![IsLocationSaved isEqualToString:@"NO"])
{
[[NSNotificationCenter defaultCenter]postNotificationName:kNotificationForShowingNotification object: nil userInfo:nil];
}
}
}
UIAlertView를 표시 할 때 클릭 이벤트에서 DB에서 해당 알림을 삭제하거나 isRead로 부울을 만들고 YES로 만듭니다.
On 알림 목록 DB에서 알림 또는 isRead가 NO 인 알림 만 쿼리합니다.
내 응용 프로그램에서 사용한 방법입니다.
thx for replaying .... 애플리케이션이 비활성 상태 또는 백그라운드 상태에있을 때 IOS에 의한 알림 센터에 알림이 기본으로 표시되므로 애플리케이션이 활성 상태 일 때와 동일한 방법으로 설정할 수 있습니까 ?? –
예! ActiveState의 didReceiveRemoteNotification에서 UILocalNotification을 확인합니다. – Xeieshan
thx 잘 작동하고 있습니다. +1 –