无法获得缺少的 gcm 推送通知
Posted
技术标签:
【中文标题】无法获得缺少的 gcm 推送通知【英文标题】:Could not get missing gcm push notification 【发布时间】:2017-01-18 05:24:21 【问题描述】:我正在将 gcm 推送通知从 php 发送到 cordova 应用程序。当用户移动连接到互联网时,它运行良好。如果用户手机在 4 小时内没有连接到互联网,并且在此期间我的服务器正在发送 5 个通知。在连接到互联网时,用户必须收到 5 个丢失的通知,但没有收到任何通知。我在cordova应用程序中使用phonegap-plugin-push 1.6.4“PushPlugin”提前谢谢。
PHP 代码
$registrationIds = array($to);
$msg = array
(
'notId' => rand(1, 999999),
'message' => $message,
'title' => $title,
'vibrate' => 1,
'sound' => 1
);
$fields = array
(
'registration_ids' => $registrationIds,
'data' => $msg
);
$headers = array
(
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://android.googleapis.com/gcm/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);
科尔多瓦 JS 代码
var push = PushNotification.init("android": "senderID": appsenderid, "alert": true, "badge": true, "sound": true,
"ios": "alert": "true", "badge": "true", "sound": "true", "windows": );
push.on('registration', function (data)
//alert(data.registrationId);
register_device(data.registrationId);
);
【问题讨论】:
【参考方案1】:也许消息只是延迟了。请注意,当设备重新连接到互联网时,message to arrive 最多可能需要 15 分钟。如果设备离线,一旦重新连接,它将收到所有待处理的通知。如果注册 ID 错误或任何其他错误,Google 会返回相应的响应。
检查thread 和tutorial 是否有帮助。
【讨论】:
但我从来没有收到待处理的通知以上是关于无法获得缺少的 gcm 推送通知的主要内容,如果未能解决你的问题,请参考以下文章
QuickBlox:无法使用 REST api 获得推送通知