Onesignal веб-push перезапись - PullRequest
0 голосов
/ 28 июня 2018

Я использую push-уведомления OneSignal для доставки уведомлений своим клиентам с веб-сайта, созданного на PHP. Через некоторое время я понял, что если я отправлю первое уведомление , но клиент не откроет его на своем устройстве , а затем доставлю другое, смартфоны не будут складывать их друг под другом в область уведомлений, а лучше перезаписать первое вторым. Это означает, что клиент просто пропустил первое уведомление.

Я, конечно, пытался исследовать это, прежде чем спрашивать здесь, но безуспешно - возможно, я пропустил какой-то раздел документации, объясняющий, как решить эту ошибку?

Спасибо, Martin

1 Ответ

0 голосов
/ 06 июля 2018

Я связался с официальной поддержкой OneSignal и получил очень простое, но подробное решение - возможно, вы столкнулись с подобной проблемой, см. Копию электронного письма ниже (спасибо, Джон :)).

При использовании нашего REST API для программной отправки уведомлений вы можете использовать недокументированный параметр web_push_topic .

В наборе уведомлений, совместно использующих тот же web_push_topic, вновь полученные уведомления заменят более ранние полученные уведомления тем же разделом. Будут заменены только уведомления, использующие одну и ту же тему; уведомления без темы или с другой темой не будут заменены. Вы можете установить различные темы для разных наборов уведомлений, чтобы контролировать, какие уведомления остаются на экране.

Значение web_push_topic может быть любым строковым значением.

В Chrome в любое время отображается не более 3 уведомлений, даже если другие уведомления не связаны с вашим сайтом или с OneSignal. Это означает, что вы можете показывать пользователю только 3 категории уведомлений, не считая других уведомлений, которые могут отображаться в это время.

В Firefox в Windows одновременно может отображаться гораздо больше уведомлений (6+).

В Firefox на Mac и Safari на Mac одновременно может отображаться только одно уведомление, даже если другие уведомления не связаны с вашим сайтом или OneSignal. Уведомления также быстро исчезают в течение 5 секунд, и это время не настраивается.

В Chrome / Firefox на Android одновременно могут отображаться несколько уведомлений.

Если вы не укажете web_push_topic, каждое уведомление будет заменено более новым уведомлением. Если вы укажете web_push_topic, вы можете выбрать, какие уведомления будут заменены, а какие будут складываться.

При отправке уведомления с помощью нашего API, установка строкового значения для web_push_topic установит тему для уведомления. Любые уведомления, относящиеся к одной и той же теме, заменят друг друга, но любые уведомления с другой темой не будут заменены.

Предположим, вы отправили 4 уведомления:

Уведомление «День открытых дверей на улице 1234 в 3 часа дня в эту субботу» с темой «День открытых дверей». Уведомление "День открытых дверей на улице 1234 в субботу изменен на 16:00" с темой "День открытых дверей" Уведомление «20 новых домов соответствуют вашим критериям в Сиэтле, штат Вашингтон» с темой «общие обновления». Уведомление «Найти агента в вашем регионе» с темой «промо». Наблюдаемая последовательность уведомлений будет:

Уведомление № 1 показывает. Уведомление № 2 заменяет № 1 (даже если оно закреплено в панели уведомлений Mac OS X). Уведомление № 3 отображается отдельно (и, если оно закреплено на панели уведомлений Mac OS X, для него будет использоваться отдельная запись). Уведомление № 4 также отображается отдельно. В конце концов, когда подписчик проверит свои непрочитанные уведомления, он увидит всего три уведомления.

Надеюсь, это имеет больше смысла!

...