0

IOS 푸시 알림을 개발 중이며 기기 토큰을 가져 오려고합니다. 운영 체제 알림 설정이 켜지면 장치 토큰을 가져올 수 있습니다. 이 기능을 끄면 내 didRegisterForRemoteNotificationsWithDeviceToken이 더 이상 호출되지 않으므로 장치 토큰을 얻을 수 없습니다. 여기 알림 설정 해제시 IOS 8 장치 토큰이 반환되지 않습니다.

내 코드

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { #ifdef __IPHONE_8_0 //Right, that is the point UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge |UIUserNotificationTypeSound |UIUserNotificationTypeAlert) categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; #else //register to receive notifications UIRemoteNotificationType myTypes = UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound; [[UIApplication sharedApplication] registerForRemoteNotificationTypes:myTypes]; #endif return YES; }

이며, 나 또한

- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings

그러나

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void(^)())completionHandler

을, OS 알림 설정을 해제하는 경우, 추가 할

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken

은 호출되지 않습니다. 나는 이것을 여러 시간 동안 디버깅했고 행운을 찾지 못했습니다.

+0

무엇을 기대했는지, 알림이 꺼져 있으므로이 콜백을받지 못할 것입니다. 이것은 설계된대로 작동합니다. – Lance

+0

알림을 끄는 것은 단순히 설정이므로 토큰을받을 수있을 것으로 기대됩니다. 처음 설치시 OS에서 프롬프트가 표시 될 때 사용자가 처음에 "허용하지 않음"을 선택하면 사용자가 설정을 사용 가능하게 할 때까지 토큰을 가져올 수 없습니다. 내가 틀렸다면 나를 바로 잡아주세요. 감사. @Lance – Steven

+0

예, 푸시 알림 액세스를 요청할 때 사용자가 "허용하지 않음"을 선택하면 앱이 푸시 토큰을받지 않게됩니다. 그것이 작동해야하는 방법입니다. – Lance

답변

0

동일한 문제가 발생했습니다.

프로젝트의 기능 섹션에서 "원격 알림"을 ​​활성화하여 해결할 수 있습니다 (아래 스크린 샷 참조).

Background mode

이 문제에 대한 나의 의견 :

사용자가 명시 적으로 응용 프로그램에서 알림을 금지하고 응용 프로그램이 는 "원격 알림을"꺼져있는 경우, 당신은 제공 할 수있는 방법이 없습니다 사용자에게 알림. 따라서 애플리케이션에 토큰을 반환 할 필요가 없습니다. 사용자가있는 경우

알림를 해제하지만 활성화 "원격 통지", 당신은 여전히 ​​침묵 알림을 보낼 수있는 기회를 갖게 및 iOS 당신을 위해 토큰을 제공하는 것을 의미한다.

관련 문제