2015-01-20 3 views
0

내 앱이 돌아와서 재생하라는 메시지가 1 주일 후에 열리지 않으면 푸시 알림을 보내려는 경우이 로컬 푸시 알림을 보낼 수있는 권한을 사용자에게 부여해야합니까?로컬 푸시 알림 ios

+1

예, 사용자가 IOS 8이 아닌 경우 else 문을 추가하는 것이 맞을까요? – Paulw11

답변

1

iOS 8에서는 로컬 알림을 예약하기 위해 사용자에게 예약 권한을 요청해야합니다. 그것은 아이폰 OS 전에 8

한 가지 더 필요하지, 당신은 푸시 알림지역 알림의 차이를 알아야합니다. 문제를 설명 할 때 사람들을 혼란스럽게 할 것입니다. 푸시 알림은 APN 서버에서 전송됩니다. 그리고 로컬 알림은 응용 프로그램에서 예약됩니다.

0

이 경우 Local notification을 사용해야합니다. 사용자가 응용 프로그램을 열면 일주일 후 로컬 알림을 예약해야합니다. 알림을 예약 할 때마다 이전 알림이 모두 취소됩니다.

[[UIApplication sharedApplication] cancelAllLocalNotifications]; 

알림 사용을 예약하려면 :

UILocalNotification* n1 = [[UILocalNotification alloc] init]; 
    n1.fireDate = [NSDate dateWithTimeIntervalSinceNow: 60]; 
    n1.alertBody = @"one"; 
    UILocalNotification* n2 = [[UILocalNotification alloc] init]; 
    n2.fireDate = [NSDate dateWithTimeIntervalSinceNow: 90]; 
    n2.alertBody = @"two"; 
    [[UIApplication sharedApplication] scheduleLocalNotification: n1]; 
    [[UIApplication sharedApplication] scheduleLocalNotification: n2]; 
0

예는 아이폰 OS 8 만 현지 통지를 등록해야

모든 알림 사용을 취소합니다.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) { 
    [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]]; 
    } 
} 
+0

통지를 보낼 수있는 권한을 요청해야합니다. 예 : if ([application respondsToSelector : @selector (registerUserNotificationSettings :)] { [application registerUserNotificationSettings : [UIUserNotificationSettings settingsForTypes : UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories : nil]]; } else {[application registerUserNotificationSettings : [UIUserNotificationSettings settingsForTypes : UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories : nil]]; } – Xsv23

+0

@ Xsv23 예. 틀림 없습니다. iOS 7 이하에서는 직접 등록해야합니다. –