静默的推送通知仍然正常弹出

时间:2018-07-28 14:58:36

标签: ios swift apple-push-notifications

我正在尝试设置静默推送通知,但我一直困扰于此问题。我发送给APN的JSON是:

{
  "aps": {
    "alert": "test",
    "badge": 0,
    "content-available": 1
  }
}

代理方法是:

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    var pushData = userInfo["aps"] as? [AnyHashable : Any];
    if pushData?["content-available"] as? Int == 1 {
        NSLog("received silent notification")
        completionHandler(.noData)
    } else {
        NSLog("received notification")
        completionHandler(.newData)
    }
}

当后端发送推送通知时,我的应用程序处于后台。 XCode向我显示了“收到的静默通知”,但是此通知仍然正常弹出。你能告诉我,我在做什么错了?可能不应该发生,对吧?

在“后台模式”中选中“远程通知”来设置项目。

1 个答案:

答案 0 :(得分:1)

用于静默推送通知的正确json负载应如下所示

{
    "aps" = {
        "content-available" : 1,
        "sound" : ""
    };
    // add custom key-value pairs 
}