3

Я работаю в PhoneGap. Я хочу получить значение push-уведомления, которое я получаю от FCM. Теперь я получаю уведомление, но я не могу получать значения уведомлений внутри своего приложения.Как получить значения push-уведомления в телефонной запинке с использованием 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> 
+0

Когда я вкладка по уведомлению я хочу получить название и тело внутри приложения, но я становлюсь неопределенным. –

+0

он возвращает undefined –

+0

Я также хочу сказать, что когда я использую этот тестер https://cordova-plugin-fcm.appspot.com/, я получаю уведомление, а также значения уведомлений при нажатии –

ответ

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)); 
?> 
Смежные вопросы