Pourquoi une application NFC doit-elle être lancée manuellement sur iPhone ?
Parce qu'une application ne peut pas se lancer elle-même depuis un tag. Sur iOS, la lecture est amorcée par l'application qui demande une session au système, et une application qui ne tourne pas ne peut rien demander. La lecture en arrière plan est une capacité du système, non de l'application.
C'est l'application qui demande, pas le tag
Sur Android, un tag qui arrive peut faire lancer une application par le système. Le tag est, en somme, le déclencheur.
Sur iOS la direction est inversée. L'application demande au système de chercher un tag, et le système le fait tant que cette demande est active. Rien d'un tag n'atteint une application qui n'a pas demandé.
Une application qui ne tourne pas n'a formulé aucune demande : un tag présenté au téléphone n'a donc nulle part où arriver.
Prenez NFC Tools. Sur iOS, elle demande un iPhone 7 ou un modèle ultérieur sous iOS 15.6 au minimum, et l'application doit être lancée manuellement. La lecture en arrière plan est disponible à partir de l'iPhone XS et XR.
Ce qu'est réellement la lecture en arrière plan
L'exception est le système qui lit un tag de lui-même, sans qu'aucune application n'intervienne.
Même alors, c'est le système qui lit, et le résultat vous est proposé sous forme de notification plutôt que remis à une application qui attendait. La lecture en arrière plan est disponible à partir de l'iPhone XS et XR.
Il y a donc deux voies et aucune des deux n'est une application qui se réveille à cause d'un tag. L'une est une application qui demande, l'autre est le système qui remarque.
Pourquoi on se méprend sans cesse
Parce que le comportement d'Android est celui que la plupart des gens ont vu décrit, et qu'il ressemble au cas général plutôt qu'au choix d'une plateforme.
Parce que l'expression « lecture en arrière plan » suggère des applications qui tournent en arrière plan, ce qui n'est pas ce qu'elle veut dire.
Et parce qu'un téléphone qui ne fait rien n'explique rien. Un visiteur muni d'un iPhone pris en charge mais ancien approche son téléphone, obtient le silence, et conclut raisonnablement que le tag est cassé.
Énoncer clairement l'exigence sur le tag vaut mieux que toute la documentation que personne ne lira.
Concevoir en conséquence
Supposez que le contact est délibéré et le téléphone réveillé. Cette hypothèse tient sur les deux plateformes et supprime l'essentiel de la divergence.
Écrivez une adresse web, qui est ce que le système propose dans une notification et ce qui ne demande aucune application.
Imprimez une consigne là où le public intervient. Quelques mots suppriment le silence que les gens prennent pour une panne.
Et ne bâtissez jamais un enchaînement qui exige qu'une application s'ouvre d'elle-même sur iOS. Ce n'est pas un manque qu'une version future comblera, c'est le fonctionnement de la plateforme.
Questions fréquentes
Une application peut-elle s'ouvrir toute seule quand je présente un tag sur iPhone ?
Non. Une application ne peut pas se lancer depuis un tag, la lecture étant amorcée par l'application plutôt que par le tag.
Qu'est-ce que la lecture en arrière plan, alors ?
Le système qui remarque un tag de lui-même et propose le résultat sous forme de notification. La lecture en arrière plan est disponible à partir de l'iPhone XS et XR.
Android fonctionne-t-il de la même façon ?
Non. Sur Android, un tag peut faire lancer une application par le système, ce qui est le comportement attendu et qu'iOS ne fournit pas.
Une mise à jour changera-t-elle cela ?
C'est une conception plutôt qu'un oubli : ce n'est pas quelque chose sur quoi compter.