Вы не можете запускать фоновые задачи с мобильным сафари, поэтому для # 2 вы не можете делать настоящие push-уведомления или оповещения.Однако вы можете отправить пользователю SMS, если у вас есть номер телефона пользователя.Это может иметь гиперссылку на часть вашего веб-сайта (которая может содержать какую-то полезную нагрузку).Вы можете использовать такой сервис, как Twilio, чтобы помочь вам отправлять SMS-сообщения.Однако это стоит денег.APNS этого не делает.
Для сценария № 1, я предполагаю, что вы говорите о нативном приложении, использующем решение телефонной пропасти.В этом случае, когда приложение является фоновым, вы вообще не можете получить доступ к какому-либо интерфейсу пользователя, активировать приложение и показать UIAlert.Фактически, если приложение не зарегистрировано для обновлений местоположения или фоновой музыки, приложение фактически не будет отвечать через определенный промежуток времени (оно может только «завершить» определенные операции, которые оно начало ранее).Таким образом, решение websocket будет эффективным только в том случае, если у пользователя открыто приложение.
Вы можете зарегистрировать локальное уведомление, которое запускается в определенное время, в котором отображается предупреждение.Но это не выталкивается с сервера, поэтому, вероятно, это не то, что вам нужно.
APNS - ваше лучшее решение для сценария № 1.Его не так сложно реализовать, и он довольно недорогой.Проверьте городской дирижабль, если вы хотите избежать создания собственных серверных компонентов для него.