IOS 7在不单击消息的情况下对推送通知应用操作

时间:2014-04-26 12:29:03

标签: ios objective-c push-notification

您好我正在开发一个应用程序,该应用程序被认为是使用gps跟踪员工并将这些信息发送到服务器,以便经理可以轻松了解他们的动作

当应用程序处于后台状态时,我可以执行此操作 但是,如果关闭应用程序的人,我可以发送常规推送通知,只通知我将当前的地理位置发送到服务器或存储到本地数据库。

我需要一个没有消息的推送通知,但它会应用要执行的操作。

感谢。

3 个答案:

答案 0 :(得分:2)

接收推送通知并不能保证启动应用程序。只有当用户点击推送通知时才会启动它。如果您的通知没有消息,用户将看不到通知,因此他无法点击它来启动应用程序。

<强> - 编辑 -
正如@Daij-Djan注意到有接收来自iOS 7的静音推送通知的新功能。如果收到此类通知,iOS将启动应用程序。
要获得支持,您需要:

  1. 在应用的UIBackgroundModes文件中加入remote-notification密钥和Info.plist值。
  2. 在您的app委托类中实施application:didReceiveRemoteNotification:fetchCompletionHandler:方法。
  3. - 完成修改 -

    我也可以建议使用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)

在ios 7中,您可以使用静音推送通知