iOS - в настройках устройства, если я изменяю время, оно должно получать уведомления даже в фоне приложения, состояние убито - PullRequest
2 голосов
/ 29 апреля 2019

Чтобы получить уведомление об изменении времени настроек устройства, я обнаружил, что мы должны использовать UIApplication.significantTimeChangeNotification уведомление и func applicationSignificantTimeChange(_ application: UIApplication) метод делегата.

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

Ответы [ 2 ]

2 голосов
/ 29 апреля 2019

Из Apple Document на applicationSignificantTimeChange

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

Таким образом, это ясно говорит о том, что это будет работать только тогда, когда приложение находится на переднем плане.Он даже не ставится в очередь, когда приложение не запущено.

Для отображения любых локальных уведомлений, когда приложение не запущено, оно должно быть запланировано в прошлом, чтобы запускать его в будущем.И приложение не может знать о событии изменения времени, когда оно не запущено.Похоже, вы не сможете достичь того, о чем просили.

1 голос
/ 29 апреля 2019

Я не верю, что это так. iOS не может доставлять уведомления приложению, которое не запущено, и они никуда не попадают в очередь.

Однако одним из возможных путей решения этой проблемы может быть получение текущего значения UTC из надежного онлайнового источника и сравнение его с тем, что устройство считает UTC, и сохранение этого смещения. После перезапуска приложения рассчитайте это смещение еще раз и, если оно значительно отличается от того, которое вы сохранили ранее, выполните действие, которое вы предпримите в ответ на уведомление о значительном изменении времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...