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
은 호출되지 않습니다. 나는 이것을 여러 시간 동안 디버깅했고 행운을 찾지 못했습니다.
무엇을 기대했는지, 알림이 꺼져 있으므로이 콜백을받지 못할 것입니다. 이것은 설계된대로 작동합니다. – Lance
알림을 끄는 것은 단순히 설정이므로 토큰을받을 수있을 것으로 기대됩니다. 처음 설치시 OS에서 프롬프트가 표시 될 때 사용자가 처음에 "허용하지 않음"을 선택하면 사용자가 설정을 사용 가능하게 할 때까지 토큰을 가져올 수 없습니다. 내가 틀렸다면 나를 바로 잡아주세요. 감사. @Lance – Steven
예, 푸시 알림 액세스를 요청할 때 사용자가 "허용하지 않음"을 선택하면 앱이 푸시 토큰을받지 않게됩니다. 그것이 작동해야하는 방법입니다. – Lance