Предположим, вы правильно написали приложение для Android c помощью Ionic Framework. Создали проект в Firebase. Подключили нативный плагин FCM….

Но когда установили .apk на телефон, то обнаружили, что не приходят Push-уведомления, когда приложение “убито”. А бывает так, что на некоторых смартфонах все нормально работает, а на некоторых нет.

Push-уведомление могут не работать на некоторых моделях телефонов в связи с настройками установленной производителем оболочки для Android . Чаще всего такая проблема встречается у моделей фирм Xiaomi, Oppo, One Plus, Vivo, Lenovo, Huawei, Samsung и некоторых других.

Почему это происходит и как это исправить?

Давайте для начала разберемся как наше приложение получает уведомления, даже если оно не запущено на устройстве.

В смартфоне есть три нижних кнопки. Если нажать квадратную кнопку, то мы сможем увидеть все последние текущие задание или запущенные приложения. Мы можем их очистить:

На чистом Android, при закрытии и очистке приложения, остается фоновая служба, которая и отвечает за уведомления, которые может получать ваша программа.

Но некоторые оболочки под Android настроены так, что для большинства приложений убивают фоновые службы при очистке приложения. Исключением по умолчанию могут быть Messenger, Viber, Telegram, Whatsapp, Gmail, Google Maps. Видимо такие приложения вносят в некий белый список.

К счастью, эти оболочки (ROM) под Android имеют возможность настроить для каких приложений автозапуск фоновых служб отключить, а для каких включить. Конечно, это плохое решение, так как пользователям придется вручную искать как включить автозапуск вашего приложение. У каждого производители настройки индивидуальны. Например, для Xiaomi MIUi они выглядят так:

Производители смартфонов, конечно, делают эти ограничения с автозапуском для экономии заряда и безопасности вашего устройства. Поэтому искать подобные настройки нужно в разделах безопасности, оптимизации, батареи, разрешения и т. д. Название раздела может называться auto-start, startup manager, auto-start manager, background app management.

Как сделать это программно, пока что решений я не нашел. Это проблема не чистого Android, а оболочек разных производителей, которые не всегда следуют официальным документациям Google при разработке ПО для смартфонов.

Добавить комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

Отправить