Kitty Опубликовано 9 марта, 2017 Поделиться Опубликовано 9 марта, 2017 Приложение поддерживает получение пушей. Я хочу, чтобы при получении пуша появлялось уведомление в шторке. 1. Запускаю приложение на телефоне. 2. Убираю его полностью из фона. 3. Посылаю с сервера пуш с тестовым текстом. 4. На телефоне вижу и слышу, что пришло уведомление. 5. Тяну шторку вниз а там ТРИ одинаковых уведомления с моим тестовым текстом т.е. два лишних. Как убрать дублирование уведомлений в шторке? Код: void __fastcall TForm1::PushEvents1PushReceived(TObject *Sender, TPushData * const AData) { NotificationCenter1->CancelAll(); if (NotificationCenter1->Supported() && AData->Message != "") { TNotification * myNotification = NotificationCenter1->CreateNotification(); __try { NotificationCenter1->CancelAll(); myNotification->AlertBody = AData->Message; NotificationCenter1->PresentNotification(myNotification); } __finally { myNotification->DisposeOf(); } } } Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 9 марта, 2017 Модераторы Поделиться Опубликовано 9 марта, 2017 Если приложение выгружено, то пуши в шторку доставляет гуглосервис. Ingalime и Kitty 2 Цитата Ссылка на комментарий
0 Kitty Опубликовано 9 марта, 2017 Автор Поделиться Опубликовано 9 марта, 2017 Не совсем понятно... Так почему гуглосервис посылает три раза? А как правильно все организовать? Нужно уведомление пользователю. Как правильно сделать чтобы пользователь получил уведомление?Нажал на него и открылось приложение. Спасибо. Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 9 марта, 2017 Модераторы Поделиться Опубликовано 9 марта, 2017 Только что, Kitty сказал: Не совсем понятно... Так почему гуглосервис посылает три раза? сколько пришло пушей от сервера столько и публикуется в шторку, отсебятину он не добавляет Kitty 1 Цитата Ссылка на комментарий
0 Kitty Опубликовано 9 марта, 2017 Автор Поделиться Опубликовано 9 марта, 2017 Я пишу сообщение в панели kinvey. Посылаю пуш. В шторке вижу 3 штуки одинаковых. Кто добавил отсебятину? Kinvey? Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 9 марта, 2017 Модераторы Поделиться Опубликовано 9 марта, 2017 19 минут назад, Kitty сказал: Я пишу сообщение в панели kinvey. Посылаю пуш. В шторке вижу 3 штуки одинаковых. Кто добавил отсебятину? Kinvey? я незнаю что делает кинвей, не пользовался никогда. Но в Firebase такого точно нету, все четко работает Цитата Ссылка на комментарий
0 Kitty Опубликовано 9 марта, 2017 Автор Поделиться Опубликовано 9 марта, 2017 Чудеса продолжаются... У меня есть планшет и телефон с андроид. Проверила эксперимент - на оба устройства установила приложение. Послала пуш. На планшете в шторке как и положено одно уведомление - на телефоне три дубляжа. А может мой телефон Akta A4 такой кривой? Цитата Ссылка на комментарий
0 Kitty Опубликовано 9 марта, 2017 Автор Поделиться Опубликовано 9 марта, 2017 (изменено) Цитата Но в Firebase такого точно нету, все четко работает Kinvey это просто облачный сервис с удобной панелью для посылки пушей и других сервисов. А сам Kinvey использует в своих настройках данные из Firebase (ключ и id). Видимо у меня просто телефон такой странный... Проверила на трех устройствах - все нормально, только в моем телефоне троекратный дубляж... Изменено 9 марта, 2017 пользователем Kitty Цитата Ссылка на комментарий
1 dante333 Опубликовано 9 марта, 2017 Поделиться Опубликовано 9 марта, 2017 (изменено) Kitty,а вы попробуйте переустановить свое приложение.Удалить и заново поставить.Получите +1 к пушам. Было 3,станет 4.Больше переустановок,больше пушей. Когда работал с Kinvey была такая же история.В блогах на Embarcadero обсуждали даже.Если в кратце и по памяти,то при переустановке приложения,в Kinvey дублируется запись устройства на которое отправляется push.Что бы избежать этого,надо делать доп проверку на уже существующий токен для данного устройства.Повторюсь что это по памяти,но суть понятна.Можете поискать в блогах Sarina Dupont на Embarcadero. Собственно после этого я и перешел на нативные пуши. Потому как написал многоуважаемый ZuBy: Цитата все четко работает Вот,нашел: https://community.embarcadero.com/blogs/entry/remote-push-notifications-on-android-with-rad-studio-xe6-795 Второй коммент. Цитата If I debug my app 15 times and deploy it to my Android tablet, then I will get 15 copies of my notification. 15 раз установил,15 пушей. Изменено 9 марта, 2017 пользователем dante333 Ingalime, Равиль Зарипов (ZuBy), Kitty и 2 других 5 Цитата Ссылка на комментарий
0 Евгений Корепов Опубликовано 11 марта, 2017 Поделиться Опубликовано 11 марта, 2017 (изменено) Тоже было подобное дублирование по причине указанной dante333. Костыль типа Kinvey не использовал, смысла использовать сторонний сервис, когда вопрос решается любым хостингом и двумя десятками строк на php? Действительно при каждой установке создается новый токен. Вроде и при обновлении прошивки телефона новый токен и еще при нескольких условиях. По этой причине вставку в базу токена выполняю следующим запросом: INSERT INTO gcm_dixy (`DeviceID`, `DeviceToken`, `last_update`, `add_date`, `RequestCount`, `Active`) VALUES ('$DeviceID','$DeviceToken', NOW(),NOW(), 1, 1) ON DUPLICATE KEY UPDATE `DeviceToken` = '$DeviceToken', `last_update` = NOW(), `RequestCount` = `RequestCount` + 1, `Active` = 1 Главное тут "ON DUPLICATE KEY UPDATE" , уникальный ключ в таблице - DeviceID, он никогда не меняется на устройстве. Видимо программистам из Kinvey не известен этот нюанс, вот глюк и всплывает. Изменено 11 марта, 2017 пользователем Евгений Корепов Упростил SQL запрос dante333 и Равиль Зарипов (ZuBy) 2 Цитата Ссылка на комментарий
0 #WAMACO Опубликовано 11 марта, 2017 Поделиться Опубликовано 11 марта, 2017 а DeviceID как получаете? Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 11 марта, 2017 Модераторы Поделиться Опубликовано 11 марта, 2017 15 минут назад, wamaco сказал: а DeviceID как получаете? http://blog.rzaripov.kz/2017/02/firebase-android-ios-2.html смотрите Delphi код, там есть получение DeviceID #WAMACO и Евгений Корепов 2 Цитата Ссылка на комментарий
Вопрос
Kitty
Приложение поддерживает получение пушей. Я хочу, чтобы при получении пуша появлялось уведомление в шторке.
1. Запускаю приложение на телефоне.
2. Убираю его полностью из фона.
3. Посылаю с сервера пуш с тестовым текстом.
4. На телефоне вижу и слышу, что пришло уведомление.
5. Тяну шторку вниз а там ТРИ одинаковых уведомления с моим тестовым текстом т.е. два лишних.
Как убрать дублирование уведомлений в шторке?
Код:
void __fastcall TForm1::PushEvents1PushReceived(TObject *Sender, TPushData * const AData) { NotificationCenter1->CancelAll(); if (NotificationCenter1->Supported() && AData->Message != "") { TNotification * myNotification = NotificationCenter1->CreateNotification(); __try { NotificationCenter1->CancelAll(); myNotification->AlertBody = AData->Message; NotificationCenter1->PresentNotification(myNotification); } __finally { myNotification->DisposeOf(); } } }
Ссылка на комментарий
11 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.