如何使用FCM在phonegap中获取推送通知值?
问题描述:
我正在使用PhoneGap。我想获得我从FCM获得的推送通知值。现在,我收到通知,但我无法在我的应用程序内接收通知值。如何使用FCM在phonegap中获取推送通知值?
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>
答
这是帮助我
<?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));
?>
当我通知选项卡,我想获得应用程序中的标题和正文,但我正在变得不确定。 –
则返回undefined –
我还想说的是,当我使用这个测试仪https://cordova-plugin-fcm.appspot.com/,我得到的通知以及通知值攻 –