ios - iOS 7 中的静默推送通知不起作用

标签 ios push-notification ios7

在 WWDC 2013 的“多任务处理新功能”演示文稿中,有一节是关于静默推送通知的。看起来很简单。根据演示文稿,如果您发送 APS 有效负载,并且仅将 content-available 设置为 1,用户将不会收到通知。

// A. This doesn't work
{ 
  aps: { 
          content-available: 1 
       }
}

我的测试表明这不起作用,因为没有收到推送。但是,如果我包含声音属性但排除警报属性,它会起作用(尽管不再沉默)。

// B. This works
{ 
  aps: {
          content-available: 1,
          sound: "default"
       }
}

但是,如果我将声音属性更改为播放无声音频,我可以模拟无声推送。

// C. This works too.
{ 
  aps: {
          content-available: 1,
          sound: "silence.wav"
       }
}

有没有人知道:

  1. 如果这是一个错误?
  2. 假设 B 或 C 被视为远程通知是否正确(而不是需要声音属性的 Silent Push 的错误)?如果是这样,这意味着它不像 Silent Pushes 那样受到速率限制......Apple 可能会修复。所以我可能不应该依赖它。
  3. 速率限制是多少(每 X 秒推送 N 次,等等)?

提前致谢。

编辑更多信息

对于A来说,应用的状态并不重要。从未收到通知。

似乎 B 和 C 只有在将属性和值括在引号中时才有效,如下所示。

{"aps":{"content-available": 1, "sound":"silent.wav"}}

通知到达application:didReceiveRemoteNotification:fetchCompletionHandler:,无论状态如何。

最佳答案

这也有效,并且在它到达时不播放声音:

{
    aps = {
        "content-available" : 1,
        sound : ""
    };
}

编辑

有此问题的人可能想查看 this link .我一直在参与 Apple 开发者论坛上的一个线程,该线程遍历所有应用程序状态以及何时收到和未收到静默推送。

关于ios - iOS 7 中的静默推送通知不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19239737/

相关文章:

ios - 如何获取自定义 UIPickerView?

ios - 如何将文件类型与 iPhone 应用程序相关联?

android - 是否可以在用户不点击的情况下处理 Android 推送通知?

ios - 使用 NodeJS 后端推送通知

ios - AVSpeechSynthesis 结束

iphone - SearchBar 从 iOS 7 的 headerview 中消失

iOS 企业开发者帐户和公共(public)测试版?

ios - 在 iOS 中未填充所有 UITextField 时尝试禁用按钮

ios - UICollectionView 仅针对手机将单元格置于横向居中

ios - 在 iOS 中打开或关闭推送通知检查