WWDC 2013の「マルチタスクの新機能」プレゼンテーションには、サイレントプッシュ通知に関するセクションがあります。簡単そうです。プレゼンテーションによると、content-availableのみを1に設定してAPSペイロードを送信した場合、ユーザーには通知が通知されません。
// 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"
}
}
誰か知っている:
- これがバグなら?
- そして、BまたはCがリモート通知として扱われていると仮定するのが正しい場合(サウンド属性が必要なサイレントプッシュのバグではありません)?もしそうなら、これはサイレントプッシュのようにレート制限されていないことを意味します... Appleはおそらく修正するでしょう。だから私はおそらくそれに頼るべきではありません。
- レート制限とは何ですか(NはX秒ごとにプッシュするなど)?
前もって感謝します。
詳細情報で編集
Aの場合、アプリケーションの状態は重要ではありません。通知は受信されません。
BとCは、以下のように属性と値を引用符で囲んだ場合にのみ機能するようです。
{"aps":{"content-available": 1, "sound":"silent.wav"}}
そして、通知は、状態に関係なく、application:didReceiveRemoteNotification:fetchCompletionHandler:に到着します。