如何使用FCM获取phonegap中的推送通知值?

时间:2016-12-14 07:32:43

标签: cordova firebase push-notification firebase-cloud-messaging phonegap-pushplugin

我在PhoneGap工作。我想获得我从FCM获得的推送通知值。现在,我收到通知,但我无法在我的应用程序中收到通知值。

PHP端FCM代码:

    <?php
// API access key from Google API's Console
define( 'API_ACCESS_KEY', 'AIzaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' );
$registrationIds = array( $_GET['id'] );
// prep the bundle
$msg = array
(
    'body'  => $_GET['body'],
    'title'     => $_GET['title'],
    'vibrate'   => 1,
    'sound'     => 1,
);
var_dump($msg);
$fields = array
(
    'registration_ids'  => $registrationIds,
    'notification'          => $msg
);

$headers = array
(
    'Authorization: key=' . API_ACCESS_KEY,
    'Content-Type: application/json'
);

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
curl_close($ch);
echo $result;
?>

这是我接收通知的脚本

 <script type="text/javascript">
  function onLoad() {
  document.addEventListener("deviceready", Fire, false);
                       }

    function Fire() {



        FCMPlugin.getToken(
          function (token) {

               var name = document.getElementById("fireup");
                 name.value = token;
                 localStorage.setItem("key",token);
          },
          function (err) {
                   alert("Error: " + 'error retrieving token: ' + err);
          }
        );

        FCMPlugin.onNotification(function(data){
                if(data.wasTapped){
                    alert( JSON.stringify(data.title ) );
                }else{
                  alert( JSON.stringify(data.title ) );
                }
              },
              function(msg){
                  alert('onNotification callback successfully registered: ' + msg);
              },
              function(err){
                  alert('Error registering onNotification callback: ' + err);
              }
            );

    };


</script>

1 个答案:

答案 0 :(得分:1)

这是帮助我的原因

<?php
// API access key from Google API's Console
define( 'API_ACCESS_KEY', 'AIzaSyCpN9xxxxxxxxxxxxxxxxxxxxxxx' );
$registrationIds = array( $_GET['id'] );
// prep the bundle
$msg = array
(
    'body'  => $_GET['body'],
    'title'     => $_GET['title'],
    'vibrate'   => 1,
    'sound'     => 1,
);

$fields = array
(
    'registration_ids'  => $registrationIds,
    'data'                  => $msg,
        'notification'      => $msg
);

$headers = array
(
    'Authorization: key=' . API_ACCESS_KEY,
    'Content-Type: application/json'
);

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
curl_close($ch);
//echo $result;
echo json_encode(array("data"=>$msg));
?>