Настройка фонового уведомления об обновлении ios (тихое уведомление) без обратного вызова для получения токена устройства

Итак, в моем приложении настроены push-уведомления, и они отлично работают. Недавно я только что узнал о тихих уведомлениях и хотел реализовать их на случай, если пользователь откажется от push-уведомлений. Я просмотрел все источники, которые смог найти, но не могу получить токен устройства. Я не уверен, что я что-то упускаю.

При тестировании я отклоню оповещение о push-уведомлениях после вызова этого метода:

- (void)registerForRemoteNotifications {
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
[center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
    if(!error){
            dispatch_async(dispatch_get_main_queue(), ^{
                [[UIApplication sharedApplication] registerForRemoteNotifications];
            });
    }
}];

}

в отличие от того, когда пользователь принимает push-уведомления:

didRegisterForRemoteNotificationsWithDeviceToken

никогда не вызывается, поэтому я не получаю текущий токен устройства и не могу обновить свой сервер.

Я добавил фоновые режимы -> удаленные уведомления, а также добавил ключ/значение в свой plist.

Я что-то упускаю? Заранее спасибо за помощь


person tomrondo    schedule 14.02.2018    source источник
comment
Попробуйте реализовать didFailToRegisterForRemoteNotificationsWithError и посмотрите, какую ошибку вы там получите.   -  person algrid    schedule 15.02.2018
comment
к сожалению, это тоже не вызывается   -  person tomrondo    schedule 15.02.2018


Ответы (1)


Не знаю почему, но в итоге мне пришлось также проверить «фоновую выборку» в фоновых режимах. Я нигде больше не упоминал об этом, но заметил, что фоновое обновление не отображается в настройках моего приложения. Как только я это проверил, он работает нормально.

person tomrondo    schedule 15.02.2018