ここに別の質問との類似点がありますが: iOS 10 は Notification Service Extension を呼び出さない
具体的な不正行為に関するより具体的な問題を提供したいと思います。次のプッシュ ペイロードを検討してください。
{
"service-alert":{
"title":"[Service]Title",
"subtitle":"[Service]Subtitle",
"body":"[Service]Body may be substituted."
},
"image":"https://some.small/thumbnail.jpg",
"aps":{
"badge":1,
"alert":{
"title":"[Default]Title",
"subtitle":"[Default]Subtitle",
"body":"[Default]A simple body of text."
},
"sound":"default",
"mutable-content":1
}
}
(「service-alert」ディクショナリは、それをサポートするデバイスのデフォルト アラート テキストのオーバーライドをテストするためのものです)
iOS 10 デバイス (iPhone 6+) の Xcode でデバッグしています。サービス拡張機能にブレークポイントを設定して、提示する前にプッシュを変更する機会を受け取っていることを確認します。
プッシュを送信すると、サービス拡張がヒット (ブレークポイント ヒット) する場合があり、プッシュ ペイロードが正しいことを確認でき、表示されるプッシュにはデフォルトの「aps」ペイロードのみが表示されます。画像無し。タイトル/サブタイトル/本文の変更はありません。
私のブレークポイントserviceExtensionTimeWillExpire
はヒットしません。通知メカニズムは「機能」しているように見えますが、結果は正しくありません。
まったく同じプッシュをもう一度送信すると、機能します。
画像は「image」URL から読み込まれ、変更された「service-alert」テキストが設計どおりに表示されます。動作する前に同じプッシュを 2 ~ 3 回送信する必要がある場合もありますが、その後は一貫しているように見えます。そのため、変更された通知が 1 回表示されると、その時点からすべてのプッシュ テストが適切に機能しているように見えます。
サポートする決定的なデータはまだありませんが、一定期間非アクティブな状態が続くと Service Extension がフラッシュされ、呼び出されたときに起動するのが遅すぎると感じています。もしそうなら、プッシュが受信されたときに完全に起動することはないため、これは役に立たなくなります。
現在の環境:
- Xcode 8.2 ベータ版 (8C30a)
- iOS 10.2 ベータ 2、3、および 4
- デバッグ スキーム
iOS 10ベータ版および/または非ベータ版でのこの動作を確認/拒否できる人はいますか? 10.2 のバグを見つけましたか、それともこれは「通常の動作」ですか?