2016-03-26 23 views
0

WinJSでアプリケーションをコーディングしても問題ありません。しかし、私はこのアプリにプッシュ通知(トーストのような)を送信する必要があります。 PHPのサーバー側では、Apache Cordovaアプリ(AndroidおよびWindows Phone 8.1)でテストされています。WinJSでUWPでWNS(プッシュ通知)を処理する方法

しかし、WinJSのUWP Windows 10アプリでは、WNSレスポンス/コールの処理方法とユーザーの通知方法がわかりません(Cordovaでは、私はプラグインPhonegap Push-Notificationsを使用しました。プラグインはすべてのタスクを実装しているためハンドラー)。

答えて

0

だけのシンプルな...

はコードで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システムに登録し、アプリケーションが閉じていてもプッシュ通知を受け取るようにします。

+1

こんにちは、このWinJS WNSに関する質問をご覧ください(http://stackoverflow.com/questions/38495933/how-to-trigger-pushnotificationreceived-event-for-cordova-uwp-app-app- with-winjs)と専門知識を共有できますか?ありがとうございました。 – lastoneisbearfood

関連する問題