Групповой ключ onesignal push-уведомление

создал проект на одном сигнале.

Я могу отправить уведомление php на свой телефон.

Проблема возникает, когда приходит более одного уведомления. Новое уведомление заменяет предыдущее уведомление (еще не прочитанное).

Как вместо этого сказать, что у Android есть 2 непрочитанных уведомления?

Я попытался написать то же самое android_group, но уведомление никогда не складывалось, и самые новые продолжают заменять предыдущие.

Это мой код:

<?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();
?>

Как я могу решить эту проблему?


person Andrea php    schedule 29.06.2016    source источник


Ответы (1)


android_group, используемый для включения стека уведомлений, работает только для приложений Android.

Если вы работаете в Интернете с Chrome для Android, поведение замены, которое вы видите, ожидаемо и не настраивается. Такое же поведение в Chrome для ПК и Firefox.

Также обратите внимание, что android_group_message должен содержать $[notif_count], чтобы было видно количество непрочитанных сообщений. Пример array("en" => "You have $[notif_count] new messages")

person jkasten    schedule 30.06.2016
comment
Спасибо. Я нашел решение. Просто сохраните в базе данных строку уведомления, проверьте, прочитано ли устройство, на которое вы хотите отправить уведомление, предыдущее уведомление в базе данных. Если идентификатор устройства имеет более одного уведомления для чтения, просто отправьте новое уведомление с содержимым первого и второго. С помощью этого метода я могу отправить больше уведомлений в одном. - person Andrea php; 01.07.2016