web-dev-qa-db-fra.com

Des notifications à distance silencieuses sont-elles possibles si l'utilisateur a désactivé Push pour l'application?

Dans mes onglets de paramètres:

  1. J'ai un commutateur spécifique à une fonctionnalité qui peut être désactivé ou activé en fonction de la réponse de l'API.
  2. Depuis le site Web, seul l'administrateur est autorisé à activer/désactiver.
  3. Je peux faire/appeler l'API utilisateur à chaque fois sur les paramètres appuyez sur pour vérifier les paramètres actuels de l'utilisateur, mais il existe quelques inconvénients, par exemple, si l'utilisateur est déjà en train de régler, il ne mettra pas à jour l'interface utilisateur et n'appellera pas l'API à chaque fois que les paramètres ne tapent pas une solution parfaite.

Je pense qu'une meilleure solution consiste à envoyer une notification Push silencieuse que je peux utiliser pour effectuer l'appel API afin de mettre à jour les paramètres de l'interface utilisateur à tout moment. 

Mais si l'utilisateur a désactivé la notification Push, est-ce que je continuerai à recevoir une commande Push silencieuse? Quelle est l'approche recommandée pour gérer de telles situations?

32
Tariq

Réponse courte, oui

La nouvelle opportunité passionnante pour les développeurs d'applications dans iOS 8 est qu'Apple va désormais proposer des envois «silencieux» même si l'utilisateur a choisi de ne pas recevoir de notifications. De plus, le «push silencieux» ne concerne plus uniquement les applications de kiosque à journaux. Chaque application peut tirer parti de cette possibilité pour actualiser le contenu en arrière-plan, créant ainsi l'expérience la plus à jour et la plus réactive possible, au moment où l'utilisateur ouvre l'application.

Bien que...

Les utilisateurs ont toujours la possibilité de désactiver la capacité de votre application à traiter une «Push silencieuse» au moyen du contrôle «Rafraîchissement de l'application en arrière-plan». Même si le service de notification Apple Push (APN) fournira un «contenu disponible» à votre téléphone, le système d'exploitation ne réveillera pas votre application pour la recevoir, mais la laissera tomber par terre. Toutefois, la désactivation de «Actualisation de l'application en arrière-plan» est une fonctionnalité moins connue non directement associée aux notifications. Vous n’avez pas accès à cette préférence dans vos paramètres de notifications - elle se trouve sous l’écran Général> Actualiser l’application en arrière-plan.

Gardez cela à l'esprit lors de la construction de votre application.

Source: https://www.urbanairship.com/blog/watch-list-ios-8-opt-in-changes

51
gmat1014

  Cette matrice pourrait aider. A gauche, elle indique si la méthode "didReceiveRemoteNotification:" sera appelée ou non. Deux autres colonnes sont liées à la définition de l'application. Paramètres -> Votre application. Si votre application prend en charge les notifications et l'actualisation de l'application en arrière-plan. Regardez dans la matrice pour vérifier quand votre application recevra Push Push en mode silencieux.

19
GameBegins

Les autres réponses sont bonnes. Mais ce ne sont pas des réponses officielles.

La réponse official est dans Nouveautés dans les notifications WWDC 2015 video:

Les notifications silencieuses sont activées par défaut. L'utilisateur n'a pas besoin de approuvez votre - ne donne pas la permission à votre application de les utiliser, et vous pouvez simplement commencer à les utiliser sans demander la permission à l'utilisateur . Mais les notifications silencieuses sont le mécanisme derrière l'application d'arrière-plan rafraîchir. À tout moment, vous savez que l'utilisateur peut accéder aux paramètres et à les désactiver. Vous ne pouvez donc pas compter sur leur disponibilité constante. Vous Je ne sais pas si l'utilisateur le désactive, et vous n'obtenez pas de notification plus. Cela signifie également que les notifications silencieuses sont livré avec le meilleur effort. Cela signifie que lorsque la notification arrive sur le périphérique de l'utilisateur, le système va en faire les choix.

Pour plus voir cette image et cette réponse

0
Honey