[WWDC18][iOS 12] リモート通知をグループ化する #WWDC18
はじめに
こんにちは。モバイルアプリサービス部の平屋です。
本記事では、リモート通知をグループ化する実装を紹介します。
本記事は Apple からベータ版として公開されているドキュメントを情報源としています。 そのため、正式版と異なる情報になる可能性があります。ご留意の上、お読みください。
検証環境
本記事は以下の環境で検証を行っています。
- macOS Sierra 10.13.4
- Xcode Version 10.0 beta (10L176w)
- iOS Deployment target: 12.0
準備
以下の記事などを参考にしてリモート通知を受け取るための準備を行います。
[iOS 10] User Notifications framework を使用してリモート通知を受け取る処理を実装する #wwdc
グループ化に対応したリモート通知を送信する
任意の方法で APNs にペイロードを送信します。
以下のように、キー thread-id
の値にスレッドのIDを指定します。ローカル通知の場合と同様に同じIDの通知がグループ化されます。
{ "aps": { "alert": { "body": "Remote notification with threadId" } }, "thread-id": "thread-id-1" }
グループの概要を設定する
ローカル通知の場合と同様に、通知のカテゴリを使用してグループに概要を設定できます。
通知カテゴリの作成と登録を行います。
let category = UNNotificationCategory(identifier: "categoryId", actions: [], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: nil, categorySummaryFormat: "%u more messages. threadID is %@.", options: []) UNUserNotificationCenter.current().setNotificationCategories([category])
そして任意の方法で APNs にペイロードを送信します。
summary-arg
に文字列を、category
に通知カテゴリのIDを指定します。
{ "aps": { "alert": { "body": "Remote notification with threadId", "summary-arg" : "thread-id-1" } }, "thread-id": "thread-id-1", "category": "category-id-1" }
node-apnでリモート通知を送信する
本記事の検証ではNode.jsモジュールnode-apnでリモート通知を送信してみました。
以下のようなコードを実行すれば、グループ化に対応したリモート通知を送信できます。
さいごに
本記事では、リモート通知をグループ化する実装を紹介しました。
次回も引き続きUser Notifications frameworkの新機能を紹介していきます。