我使用谷歌FCM发送通知
如果用户未连接到互联网并且我发送通知,则在用户连接到互联网后,通知会收到该用户设备
如果同一时刻连接到互联网而不是在
之后发送,我只想通知用户我的代码:
function sendNotification($to,$title,$text,$data=""){
$fcmMsg = array('body'=>$title,
'title'=>$text,
'sound'=>"default",
'click_action'=>'YOUR_ACTION',
'largeIcon'=>'ic_launcher',
'smallIcon'=>'ic_launcher');
$fcmFields = array('to'=>$to,
'data'=>$data,
'priority'=>'high',
'notification'=>$fcmMsg);
$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($fcmFields));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
答案 0 :(得分:1)
默认情况下,如果设备重新获得连接,FCM会存储该消息并尝试重新发送。因此,您应该在有效负载中添加time_to_live参数,其值为0.它将告诉FCM服务器应立即发送消息。如果设备未连接到FCM服务器或脱机,则FCM服务器将丢弃该消息,并且不再发送该消息。