对于 PoC,我必须测试以下要求。客户端想要发送远程通知,其中包含通知中地理围栏的数据。我不是指“正常”通知,而是指“静默”通知。用户不会注意到他收到了通知。只有应用程序从该通知中接收数据。
到目前为止一切顺利:我已经完成了一个测试应用程序,它完全符合客户的要求,即
- 我有一个工作应用程序,它在应用程序启动期间设置了一些地理围栏。
- 这些栅栏完美运行,所有必需的后台权限都设置正确。
- 我可以接收(静默)远程通知并解析包含的地理围栏数据,并设置这些区域进行监控。
在 iOS 11 中进行了几次测试后,我遇到了以下情况:
- 当应用程序处于前台/活动状态时,在接收(静默)远程通知时,一切正常:一旦我收到远程通知,它就会被正确处理,并且地理围栏会正确触发它们的 didEnter/didExit 操作。
- 当我开始这个完全相同的测试时,但这次在后台接收(静默)远程通知时应用程序,地理围栏不起作用。从我的日志中看到,一切都以完全相同的方式处理,就像应用程序在活动状态下运行时一样。除了 didEnter/didExit 动作永远不会被触发......
我昨天搜索了很多,但我没有找到这种行为的解释。我的假设是,当应用程序处于后台状态时,在设置要监视的区域时,locationManager 的行为会有所不同。
所以我想知道是否有其他人试图归档一个类似的地理围栏场景,我能解释一下原因。
提前谢谢!