2016-06-29 9 views
1

erstellt ein Projekt auf ein Signal.Gruppenschlüssel Onesignal Push-Benachrichtigung

Ich kann zu php Benachrichtigung auf meinem Handy senden.

Das Problem kommt, wenn es mehr als eine Benachrichtigung ankommt. Die neue Benachrichtigung ersetzt die vorherige Benachrichtigung (noch nicht gelesen).

Wie erhalten Sie stattdessen sagen, dass Android 2 ungelesene Benachrichtigungen hat?

Ich habe versucht, schreiben Sie die gleiche android_group, aber die Benachrichtigung nie gestapelt und die neuesten fortsetzen ersetzen die vorherige.

Dies ist mein Code:

<?php 
function sendMessage(){ 
$content = array(
    "en" => 'text message test' 
); 

$fields = array(
    'app_id' => "XXxxxxXX-xxxxXX-XXxxX-Xxxx-XxxxXXx", 
    'included_segments' => array('All'), 
    'data' => array("foo" => "bar"), 
    'headings' => array("en" => "Test message!!"), 
    'android_group' => 'TESTGROUP', 
    'android_group_message' => array("en" => "message"), 
    'contents' => $content 
); 

$fields = json_encode($fields); 
print("\nJSON sent:\n"); 
print($fields); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 
         'Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLOPT_HEADER, FALSE); 
curl_setopt($ch, CURLOPT_POST, TRUE); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 

$response = curl_exec($ch); 
curl_close($ch); 

return $response; 
} 

$response = sendMessage(); 
?> 

Wie kann ich dieses Problem lösen?

Antwort

1

android_group zum Aktivieren der Benachrichtigungsstapelung nur für Android-Apps.

Wenn Sie Web-Push mit Chrome für Android sind, wird das Ersetzungsverhalten erwartet und ist nicht konfigurierbar. Gleiches Verhalten in Chrome für Desktop und Firefox.

Beachten Sie auch, dass android_group_message $ [notif_count] enthalten sollte, damit die Anzahl der ungelesenen Nachrichten angezeigt wird. Beispiel array("en" => "You have $[notif_count] new messages")

+1

Vielen Dank. Ich habe eine Lösung gefunden. Speichern Sie einfach die Benachrichtigungszeichenfolge in einer Datenbank, überprüfen Sie, ob ein Gerät, an das Sie die Benachrichtigung senden möchten, die vorherige Benachrichtigung in der Datenbank gelesen hat. Wenn eine Geräte-ID mehr als eine Norification zum Lesen hat, senden Sie einfach eine neue Benachrichtigung mit dem Inhalt des ersten und des zweiten. Mit dieser Methode kann ich mehr Benachrichtigungen in einem senden. –