我使用谷歌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;
}
默认情况下,FCM 会存储消息,并在设备重新获得连接时尝试重新发送。因此,您应该在有效负载中添加值为 0 time_to_live参数。它将告诉 FCM 服务器应立即发送邮件。如果设备未连接到 FCM 服务器或脱机,FCM 服务器将丢弃该消息,并且不会再发送该消息。