ios 如何在不点击通知的情况下在后台获取推送通知?

How to get push notification in background without tappin on the notification in ios?

我用谷歌搜索,但没有得到答案。

请告诉我如何在应用程序的后台状态下获取推送通知,并在后台更新通知,而不让用户知道。

我玩过功能,didReceiveRemoteNotification,但都是徒劳的。

我正在使用 FCM。

请帮帮我...

要在后台接收推送通知并能够更新您的应用数据,您需要在项目中设置一些内容:

  1. 在项目设置 > 功能 > 后台模式中启用 "Remote notification" 功能。
  2. 在您发送到 APNS 的负载中,添加标志 "content-avalaible" = 1。这将告诉您的应用程序此推送通知提示应用程序它需要获取新数据。
  3. 现在要使用 "content-avalaible" 处理这些通知,系统将调用您的 AppDelegate 方法 application:didReceiveRemoteNotification:fetchCompletionHandler:NOT application:didReceiveRemoteNotification:
  4. 您必须将您的数据刷新逻辑放在这个方法中。根据您需要的文档,最好在 30 秒内执行数据刷新。您还需要使用 UIBackgroundFetchResult 的正确值调用 completionHandler。有3个值,请阅读what relates to what.

了解了所有这些之后,我还应该强调,向您的应用程序发送推送通知完全是系统的愿望,这取决于 :

  • 您持续发送推送的频率。理想情况下,每分钟不应超过 4 次推送。
  • 调用应用程序时,涉及的CPU处理和电池消耗是多少。
  • 以及您的推送调用响应实际数据刷新的次数。这就是 completionHandler 的用途。
  • 请注意 iOS 11 中的错误会延迟应用程序调用。
  • 重要:如果用户终止了应用程序,将不会调用该应用程序来刷新推送通知上的数据。一旦应用程序被终止,推送只能调用应用程序,只有当用户再次打开应用程序并将其保留在后台或者他重新启动他的设备时。

希望所有这些对您的设置和测试有所帮助。