我正在开发一个应用程序,我希望有一个功能,当用户离开预定义区域时发送推送通知。为了跟踪离开的过程,我将使用CLCircularRegion和Parse进行通知。问题是 - 应用程序在处于后台状态时是否可以执行发送推送的方法?我知道有一个权限可用,它允许始终监视位置更新,我也知道委托,可以用于位置更新。
实际问题是当应用程序处于后台状态时它真的有用吗?本书 iOS 8 Swift Programming Cookbook 表示位置委托消息不能正常传递给应用程序,而是当应用程序再次成为前台应用程序时,它们会批量传递。否则,Apple文档说当位置发生变化时应用程序会变为唤醒状态。
比如说,用户在第二天之前和之后终止应用程序,他离开了CLCircularRegion中定义的区域。委托触发并启动发送推送的方法吗?
答案 0 :(得分:0)
即使应用程序在后台,区域监控也会触发更新。您的应用可以响应区域监控回调didEnterRegion:
,didExitRegion:
,然后根据需要触发所需的推送通知。
Per Apple:
在iOS中,系统会始终跟踪与您的应用相关联的区域,包括应用未运行的时间。如果在应用未运行时越过区域边界,则会将该应用重新启动到后台以处理该事件。同样,如果应用程序在事件发生时被暂停,它会被唤醒,并且会花费很短的时间(大约10秒)来处理事件。必要时,应用程序可以使用UIApplication类的
beginBackgroundTaskWithExpirationHandler:
方法请求更多后台执行时间。