WWDC 2013 の「マルチタスキングの新機能」プレゼンテーションには、サイレント プッシュ通知に関するセクションがあります。まっすぐに見えます。プレゼンテーションによると、content-available だけを 1 に設定して APS ペイロードを送信すると、ユーザーには通知が通知されません。
// A. This doesn't work
{
aps: {
content-available: 1
}
}
私のテストでは、プッシュが受信されないため、これは機能しないことが示されています。しかし、sound 属性を含めて alert 属性を除外すると、機能します (ただし、サイレントではなくなります)。
// B. This works
{
aps: {
content-available: 1,
sound: "default"
}
}
ただし、サウンド属性を変更してサイレント オーディオを再生すると、サイレント プッシュを模倣できます。
// C. This works too.
{
aps: {
content-available: 1,
sound: "silence.wav"
}
}
誰か知っていますか:
- もしやこれはバグ?
- また、B または C がリモート通知として扱われていると仮定するのが正しい場合 (サウンド属性が必要なサイレント プッシュのバグではありません)? もしそうなら、これは、サイレントプッシュのようにレート制限されていないことを意味します... Appleが修正する可能性があります. だから頼ってはいけないのかもしれません。
- レート制限はどのくらいですか (X 秒ごとに N プッシュなど)?
前もって感謝します。
より多くの情報で編集
A の場合、アプリケーションの状態は問題ではありません。通知は受信されません。
B と C は、以下のように属性と値を引用符で囲んだ場合にのみ機能するようです。
{"aps":{"content-available": 1, "sound":"silent.wav"}}
そして、通知は状態に関係なくapplication:didReceiveRemoteNotification:fetchCompletionHandler:に届きます。