是否可以处理远程通知并避免向用户显示?

时间:2016-09-07 07:41:28

标签: ios push-notification google-cloud-messaging apple-push-notifications

我在iOS中有一个应用程序,它通过GCM(Google Cloud Messaging)和APNS接收推送通知。这些通知包含一些必须在向用户显示任何内容之前处理的数据。

数据处理完成后,我会向用户生成一个包含适当信息的本地通知。

我看到了这种行为:

  • 应用程序位于前台我只看到本地通知。
  • 应用程序在后台我看到了两个通知,远程和本地。
  • 如果应用程序甚至没有运行,则不会显示任何通知。

我可以在处理完一些数据后只显示我的本地通知吗? (至少在应用程序处于后台时)

我已阅读有关使用内容可用属性的文档here,但行为几乎相同。

1 个答案:

答案 0 :(得分:0)

最后我得到了解决方案(感谢@DmytroShvecov指针)。

必须遵循官方文档here并在服务器中执行以下步骤:

  • 包括aps个密钥alertbadgesound,但空白值。
  • 包含content-available密钥和1作为值(如果您希望在没有用户互动的情况下在后台处理您的通知。
  • 包含要与您的数据一起视为自定义有效内容的任何acme密钥。

这是一切协同工作的例子:

{
  "aps": {
    "alert": "",
    "badge" : "",
    "sound":"",
    "content-available": 1
  },
  "acme": {
    "what": "ever",
    "you": "want"
  }
}