2015-01-01 2 views
0

푸시 알림이 포함 된 앱에서 기기 토큰을 받고 있는데 내 클라이언트의 기기가 기기 토큰을받지 못해 푸시 알림을받지 못했습니다. 푸시 알림을 위해 구문 분석을 사용하고 있습니다. 그 didFailToRegisterForRemoteNotificationsWithError가 호출되지 않는 것을 의미하므로Apple Push Notifications : 장치 토큰을 수신하지 못합니까?

-(void)application:(UIApplication *)application 
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)newDeviceToken { 
    // Store the deviceToken in the current installation and save it to Parse. 
    PFInstallation *currentInstallation = [PFInstallation currentInstallation]; 
    [currentInstallation setDeviceTokenFromData:newDeviceToken]; 
    PFACL *objectACL = [[PFACL alloc] init]; 
    [objectACL setPublicReadAccess:YES]; 
    [objectACL setPublicWriteAccess:YES]; 

    [currentInstallation saveInBackground]; 
} 

-(void) application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error 
{ 

    NSString *errorString = [NSString stringWithFormat:@"%@", error]; 
    UIAlertView *errorAlertView = [[UIAlertView alloc] initWithTitle:@"Error" message:errorString delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 

    [errorAlertView show]; 
} 
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings { 
    [application registerForRemoteNotifications]; 
} 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Override point for customization after application launch. 
    [Parse setApplicationId:PARSE_APPLICATION_ID 
        clientKey:PARSE_CUSTOMER_KEY]; 
    [PFFacebookUtils initializeFacebook]; 

    [self.window makeKeyAndVisible]; 

    // create the Login controller instance: 

    [application registerForRemoteNotificationTypes: 
    UIRemoteNotificationTypeBadge | 
    UIRemoteNotificationTypeAlert | 
    UIRemoteNotificationTypeSound]; 
} 

클라이언트는 APN과 등록의 UIAlert 나타내는 실패를 수신하지 않습니다 이것은 내가 내 AppDelegate에있는 것입니다. Apple 응용 프로그램 노트 TN2265의 지침에 따라 다시 설치하여 & 응용 프로그램을 제거하고 구문 분석 서버에서 모든 설치를 제거하려고했습니다. 응용 프로그램은 클라이언트가 알림 시작시 &에 푸시 알림 승인을 요청하지 않으면 알림 센터에도 나타나지 않습니다 (이는 didRegisterUserNotificationSettings:도 있기 때문에 당황한 것입니다). 하지만이 모든 것은 내 iPad, iPhone 5S, iPod 5, iPhone 4s에서 잘 작동합니다. 어떤 아이디어로 인해이 기기가 앱의 기기 변수 동작을 유발할 수 있습니까? 이것은 내가 보낸 sc 클라이언트입니다. notificationCenterScreenShot

+0

당신이 푸시 알림에 등록 얼마나 저를 보여줄 수 AppDelegate에 클래스에 코드 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 메소드 내

if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) { [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]]; [[UIApplication sharedApplication] registerForRemoteNotifications]; } else { [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)]; } 

을 다음? –

+0

didFinish 메소드도 역시 – NSNoob

답변

1

시도

+0

에 추가했는데, iOS 8 및 이전 버전과의 호환성을 가정 한 것입니까? – NSNoob

+1

@NSNoob 네,하지만 iOS 8에서는 registerUserNotificationSettings 메서드를 사용하여 알림 유형을 설정 한 다음 registerForRemoteNotifications 메소드를 호출하여 등록해야합니다. –

+0

그렇습니다. iOS 8이 설치된 기기에서 앱을 테스트하고있을 가능성이 있습니다. 답변을 기다려야 할 것입니다. 해결책이 맞으면 정답으로 표시합니다. 감사합니다. – NSNoob

관련 문제