收到推送通知时在后台执行代码 iOS15

Execute code in the background when push notification is received iOS15

我正在构建一个 运行 在后台运行的应用程序,并在设备上跟踪重要的位置变化。

是否可以向设备发送推送通知并让设备将当前精确位置发送到服务器而无需用户打开应用程序以便它在前台运行?

previous SO answer 似乎不再适用于 iOS15。 application:didReceiveRemoteNotification:fetchCompletionHandler 在我将应用置于前台之前似乎不会被调用。有没有新的方法来实现这个功能?

自 iOS15 以来有一项新功能:位置推送服务扩展(CLLocationPushServiceExtension - 文档here).这是一种在 iOS 设备上查询位置的高效方式, 即使您的应用不是 运行.

请深入阅读文档并按照步骤配置 Xcode 项目、添加位置推送服务扩展目标并实施位置推送功能。不要忘记适当的权利并请求定位服务的授权!

https://developer.apple.com/documentation/corelocation/cllocationmanager/creating_a_location_push_service_extension