ringcentral / engage-digital-messaging-ios

Engage Digital Messaging IOS SDK
Other
10 stars 6 forks source link

Quand on utilise Microsoft AzME dans la même application que Dimelo, on ne reçoit plus les notifications de Dimelo #12

Closed sdc-78 closed 7 years ago

sdc-78 commented 7 years ago

SI je désactive l'utilisation d'AzME dans mon application, les notifications de Dimelo fonctionnent convenablement. En revanche, si je laisse AzME activé, les notifications d'AzME fonctionnement convenablement et j'ai des dysfonctionnements avec les notifications de Dimelo.

Voilà ce que j'observe :

jarthod commented 7 years ago

Bonjour,

La fonction didReceiveRemoteNotification est dans votre application, si elle n'est pas appelée en cas de notification cela ne peut pas être la faute du SDK Dimelo, c'est plus probablement AzME ou la façon dont vous intégrez leur notifications qui ne délègue plus les autres notifications a notre SDK.

Votre application doit appeler consumeReceivedRemoteNotification avec les notifications reçu, et si cette fonction renvoi false c'est que la notification n'est pas pour nous et vous pouvez appeler un autre handler. N'y aurai-t-il pas un handler pour les notifications de AzME avant qui s'attribue nos notifications ? Ils faut que vous vérifiez que la méthode consumeReceivedRemoteNotification est bien appelé de votre côté.

sdc-78 commented 7 years ago

Oui, la méthode application(_:didReceiveRemoteNotification:fetchCompletionHandler:) est bien dans notre code, et elle appelle bien consumeReceivedRemoteNotification. Comme je vous l'ai indiqué, j'arrive parfaitement à faire fonctionner Dimelo dès que je désactive AzME. L'intégration d'AzME se fait de manière très similaire à la votre, et je passe les notifications à AzME en dernier. S'il y a un soucis, il est plus subtile que cela. Vous avez peut-être raison en indiquant que « c'est plus probablement AzME », mais on peut aussi dire que c'est plus probablement Dimelo ! Ça ne m'aide pas à avancer !

jarthod commented 7 years ago

Ok alors que renvoi la méthode "consumeReceivedRemoteNotification" quand vous l’appelez avec une de nos notifications? c'est vous qui avez le code pas nous et rien de ce que vous nous avez indiqué pour l'instant ne pointe vers un bug du SDK Dimelo.

sdc-78 commented 7 years ago

Peut-on continuer la discussion sur un canal privé ? Vos équipes ont déjà mon email.

sdc-78 commented 7 years ago

J'ai fini par m'apercevoir que sous iOS 10, AzME positionnait sa propre implémentation de UNUserNotificationCenterDelegate lorsqu'on n'en définissait pas une dans application(_:didFinishLaunchingWithOptions:). Du coup, cette implémentation interceptait toutes les notifications et ne traitait que les siennes. Cela explique pourquoi sous iOS 10, les notifications de Dimelo ne fonctionnaient pas. La solution est donc de positionner UNUserNotificationCenter.current().delegate et de traiter les notifications AzME et les notifications DImelo dans les méthodes userNotificationCenter(_:didReceive:withCompletionHandler:) et userNotificationCenter(_:willPresent:withCompletionHandler:).

keysen commented 7 years ago

Problem solved et ça nous fait par la même occasion une expérience avec les clients qui auraient également intégré AzME.

Merci pour l'explication détaillée ;).

nel commented 7 years ago

Merci @sdc-78