У меня возник вопрос, вот есть приложения которые присылают уведомления типа "Вы не заходили в приложение уже 2 дня" и тому подобное.
Эти приложения так же шлют нотификации через собственные сервера?
Нет возможности создавать локальные нотификации с таймером, что бы допустим через час после того как приложение закрылось, было показано уведомление?
Если нет, то получаеться мониторинг бездействия пользователя определяется так же по последнему конекту к серверу?
Ответ
Можете по последнему коннекту отсылать пуши, а можете запускать локальные нотификации. Например если пользователь свернул приложение, запускаем нотификацию,
func applicationDidEnterBackground(_ application: UIApplication) {
let content = UNMutableNotificationContent()
content.title = "Notification"
content.body = "Sample"
let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: 5.0, repeats: false) //покажет через 5 секунд
let request = UNNotificationRequest(identifier:requestIdentifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request){(error) in
if (error != nil){
print(error?.localizedDescription ?? "")
}
}
}
если пользователь открыл приложение - убиваем ее.
func applicationDidBecomeActive(_ application: UIApplication) {
UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers: [requestIdentifier])
}
Если не запускал определенное время - показывается.
Пример на GitHub
Комментариев нет:
Отправить комментарий