2015-11-04 3 views
2

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

let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
UIApplication.sharedApplication().registerUserNotificationSettings(settings) 
UIApplication.sharedApplication().registerForRemoteNotifications() 

Я также хранить ответ в БД с маркером устройства.

Я также внедрил UISwitch на странице настроек для включения/выключения push-уведомлений, однако мне удалось включить/отключить это в столбце DB.

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

Есть ли способ в Swift 2 изменить уведомление push в настройках телефона из приложения вместо того, чтобы пользователь должен был войти в настройки, которые нужно изменить? Или это полностью избыточно, чтобы UISwitch позволял пользователю включать/выключать push-уведомления?

ответ

4

Невозможно изменить статус разрешения push-уведомлений из программы. Кроме того, приглашение запрашивать разрешение на push-уведомления не может быть показано снова и снова. Вы можете сослаться на это https://developer.apple.com/library/ios/technotes/tn2265/_index.html.

В первый раз, когда приложения с поддержкой push-push регистрируются для push-уведомлений, iOS запрашивает у пользователя, хотят ли они получать уведомления для этого приложения. Как только пользователь ответил на это предупреждение, он не будет представлен повторно, если устройство не будет восстановлено или приложение не будет удалено, по крайней мере, на один день.

Таким образом, использование UISwitch для переключения статуса разрешения не имеет никакого смысла, если вы не используете статус переключателя для включения/выключения удаленных уведомлений с вашего сервера.

+0

Спасибо. Возможно, я могу проверить, отключены ли уведомления при переключении переключателя, и предупредить пользователя, что им нужно включить их в настройках. – puks1978

Смежные вопросы