Пользователь приложения должен иметь возможность включать/отключать удаленные уведомления, нажав кнопку вкл./Выкл.Включение и отключение удаленных уведомлений
Приложение зарегистрировано для удаленных уведомлений в «didFinishLaunchingWithOptions». Когда пользователь нажимает на кнопку, чтобы отключить удаленные уведомления код
// Register for Push Notifications, if running iOS 8
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)])
{
UIUserNotificationType userNotificationTypes = UIUserNotificationTypeNone;
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil];
[application registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];
}
else
{
// Register for Push Notifications before iOS 8
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeNone];
}
Это работает. Удаленные уведомления отключены!
Но когда пользователь нажмет еще раз, чтобы включить удаленные уведомления
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)])
{
UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound);
UIUserNotificationSettings * settingsAvailable = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil];
[application registerUserNotificationSettings:settingsAvailable];
[application registerForRemoteNotifications];
}
else
{
// Register for Push Notifications before iOS 8
[application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
}
приложение не регистрирует ни для типа (оповещения, значок или звук)
Некоторые советы? Заранее спасибо.
Я пытался это сделать. каждый раз, когда кнопка включается или выключается, я сохраняю эту опцию в userDefault и пытаюсь позволить/или не получать push-уведомление в AppDelegate «didReceivePushNotifications», но я не знаю, почему удаленные уведомления по-прежнему получают его по телефону – Developer3000
Ни один из то, что вы делаете, имеет смысл. Когда ** didReceiveRemoteNotification ** называется уже слишком поздно - push уже отправлен, получен, и пользователь, вероятно, его видел. Как я уже сказал, вы должны сами отслеживать предпочтения пользователя и отправлять (или не отправлять) push-уведомление на основе этого предпочтения. – stromdotcom
, вероятно, вы правы и должны быть лучшим способом сделать это. Спасибо . – Developer3000