ユーザーのカスタム設定に基づいて繰り返されるローカル通知を送信するリマインダー アプリを構築しています。たとえば、1 日おきに午後 8 時に通知を送信するとします。これらの通知のいずれかを送信するたびに、ユーザーの通知センターに既に表示されている可能性のある以前の通知を置き換えたいと思います。
iOS の新しい UserNotifications フレームワークにより、これができるようになります。私が知る限り、通知は次の 2 つの方法で置き換えることができます。
- とともに使用
UNCalendarNotificationTrigger
しrepeats: true
ます。繰り返されるトリガーは、過去のトリガーを置き換えます。 UNNotificationRequest
同じで新規作成identifier
。同じ でリクエストが送信されるたびに、identifier
他のすべてのインスタンスが置き換えられます。
これらの解決策はどちらも私にとってはうまくいきません:
- 十分に詳細でない繰り返しスケジュールを
UNCalendarNotificationTrigger
使用しているため、繰り返し通知を使用できません。DateComponents
上記の「隔日午後 8 時」の例は、単にDateComponents
. - 一度に複数の通知をスケジュールする必要があるため、一意
identifier
の を指定する必要があります。そのため、表示時に互いに置き換えられません。
サービス拡張機能がここで私を救ってくれることを望んでいました。通知を受け取ったときにコードを実行できれば、新しい通知がトリガーされたときに古い通知をプログラムで削除できます。残念ながら、サービス拡張機能はリモート通知に対してのみ機能するようです。リモート通知を使用できたとしても (それ自体がワームの缶詰です)、このソリューションは、サービス拡張で何が許可されるかについての規則を曲げます。
これを解決する方法について誰かアイデアがありますか、それともユーザーの通知センターにスパムを送る運命にありますか?