Question

D'après ce que j'ai compris, les identifiants mineurs et majeurs dans les balises sont utilisés pour la segmentation (par exemple, majeur pour les magasins physiques et mineur pour différents emplacements au sein d'un magasin donné).

Ensuite, comme une balise ne fournit pas de charge utile riche, je suppose que ces identifiants seront exploités pour mériter des informations adéquates à l'utilisateur - et probablement via des services Web.

Enfin, les UUID seraient destinés à l’ensemble de la flotte.D'après ce que j'ai compris, une application (par exemple pour un magasin de détail) est susceptible de s'inscrire pour un ou plusieurs UUID (généralement un, plusieurs pour les architectures complexes ou la surcharge de services).

Au niveau de l'application, vous pouvez (1) rechercher des balises lorsque l'application est au premier plan (avec des capacités de capture pour les identifiants mineurs/majeurs) et (2) détecter la sortie/entrée de la région (monitoringForRegion:) en arrière-plan + délivrer UILocalNotification pour réveiller l'application (en revenant à (1)).

Parlons maintenant de l'utilisateur final.Je pense que nous pouvons supposer que l'utilisateur moyen ne parcourra pas tout un magasin de détail avec l'application au premier plan dans sa main, et qu'il est plus susceptible de la faire fonctionner en arrière-plan.Par conséquent, le cas (2) sera le plus courant.Mais comme tous les émetteurs partageront le même UUID et que le gestionnaire de géolocalisation exécuté en arrière-plan surveille la région liée à l'UUID, les méthodes de délégation des régions didEnter et didExit risquent de ne pas être déclenchées intelligemment en fonction de la plage/configuration des émetteurs.Enfin, toutes les publicités géolocalisées intérieures que vous souhaitiez diffuser à vos clients ne seront pas reçues et captées.En effet, je crains que seul celui de l'arrivée du client en magasin soit systématiquement proposé (dans un contexte de mode arrière-plan).

Est-ce que j'ai raté quelque chose ?

Était-ce utile?

La solution

Pour formuler ce que David a dit un peu différemment :

Vous pouvez définir une région balise à l'aide d'un UUID, d'un UUID et d'une valeur majeure, ou d'un UUID + d'une valeur majeure et d'une valeur mineure.

Si vous définissez une région en utilisant uniquement l'UUID, toute balise avec cet UUID déclenchera un message didEnterRegion et le système d'exploitation traitera toutes les balises avec cet UUID comme faisant partie de la même région.

Cependant, si vous créez une région avec UUID+Major ou UUID+Major+Minor, seules les balises correspondant à ces valeurs déclencheront une notification de région.Vous pouvez avoir 2 balises avec le même UUID et la même valeur majeure l'une à côté de l'autre et des valeurs mineures différentes.Si vous avez enregistré 2 régions différentes avec une valeur UUID+Major+Minor spécifique, vous recevrez des messages d'entrée/sortie/ranging indépendants pour chaque région.Une troisième balise avec le même UUID et la même valeur majeure mais une valeur mineure différente ne déclenchera pas de notifications d'entrée/sortie.

Autres conseils

Vous avez en grande partie raison.La seule chose qui vous manque, c'est que vous pouvez surveiller 20 régions différentes simultanément, et ces régions peuvent éventuellement inclure la majeure et/ou la mineure.Vous pourriez donc déclencher plusieurs fois dans un (grand) magasin en concevant intelligemment vos identifiants iBeacon et vos moniteurs de région.

Deux mises en garde :les rappels de surveillance dans la région se déclenchent lorsque la balise arrive pour la première fois à portée (environ 50 m).Ils ne sont pas non plus simultanés.Ils peuvent prendre jusqu'à 15 minutes sur un iPhone 4S avec l'application en arrière-plan, bien que cela soit plus rapide sur un iPhone 5.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top