ユーザー通知フレームワークを使用して30分ごとにローカル通知をスケジュールするアプリ。私はトリガーを設定しました特定の時刻にiOSローカル通知を停止する
var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger(60 * 30, true);
しかし、私はこれらの通知を特定の時間の後に9.00 PMと言うことを止めたいと思います。どうすればいいのですか?
ユーザー通知フレームワークを使用して30分ごとにローカル通知をスケジュールするアプリ。私はトリガーを設定しました特定の時刻にiOSローカル通知を停止する
var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger(60 * 30, true);
しかし、私はこれらの通知を特定の時間の後に9.00 PMと言うことを止めたいと思います。どうすればいいのですか?
ローカル通知を削除するには3つの方法があります。
1.アプリがフォアグラウンドの場合: -アプリがフォアグラウンドになっている場合、ローカルデバイスの時刻を確認し、保留中のローカル通知をすべて削除します。
UNUserNotificationCenter.Current.RemoveAllPendingNotificationRequests();
2.アプリはバックグラウンドで動作している場合:アプリケーションがバックグラウンドにあるときは、一定の時間でコードを実行することはできません。特定の時刻にローカル通知を削除するには、2つの方法があります。しかし、利用可能なリソース、バッテリのパーセンテージ、デバイスが充電中であるなど、コールバックメソッドがコールする必要があるかどうかを決定するのはOSです。
a。バックグラウンドフェッチ - バックグラウンドフェッチ機能を有効にします。バックグラウンドフェッチ機能は、デバイスがバックグラウンドにある特定の時間後にコールバックメソッドを呼び出します。再び、OSはアプリケーションの使用状況に応じていつ呼び出すかを決定します。
//Fetch interval
UIApplication.SharedApplication.SetMinimumBackgroundFetchInterval(UIApplication.BackgroundFetchIntervalMinimum);
//Call back method
public override void PerformFetch(UIApplication application, Action<UIBackgroundFetchResult> completionHandler)
{
// Code of removing local notifications
}
b。サイレント通知の使用:アプリケーションが静かなリモート通知を受信すると、リモート通知がサウンドとアラートなしでコールされたコールバックメソッドを受信しました。ローカル通知を削除するコードを実行できます。