0
votes

Ionic 3 & Android 8: Optimiszition de la batterie bloque les notifications pour la version 8 et supérieure à Android.

C'est un problème grave. Je ne sais pas comment les autres développeurs sur la mise en œuvre des notifications push sur les téléphones basés sur la Chine avec une version 8 et supérieure à Android.

J'utilise CORDOVA-FCM-Plugin Pour implémenter des notifications push du côté du client et de la FCM du côté du serveur pour déclencher les notifications. Tout fonctionnait bien jusqu'à la version Android 7. Pour Android Version 8 et plus, dans quelques téléphones chinois tels que One Plus, Oppo, Xiomi , etc. Ils ont introduit une fonctionnalité appelée fonctionnalité appelée optimisation de la batterie. Par défaut, toutes les applications installées sont optimisées par la batterie.

Pour cette raison, si l'application est tuée en glissant à partir du plateau d'applications. Ensuite, l'application ne recevra aucune notification push. Mais des applications populaires telles que WhatsApp, Gmail, Skype etc. sont blanches marquées par ces fabricants mobiles. Ils continueront de recevoir des notifications même lorsque l'application est tuée.

Si je vais à Paramètres -> Batterie -> Optimisation de la batterie et sélectionnez l'application et avez choisi de ne pas optimiser que les notifications seront reçues même lorsque l'application est tuée. Mais je ne peux pas demander aux utilisateurs de faire cela. Je veux une solution programmatique à cela.

S'il vous plaît laissez-moi savoir, comment puis-je y parvenir? Remarque: j'ai déjà essayé Cordova-plugin-toze-optimiser déjà, mais pas de changement.


0 commentaires

3 Réponses :


1
votes

Fist Off, vous ne devez pas utiliser ce plugin, il n'a pas été mis à jour dans deux ans, mais les API Android ont longtemps été mis à jour. Cordova-plugin-firebase est plus activement entretenu.

aussi, cela dépend de Priorité de notification. Si votre appareil est allé s'endormir, il ne recevra pas de notifications prioritaires peu prioritaires jusqu'à ce qu'elle soit réveillée manuellement. La priorité de notification peut également être définie côté serveur: xxx


3 commentaires

Vous pouvez donc obtenir des notifications sur les téléphones basés sur la Chine dont la version Android a 8 ans et plus, avec ces paramètres?


Oui? Je ne sais pas pourquoi les producteurs de matériel chinois vous préoccupent. Samsung, Sony etc. ont également introduit l'optimisation de la batterie dans leurs versions récentes. La spécification matérielle n'est pas le problème, mais la version d'Android Vous êtes sur. En outre, Android OS reçoit la notification, pas votre application. Votre application peut être tuée, dormir ou autre, vous recevrez toujours des notifications push. Ceci est purement basé sur la priorité.


Pas vraiment, avec Cordova-FCM-Plugin juste en définissant "Priorité": "High" sur la charge utile, les notifications ne sont pas livrées. Je suis spécifique aux téléphones Chines, car, lorsque je vais à Paramètres de la batterie et j'ai choisi mon application de ne pas optimiser, les notifications commencent à fonctionner. Maintenant, je vais essayer avec Cordova-plugin-firebase et vous mettre à jour le statut.



1
votes

Il semble que certains fabricants (Xiaomi, Oppo, One Plus, Huawei, ...) ont personnalisé le micrologiciel Android. Fondamentalement, si vous tuez une application de l'écran "Récemment ouvert", vous tuez le processus d'arrière-plan. Malheureusement, les applications de micrologiciels personnalisées ne peuvent pas redémarrer automatiquement en raison de l'optimisation de la batterie. Cela nous conduit à des notifications retardées ou bloquées. Il semble que cette fonctionnalité ne puisse pas être handicapée par programmation. Donc, pas de solution réelle d'autres que faire une page maison pour expliquer à l'utilisateur comment optimisation de la batterie désactivée manuellement. Cet article explique avec un meilleur anglais que le mien tout le processus. Il n'y a pas de solutions Mais dans le même temps, regarder la documentation de la messagerie en nuage de Firebase: Messagerie en nuage

haute priorité. FCM tente de fournir des messages de priorité élevés immédiatement, permettant au service FCM de réveiller un périphérique de sommeil si nécessaire et de gérer un traitement limité (y compris un accès réseau très limité). Les messages prioritaires élevés devraient généralement entraîner une interaction de l'utilisateur avec votre application ou ses notifications. Si FCM détecte un motif dans lequel ils ne le font pas, vos messages peuvent être désagrétisés. Android p introduitâ Les godets de veille de l'application qui limitent le nombre de priorité élevée de la FCM Les messages que vous pouvez envoyer à votre application qui n'entraînent pas l'utilisateur à l'aide de votre application ou de visualiser une notification. Si, en réponse à un message de priorité élevée, une notification est affichée d'une manière visible pour l'utilisateur, alors votre quota de godet de veille de l'application ne sera pas consommé par ce message.

Puis, dans mon cas après le test, le code de serveur suivant fixe le problème sur mon plus 6. xxx

mais gardez à l'esprit que: < / p>

"Les messages de priorité élevée devraient généralement entraîner une interaction de l'utilisateur avec votre application ou ses notifications. Si FCM détecte un motif dans lequel ils ne le font pas, vos messages peuvent être désagrétisés." Nous devons donc faire attention à cette priorité


0 commentaires

0
votes

Je remercie les gens qui ont répondu à ma question. Ce qui a finalement travaillé pour moi, libérez l'application sur Google Play Store. Chaque fois que j'essayais d'installer une application de débogage / signé qui est généré à partir de l'Ionic CLI, des appareils à base de Chine tels que OPPO, un plus, etc., ne recevaient pas les notifications. J'ai donc suivi en dessous de l'approche.

  1. Les applications de débogage / signées générées à partir de l'environnement de développement ne sont pas confiées par ces fabricants, car lorsque vous êtes une application est tué à partir d'état d'arrière-plan, toutes les tâches associées à cela seront terminées. En raison de cette raison même, vous ne pourrez pas recevoir de notifications.
  2. J'ai eu ma version plus ancienne de l'application sur Play Store, lorsque l'utilisateur installe l'application de Store, ils recevaient des notifications sur tous les téléphones à base de Chine et autres téléphones.
  3. Donc, d'abord, j'ai fait une version bêta de la nouvelle version de l'application testée l'application sur plusieurs téléphones basés sur la Chine en le téléchargeant. Heureusement, les notifications fonctionnaient bien.
  4. Après cela, j'ai déployé la libération réelle. Whola, tout fonctionne bien maintenant.

0 commentaires