web-dev-qa-db-fra.com

bannière de notification push iOS affichée deux fois pour une seule poussée

J'ai remarqué que l'envoi d'une notification Push entraîne le comportement suivant:

 Push Banner is shown twice?

Vous voyez comment la bannière est affichée une seconde fois, après un court délai?

Au début, je pensais que notre serveur envoyait par erreur 2 notifications Push, l'une après l'autre.

Cependant, cela semble être le comportement iOS par défaut pour une notification Push unique. La bannière est affichée, puis immédiatement "à nouveau affichée". Cela se traduit par cette interface utilisateur instable montrée dans le gif. La bannière semble avoir été reçue deux fois.

Testé avec iOS 9.0.2.

Je ne me souviens pas avoir vu ce comportement d'autres applications qui m'envoient des notifications push. Est-ce que je fais quelque chose de mal qui ferait afficher la bannière deux fois?

Radar:

L'ingénierie a déterminé que votre rapport de bogue (23133694) est un duplicata d'un autre problème (23130766) et qu'il sera fermé.

41
pkamb

Selon cette réponse sur une question similaire, ce problème a été signalé sous la forme suivante: rdar: // 23569779 et doit être corrigé dans la version publique iOS 9.3.

Merci de laisser un commentaire si vous reproduisez ce problème dans iOS 9.3+

Soi-disant fixé dans:

iOS 9.2.1 beta (version: 13D11)

0
pkamb

Je rencontrais le même problème, mais après d'innombrables heures à essayer de déboguer, j'ai réalisé que j'appelais registerUserNotificationSettings(settings) deux fois dans didFinishLaunchingWithOptions:. Vérifiez que vous ne faites pas la même chose

32
RukyO

Etes-vous sûr que vous faites tout votre installation correctement?
si vous fournissez plus de code, il sera plus facile de trouver le bogue. Ce n'est certainement pas un bug iOS.


Éléments de base à vérifier en cas de problèmes avec les notifications de serveur:

1. Vérifiez votre profil d'approvisionnement et nettoyez tous les certificats inutilisés .
2. Assurez-vous que la configuration de votre serveur est correcte. Encore une fois, plus de détails sont nécessaires pour une réponse complète .

Si vous faites cela hors ligne, vous avez généralement oublié quelque chose dans votre code ou votre gestionnaire pour les publications isolées est appelé deux fois. 

3
Bagrat Kirakosian

Vous avez ce problème avec deux appareils que nous utilisions avec les versions ios 9.3.3 et ios 9.2. Mais ce problème ne venait pas pour un appareil sous ios 8.2 et un autre sous iOS 10 (testé sur 10.3)

Un problème est survenu sur les appareils avec 9.3.3 et 9.2 à chaque nouvelle installation. Mais le redémarrage de l'appareil a semblé résoudre le problème. Bien que ce ne soit PAS une solution, nous pouvons proposer aux clients.

Dans les journaux de la console du système, le message «Appels non équilibrés pour commencer/mettre fin aux transitions d'apparence pour SBBannerButtonViewController» a été détecté à ce moment-là.

Cela semble être un problème avec certains appareils dotés de versions 9.x et devrait fonctionner correctement pour les appareils exécutant iOS 10.0 et les versions ultérieures.

3
Swasidhant

Je pense que la mauvaise réponse est acceptée ici (s’il s’agit de migrer de Parse vers OneSignal). Parce que pour OneSignal, il ne semble pas y avoir de solution appropriée pour cela. Je cherche aussi la solution si quelqu'un en a. La seule solution pour cela était de redémarrer le téléphone.

Mais c'est bizarre. Nous ne pouvons pas demander à tous les utilisateurs de redémarrer leur appareil.

2
Bhumi Goklani

Utilisez-vous une base de données pour stocker l'identifiant du périphérique?

Si oui, le périphérique de stockage peut être identifié deux fois.

2
Nasir Munda

Nous étions confrontés au même problème sur IOS 9.3.1 

Nous avons utilisé un dirigeable urbain pour gérer les notifications et c'était notre configuration

let config = UAConfig.default()

UAirship.setLogging(false)
UAirship.takeOff(config)
UAirship.Push().userPushNotificationsEnabled = true
UAirship.Push().notificationOptions = [.alert, .badge, .sound]
UAirship.Push().backgroundPushNotificationsEnabled = false
UAirship.Push().pushNotificationDelegate = self

Après plusieurs tentatives, nous avons simplement supprimé la ligne suivante et cela a fonctionné!

UAirship.Push().notificationOptions = [.alert, .badge, .sound]

J'espère que cela aidera quelqu'un. 

1
Melvin John

Je sais que cette réponse a lieu quelques années après le message original, mais au cas où cela aiderait quelqu'un ...

Dans mon cas, j'utilisais les notifications CloudKit et j'avais accidentellement créé deux abonnements qui suivaient le même type d'enregistrement!

1
mlecoz