単純な...
次のコードで backgroundTask.js を作成します。
(function () {
"use strict";
var backgroundTaskInstance = Windows.UI.WebUI.WebUIBackgroundTaskInstance.current;
var taskName = backgroundTask.task.name;
function doWork() {
var notificationContent = backgroundTaskInstance.triggerDetails.content;
close();
}
doWork();
})();
次に、default.js で宣言var pushNotifications = Windows.Networking.PushNotifications;
します 関数を作成します (スタンドアロンまたは名前空間に)...
registraTaskPush: function (){
var taskRegistered = false;
var exampleTaskName = "Push";
var iter = background.BackgroundTaskRegistration.allTasks.first();
while (iter.hasCurrent) {
var task = iter.current.value;
if (task.name === exampleTaskName) {
taskRegistered = true;
break;
}
iter.moveNext();
}
if (taskRegistered != true) {
var builder = new Windows.ApplicationModel.Background.BackgroundTaskBuilder();
var trigger = new Windows.ApplicationModel.Background.PushNotificationTrigger();
builder.name = exampleTaskName;
builder.taskEntryPoint = "js\\bgTasks.js";
builder.setTrigger(trigger);
var task = builder.register();
}
var channel;
var channelOperation = pushNotifications.PushNotificationChannelManager.createPushNotificationChannelForApplicationAsync();
return channelOperation.then(function (newChannel) {
channel = newChannel;
$.ajax({
url: 'url/save/channel/in/database', type: 'POST',
data: { 'r': channel.uri, 'tp': 'windows' }
});
},
function (error) {
console.log('Error: '+error);
}
);
channel.addEventListener("pushnotificationreceived", onPushNotification, false);
}
次に...アプリのアクティベーション後にdefault.jsで「registraTaskPush」関数を呼び出します。「registraTaskPush」関数は、WNS へのチャネル呼び出しを実装し、チャネル URL をサーバーに送信してデータベースに保存します。通知がサーバーによって開始されると、データベースは保存されているすべての WNS URL を返し、コードがこの URL 間を移動し、すべてのプッシュを送信します。
また、「registraTaskPush」はバックグラウンドタスクをWindowsシステムに登録し、アプリを閉じていてもプッシュ通知を受け取れるようにします。