2017-06-15 6 views
0

cordovaプラグインを使用しています。プッシュ通知のためにphonegap-plugin-pushプラグインを追加しました。 forground通知でfine.andもイベントを処理できます。 私のアプリがバックグラウンドになっているときにも通知がありますが、プッシュ通知をクリックするとイベントは発生しません。私は バックグラウンドプッシュ通知でイベントを処理できません

$cordovaPushV5.initialize(options).then(function() { 
       // start listening for new notifications 
       $cordovaPushV5.onNotification(); 
       // start listening for errors 
       $cordovaPushV5.onError(); 

       // register to get registrationId 
       if (PNdeviceToken == null) //becuase registration will be done only the very first 
       { 
        $cordovaPushV5.register().then(function(registrationId) { 
         // save `registrationId` somewhere; 
         window.localStorage.setItem('PNdeviceToken', registrationId); 
         $rootScope.fcmToken = registrationId; 
         console.log(registrationId) 
         alert("first time registered id -- " + registrationId) 
        }) 

       } else { 
        $rootScope.fcmToken = PNdeviceToken; 
        alert("already saved registered id -- " + $rootScope.fcmToken) 
       } 

      }); 


$rootScope.$on('$cordovaPushV5:notificationReceived', function(event, data) { 
       console.log(event) 
       console.log(data) 
       }) 

私は背景プッシュnotictionをタップコード

の下に使用しています その後、$ cordovaPushV5:notificationReceivedイベントは発生しませ、どのように私はこの問題を解決することができますか?

バックグラウンドプッシュ通知イベントを処理するにはどうすればよいですか?

答えて

0

私は同じ問題があり、2日間の研究の後に解決しました。

アプリがフォアグラウンドであるかバックグラウンドであるかにかかわらず、通知イベントの処理はと同じです。

私たちは、コンテンツ利用可能」に設定する必要があります。データフィールドに「1」通知を押しながら。それ以外の場合は、アプリケーションがバックグラウンドにある場合はnotificationReceivedイベントにコールしないでください。

また、これは今の時点ではGoogle Firebase Consoleにはありません。

firebase serversのいずれかを使用して、custom payload messages(データまたは通知、またはその両方)を別々に送信する必要があります。

詳細情報は、プラグインのGitHub Docs Page on background notificationsにあります。 がそこから引用 -

Androidのアプリは、それが比較的簡単である背景にあるときに呼び出されるあなたの上の(「通知」)イベントハンドラ*をしたい場合。

最初にGCMから送信するJSONには、「content-available」:「1」を含める必要があります。これにより、プッシュ通知内の他のデータに関係なく、プッシュプラグインがon( 'notification')イベントハンドラを呼び出すように指示します。

* on('notification')イベントハンドラ= $cordovaPushV5:notificationReceivedイベントです。

PHPNodeJS

を使用してカスタムペイロードメッセージを送信するためthis answerを参照してください。
関連する問題