#firebase #firebase-cloud-messaging #firebase-notifications
#firebase #firebase-облако-обмен сообщениями #firebase-уведомления
Вопрос:
У меня есть пул токенов устройств (iOS и Android), и в документах я нахожу только один параметр sound
для обеих платформ, и, очевидно, у меня есть 2 разных звука уведомления, один для Android и один для iOS.
Должен ли я разделять токены устройства по типу устройства для отправки на 2 отдельных типа устройств? Или я просто что-то пропустил?
Спасибо.
Комментарии:
1. Интересно. Собираетесь ли вы получать это уведомление на переднем плане? Если да, рассматривали ли вы возможность использования
data
полезной нагрузки и установки пользовательской пары ключ-значение, указав звук , который вы хотите использовать для каждого типа устройства? например"android_sound":"sound1", "ios_sound":"sound2"
2. спасибо за советы, но, к сожалению, это уведомление будет получено в фоновом режиме и на переднем плане
3. можете ли вы назвать два звуковых файла с одинаковыми именами на обеих платформах?
Ответ №1:
Решение 1
Вы могли бы назвать оба аудиофайла одинаково, например ‘your_app.mp3’.
Одно и то же имя, но разные музыкальные файлы в каждом приложении. Это не позволяет пользователю выбирать звук уведомления, но, по крайней мере, позволяет каждому приложению иметь другой звук.
Решение 2
Переход на новый API Firebase HTTP v1, который позволяет настраивать уведомления на разных платформах
Личный опыт
Решение, предложенное @daniel-raouf для отправки сообщений данных, отличное; но, по моему опыту, некоторые сообщения данных не могут быть доставлены вашим пользователям, когда:
-
На телефоне пользователя установлен режим энергосбережения (по умолчанию на Huawei, Xiaomi, One Plus …)
-
Когда пользователи iOS очищают ваше приложение от последних приложений (многозадачность).
Итак, на мой взгляд, сообщения с данными не являются надежным решением для уведомлений.
Комментарии:
1. да, я использую новый API (забыл ответить) Решение 2 работает для меня
Ответ №2:
Вы что-то пропустили,
A — Если вы хотите разрешить пользователю выбирать предпочитаемый звук уведомления на любом устройстве, чтобы
- не отправлять уведомление
- отправляйте только данные, чтобы принудительно передавать полученное содержимое по событию onReceive
- При получении добавьте звук, значок и данные, которые вы хотите, в конструктор уведомлений.
B- Если вы хотите, чтобы приложение использовало звук по умолчанию
итак, в теле уведомления установите звук: «по умолчанию», и он будет работать для всех типов устройств