次の方法で共有


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

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

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

Von Bedeutung

デスクトップ アプリケーション (パッケージ化されたアプリケーションとパッケージ化されていないアプリケーションの両方) には、通知の送信とアクティブ化の処理の手順が若干異なります。 ただし、次の手順に従って、ToastNotificationManagerDesktopNotificationManagerCompatのドキュメントの クラスに置き換えます。

重要な API: ScheduledToastNotification クラスの

[前提条件]

このトピックを完全に理解するには、次の項目が役立ちます。

  • トースト通知の用語と概念に関する実用的な知識。 詳細については、「トーストとアクション センターの概要参照してください。
  • Windows 10 トースト通知コンテンツに関する知識。 詳細については、トーストコンテンツのドキュメントを参照してください。
  • Windows 10 UWP アプリ プロジェクト

手順 1: NuGet パッケージをインストールする

Microsoft.Toolkit.Uwp.Notifications NuGet パッケージをインストールします。 このコード サンプルでは、このパッケージを使用します。 この記事の最後には、NuGet パッケージを使用しない "プレーン" コード スニペットを提供します。 このパッケージを使用すると、XML を使用せずにトースト通知を作成できます。

手順 2: 名前空間宣言を追加する

using Microsoft.Toolkit.Uwp.Notifications; // Notifications library

手順 3: 通知をスケジュールする

今日の宿題について学生に通知する簡単なテキストベースの通知を使用します。 通知を作成し、スケジュールを設定します。

// Construct the content and schedule the toast!
new ToastContentBuilder()
    .AddArgument("action", "viewItemsDueToday")
    .AddText("ASTR 170B1")
    .AddText("You have 3 items due today!");
    .Schedule(DateTime.Now.AddSeconds(5));

トーストの主キーを指定する

スケジュールされた通知をプログラムでキャンセル、削除、または置き換える場合は、Tag プロパティ (および必要に応じて Group プロパティ) を使用して、通知の主キーを指定する必要があります。 その後、この主キーを今後使用して、通知をキャンセル、削除、または置き換えることができます。

既に配信されているトースト通知の置換または削除の詳細については、「 クイック スタート: アクション センター (XAML) でのトースト通知の管理」を参照してください。

タグとグループの組み合わせは、複合主キーとして機能します。 Group はより汎用的な識別子であり、"wallPosts"、"messages"、"friendRequests" などのグループを割り当てることができます。タグは、グループ内から通知自体を一意に識別する必要があります。 汎用グループを使用すると、 RemoveGroup API を使用してそのグループからすべての通知を削除できます。

// Construct the content and schedule the toast!
new ToastContentBuilder()
    .AddArgument("action", "viewItemsDueToday")
    .AddText("ASTR 170B1")
    .AddText("You have 3 items due today!");
    .Schedule(DateTime.Now.AddSeconds(5), toast =>
    {
        toast.Tag = "18365";
        toast.Group = "ASTR 170B1";
    });

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

スケジュールされた通知を取り消すには、まず、スケジュールされたすべての通知の一覧を取得する必要があります。

次に、前に指定したタグ (および必要に応じてグループ) に一致するスケジュールされたトーストを見つけて、RemoveFromSchedule() を呼び出します。

// Create the toast notifier
ToastNotifierCompat notifier = ToastNotificationManagerCompat.CreateToastNotifier();

// Get the list of scheduled toasts that haven't appeared yet
IReadOnlyList<ScheduledToastNotification> scheduledToasts = notifier.GetScheduledToastNotifications();

// Find our scheduled toast we want to cancel
var toRemove = scheduledToasts.FirstOrDefault(i => i.Tag == "18365" && i.Group == "ASTR 170B1");
if (toRemove != null)
{
    // And remove it from the schedule
    notifier.RemoveFromSchedule(toRemove);
}

Von Bedeutung

パッケージ化されていない (実行時にパッケージ ID がない) Win32 アプリでは、上記のように ToastNotificationManagerCompat クラスを使用する必要があります。 ToastNotificationManager を直接使用すると、要素が見つからない例外が発生します。 すべての種類のアプリで Compat クラスを使用でき、正常に動作します。

有効化処理

アクティベーションの処理の詳細については、ローカルトースト送信に関する ドキュメントを参照してください。 スケジュールされたトースト通知のアクティブ化は、ローカル トースト通知のアクティブ化と同じように処理されます。

アクション、入力などを追加する

高度なトピックについて詳しくは、アクションや入力を含む「ローカル トーストを送信」ドキュメント を参照してください。 アクションと入力は、スケジュールされたトーストの場合と同じように、ローカル トーストでも機能します。

リソース