直接プッシュ通知用のバックグラウンド タスクを記述する方法 (HTML)
[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]
このトピックでは、ロック画面の Windows ランタイム アプリで直接プッシュ通知を使ったバックグラウンド ネットワーク通知を受信するために、バックグラウンド タスクを記述する方法について説明します。このトピックでは、Windows ランタイム アプリ向けに Windows 8.1 の直接プッシュ通知機能のバックグラウンド タスクを記述する手順について説明します。
理解しておく必要があること
テクノロジ
Windows.Networking.PushNotifications
直接プッシュ通知を使ったバックグラウンドのネットワーク通信を有効にします。
必要条件
以下の情報は、直接プッシュ通知を使った常時接続のネットワーク接続に依存する、あらゆる接続型 (ネットワーク認識型) の Windows ランタイム アプリに適用されます。このトピックは Windows 8.1、Windows Phone 8.1、および Windows Server 2012 の JavaScript で記述されたアプリに適用されます。
直接プッシュ通知を使ったバックグラウンド ネットワーク接続は、JavaScript アプリ、C++/XAML で記述されたアプリ、C#、VB.NET、または Managed C++ の .NET Framework 4.5 を使ったアプリでサポートされています。 JavaScript アプリに適用されるバックグラウンドのネットワーク タスクについて詳しくは、「バックグラウンド タスクによるアプリのサポート」をご覧ください。
手順
バックグラウンド タスクの作成
アプリを常に到着可能にするための次の重要な手順として、直接プッシュ通知が発生したときに実行するアプリ コードを用意します。たとえば、新しいメールがサーバーに到着したことを通知するために着信の直接プッシュ通知を使う電子メール アプリの場合、アプリは直接プッシュ通知のデータを処理するコードを実行する必要があります。このデータには、ユーザーに通知を表示するために、受信した新しい電子メールのリストが含まれる可能性があります。アプリはまた、次回アプリが中断していないとき、電子メール サーバーに接続してサーバーから新しい電子メールをダウンロードするようにスケジュールされる可能性もあります。この処理は、バックグラウンド タスクで実行されます。
すべてのバックグラウンド タスクは、直接プッシュ通知用にアプリが登録されたときに実行される関数によって実装されます。これは、単一の関数を含む特定の JavaScript ソース ファイルとして、アプリ マニフェストに指定されていました。
次のサンプルは、バックグラウンド タスクが直接プッシュ通知によってトリガーされるときに実行される関数を示しています。
(function () {
// Get the background task details
var backgroundTask = Windows.UI.WebUI.WebUIBackgroundTaskInstance.current;
var settings = Windows.Storage.ApplicationData.current.localSettings;
var taskName = backgroundTask.task.name;
console.log("Background task \"" + taskName + "\" starting...");
// Store the content received from the notification so it can be retrieved
// from the UI.
var notificationDetails = backgroundTask.triggerDetails;
settings.values[taskName] = notificationDetails.content;
console.log("Background \"" + taskName + "\" completed!");
// Close the instance running the task
close();
})();
注 アプリのユーザー インターフェイス (UI) 要素は実行されていないため、バックグラウンド タスクでアプリの UI 要素を参照することはできません。バックグラウンド タスクでのコードの実行時に、直接プッシュ通知からデータを受信してそのデータを解析し、処理し、ユーザーに通知を表示することができます。
バックグラウンド タスクの有効期間は、バックグラウンド タスクを実装する関数によって制御されます。アプリで関数を終了すると、アプリは中断されます。
アプリのバックグラウンド タスクがトリガーされると、オペレーティング システムが適切な同期によってアプリへの直接プッシュ通知データを配信するか、エラーを返します (接続が中断されたなど)。またバックグラウンド タスクの終わりに、アプリが中断される前にすべての通知が確実に表示される必要があります。
バックグラウンド タスクは主に中断状態のアプリを対象としていますが、バックグラウンド タスクが構成されたアプリは、フォアグラウンドにあるときにもバックグラウンド タスクをトリガーします。
前のステップ
直接プッシュ通知を使ったバックグラウンド ネットワーク通知を受信するための、ロック画面に表示するアプリを作成する方法について詳しくは、「バックグラウンドの直接プッシュ通知を使うロック画面のアプリの作成方法」をご覧ください。
プッシュ通知チャネルを登録してサーバーに送信し、直接プッシュ通知によってアクティブ化するバックグラウンド タスクを登録してから、そのチャネルに直接プッシュ通知を送信してバックグラウンド タスクをアクティブ化する手順について詳しくは、「ロック画面のアプリへの直接プッシュ通知の配信に WNS を使う方法」をご覧ください。
直接プッシュ通知を使うためのガイドラインとチェック リストについて詳しくは、
「直接通知のガイドラインとチェック リスト」をご覧ください。
関連トピック
その他のリソース
Windows プッシュ通知サービス (WNS) に対して認証する方法
ロック画面のアプリへの直接プッシュ通知の配信に WNS を使う方法
バックグラウンドの直接プッシュ通知を使うロック画面のアプリの作成方法
リファレンス
Windows.ApplicationModel.Background
Windows.Networking.BackgroundTransfer
Windows.Networking.PushNotifications
サンプル