トースト通知をスケジュールする方法 (HTML)
[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]
注 JavaScript を使わない場合は、「トースト通知をスケジュールする方法 (XAML)」をご覧ください。
ここでは、特定の時間に表示されるようにトースト通知をスケジュールする方法を示します。
理解しておく必要があること
テクノロジ
- Windows Runtime
必要条件
- トースト通知に関する用語と概念についての実用的知識。詳しくは、「トーストの概要」をご覧ください。
- Windows ランタイム API を使って JavaScript で基本的な Windows ストア アプリを作成できること。詳しくは、「JavaScript を使った初めての Windows ストア アプリの作成」をご覧ください。
- トースト通知を送受信するには、アプリのマニフェストで [トースト対応] オプションが "はい" に設定されている必要があります。詳しくは、「トースト通知をオプトインする方法」をご覧ください。
手順
ステップ 1: テンプレートを指定する
配信時間を指定する前に、通知を作る必要があります。
var template = Windows.UI.Notifications.ToastTemplateType.toastText02;
var toastXml = Windows.UI.Notifications.ToastNotificationManager.getTemplateContent(template);
ステップ 2: トースト通知のコンテンツを指定する
スケジュールされていないトーストの場合と同じであるため、ここでは説明しません。詳しくは、「クイック スタート: トースト通知の送信」をご覧ください。
ステップ 3: トースト通知を配信する時間を指定する
この例では、通知が 3 秒後に表示されるように指定しています。この例では、JavaScript の Date オブジェクトを使って現在時刻を取得しています。
var currentTime = new Date();
var startTime = new Date(currentTime.getTime() + 3 * 1000);
ステップ 4: スケジュールされたトースト通知オブジェクトを作成する
トースト通知の内容とスケジュールされた配信時間をコンストラクターに送ります。
var scheduledToast = new Windows.UI.Notifications.ScheduledToastNotification(toastXml, startTime);
ステップ 5: スケジュールされたトースト通知に ID を指定する (省略可能)
この ID は 16 文字以下である必要があります。この ID は、後で通知を取り消す場合に使用できます。
scheduledToast.id = "Future_Toast";
ステップ 6: トースト通知をスケジュールに追加する
ToastNotifier オブジェクトを作ります。このオブジェクトを使って、通知をスケジュールに追加します。
var toastNotifier = Windows.UI.Notifications.ToastNotificationManager.createToastNotifier();
toastNotifier.addToSchedule(scheduledToast);
指定された間隔で繰り返し表示されるトースト通知の追加
次のコードでは、1 つのトースト通知が 1 分間隔で 5 回表示されます。テンプレートで入力するコードは、読みやすさの観点から省略しています。
var template = Windows.UI.Notifications.ToastTemplateType.toastText02;
var toastXml = Windows.UI.Notifications.ToastNotificationManager.getTemplateContent(template);
// TO DO: Fill in the template with your notification content here.
var currentTime = new Date();
var startTime = new Date(currentTime.getTime() + 1000);
var recurringToast = new Windows.UI.Notifications.ScheduledToastNotification(toastXml, startTime, 60 * 1000, 5);
recurringToast.id = "Recurring_Toast";
var toastNotifier = Windows.UI.Notifications.ToastNotificationManager.createToastNotifier();
toastNotifier.addToSchedule(recurringToast);