app通知をスケジュールする

appがその時点で実行されているかどうかに関係なく、app通知を後で表示するようにスケジュールできます。 これは、通知の時刻と内容が事前にわかっているユーザーのアラームやその他のフォローアップ タスクを表示するシナリオに役立ちます。

スケジュールされた app 通知の配信期間は 5 分です。 スケジュールされた配信時間中にコンピューターがオフになっていて、5 分を超えてオフのままになっている場合、通知はユーザーに関連しなくなったため "削除" されます。 コンピューターの電源が切れた時間に関係なく、通知の確実な配信が必要な場合は、タイム トリガーでバックグラウンド タスクを使用することをお勧めします。 詳細については、「 バックグラウンド タスク」を参照してください。

app通知の詳細については、「App通知の概要」を参照してください。

この記事のコード例では、Microsoft.Windows.AppNotifications 名前空間を使用して通知コンテンツを作成し、スケジュール用の Windows.UI.Notifications 名前空間を作成します。 これら 2 つの名前空間は、同じ appで一緒に使用できます。

通知をスケジュールする

今後の通知をスケジュールするには、AppNotificationBuilder を使用して通知コンテンツを定義します。 次に、AddToScheduleScheduledToastNotification を呼び出します。 次の例では、通知を 10 秒後に表示するようにスケジュールします。

using Microsoft.Windows.AppNotifications.Builder;
using Windows.UI.Notifications;
using Windows.Data.Xml.Dom;

var payload = new AppNotificationBuilder()
    .AddArgument("action", "viewItemsDueToday")
    .AddText("ASTR 170B1")
    .AddText("You have 3 items due today!")
    .BuildNotification()
    .Payload;

var doc = new XmlDocument();
doc.LoadXml(payload);

var scheduledNotification = new ScheduledToastNotification(doc, DateTimeOffset.Now.AddSeconds(10));
scheduledNotification.Tag = "18365";
scheduledNotification.Group = "ASTR 170B1";

ToastNotificationManager.CreateToastNotifier().AddToSchedule(scheduledNotification);

Tag プロパティと Group プロパティは、通知の複合主キーとして機能します。 これらの値を設定すると、次のセクションに示すように、スケジュールされた通知を後で取り消すか置き換えることができます。

スケジュールされた通知を取り消す

スケジュールされた通知を取り消すには、 GetScheduledToastNotifications を呼び出して保留中の通知の一覧を取得し、前に指定したタグに一致するものに対して RemoveFromSchedule を呼び出します。

var notifier = ToastNotificationManager.CreateToastNotifier();
var scheduled = notifier.GetScheduledToastNotifications();

foreach (var notification in scheduled)
{
    if (notification.Tag == "18365")
    {
        notifier.RemoveFromSchedule(notification);
    }
}

こちらも参照ください