您好我正在开发一个应用程序,该应用程序被认为是使用gps跟踪员工并将这些信息发送到服务器,以便经理可以轻松了解他们的动作
当应用程序处于后台状态时,我可以执行此操作 但是,如果关闭应用程序的人,我可以发送常规推送通知,只通知我将当前的地理位置发送到服务器或存储到本地数据库。
我需要一个没有消息的推送通知,但它会应用要执行的操作。
感谢。
答案 0 :(得分:2)
接收推送通知并不能保证启动应用程序。只有当用户点击推送通知时才会启动它。如果您的通知没有消息,用户将看不到通知,因此他无法点击它来启动应用程序。
<强> - 编辑 - 强>
正如@Daij-Djan注意到有接收来自iOS 7的静音推送通知的新功能。如果收到此类通知,iOS将启动应用程序。
要获得支持,您需要:
UIBackgroundModes
文件中加入remote-notification
密钥和Info.plist
值。- 完成修改 -
我也可以建议使用CLLocationManager的startMonitoringSignificantLocationChanges方法 通过使用它,当iPhone位置发生显着变化(约500米)时,iOS会自动启动应用程序。因此,每次调用此方法时,您都可以发送新位置。
Apple docs:
如果您启动此服务,则随后会显示您的应用程序 终止后,系统会自动将应用程序重新启动到 新事件到来的背景。在这种情况下,选项 字典传递给locationManager:didUpdateLocations:方法 您的应用程序委托包含密钥 UIApplicationLaunchOptionsLocationKey表示你的 应用程序是由于位置事件而启动的。
注意:应用可以 一旦设备移动500米或更长时间,就会收到通知 从其先前的通知。它不应该期待通知 比每五分钟更频繁一次。如果设备能够 从网络中检索数据,位置管理器更多 可能会及时发送通知。
答案 1 :(得分:2)
您应该使用startMonitoringSignificantLocationChanges
的位置更新机制CLLocationManager
。
在后台进行网络通话可能会非常棘手。
有关详细信息,请参阅此链接: http://www.mindsizzlers.com/2011/07/ios-background-location/
答案 2 :(得分:1)