DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Fonctions Beacon
  • Présentation
  • Principe
  • Mise en place
  • Version nécessaire
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Un "beacon" est un petit boîtier capteur qui peut "dialoguer" sur un petit périmètre avec des smartphones ou tablettes par une connexion Bluetooth. La technologie utilisée est principalement celle du BTLE (Bluetooth Low Energie).
Le Beacon peut par exemple indiquer la proximité d'une oeuvre d'art dans un musée; l'application pourra afficher le texte d'explication, ou lancer une vidéo ou un fichier audio sur le sujet.
Côté commercial, un Beacon peut servir au déclenchement d'un message sur une promotion pour un produit à proximité. Un Beacon peut également servir à avertir l'usager qu'il passe à côté d'un magasin où se trouve un article qu'il cherche.
Principe
Une application demande au téléphone de la prévenir quand un ou des Beacons se trouvent à proximité. Cette application peut être immédiatement refermée et ainsi ne pas consommer de batterie.
Lorsque le téléphone détecte un Beacon, il relance l'application et transmet les informations du Beacon.
De même, le téléphone prévient l'application lorsqu'il sort de la zone d'émission du Beacon.
Mise en place
Le WLangage propose une famille de fonctions et 2 types spécifiques pour gérer les balises Beacon.
AndroidWidget Android Attention : La gestion des balises Beacon utilise sous Android le module Android Beacon Library, soumis à licence. Veuillez vous conformer à cette licence, disponible dans la licence de WINDEV Mobile.
Selon le mode d'utilisation de votre application, vous pouvez utiliser une des méthodes suivantes :
  • Méthode 1 : Détection automatique des balises Beacon
    Cette méthode consiste à lancer une détection des groupes de balises Beacon en arrière-plan avec la fonction BeaconDétecteEnArrièrePlan. Lorsqu'un groupe de balises est détecté, une opération spécifique est effectuée. Exemple :
    // Dans un musée, on souhaite déclencher la lecture (resp. l'arrêt) d'un audio-guide
    // lorsque le visiteur entre (resp. sort) d'une salle.
    // On associe à chaque balise Beacon le même UUID correspondant au musée et
    // un numéro Major correspondant à la salle dans laquelle la balise sera positionnée.
    // On dispose une balise Beacon à chaque entrée de chaque salle du musée.
    // L'application doit appeler la fonction BeaconDétecteEnArrièrePlan
    // avec un tableau de variables BeaconGroupe correspondant à chacune des salles du musée.
     
    // La procédure callback passée en paramètre à la fonction sera appelée
    // à chaque entrée ou sortie d'une pièce et fournira les informations
    // du groupe de beacons détecté permettant ainsi
    // de piloter l'audio-guide pour lire la piste audio correspondante.
     
    // UUID du musée
    sUUID est une chaîne = "f4231ab6-5ef2-6c99-4229-af6c72e0446e"
    // Création d'une variable beaconGroupe par salle
    groupeSalle1 est un beaconGroupe
    groupeSalle1.UUID = sUUID
    groupeSalle1.Major = 1
    groupeSalle2 est un beaconGroupe
    groupeSalle2.UUID = sUUID
    groupeSalle2.Major = 2
    groupeSalle3 est un beaconGroupe
    groupeSalle3.UUID = sUUID
    groupeSalle3.Major = 3
    groupeSalle4 est un beaconGroupe
    groupeSalle4.UUID = sUUID
    groupeSalle4.Major = 4
    // Lancement de la détection
    tabGroupeBeacon est un tableau de beaconGroupe = [groupeSalle1, ...
       groupeSalle2, groupeSalle3, groupeSalle4]
    // La procédure ProcDétection sera exécuté chaque fois que le mobile entrera
    // ou sortira de la zone définie par chaque groupe de beacons.
    BeaconDétecteEnArrièrePlan(tabGroupeBeacon, ProcDétection)
    PROCÉDURE ProcDétection(Groupe est un beaconGroupe, nType est un entier)
     
    SI nType = bdapSortie ALORS
    // Arrêt de la piste en cours
    RETOUR
    FIN
     
    SI nType = bdapEntrée ALORS
    SELON Groupe.Major
    CAS 1
    // Lecture de la piste de la salle 1
    CAS 2
    // Lecture de la piste de la salle 2
    ...
    FIN
    FIN
  • Méthode 2 : Détection précise des balises Beacon
    Cette méthode consiste à utiliser la détection précise (fonction BeaconDétectePrécis) pour obtenir la balise la plus proche et réaliser une opération spécifique. Exemple :
    // Dans un musée, on souhaite afficher sur l'appareil du visiteur les informations
    // sur l'oeuvre qu'il est en train de regarder. On associe à chaque balise Beacon
    // le même UUID correspondant au musée et des numéros Major et Minor
    // permettant d'identifier chaque balise de manière unique.
    // On dispose une balise Beacon à côté de chaque oeuvre du musée.
    // L'application doit appeler la fonction BeaconDétectePrécis avec une variable
    // BeaconGroupe correspondant aux balises du musée.
    // La procédure callback passée en paramètre à la fonction sera appelée à chaque fois
    // qu'une nouvelle liste de balises Beacon sera détectée. Il suffit ensuite de trouver
    // la balise la plus proche pour en déduire l'oeuvre que regarde le visiteur et afficher
    // les informations correspondantes dans l'application.
     
    // UUID du musée
    sUUID est une chaîne = "f4231ab6-5ef2-6c99-4229-af6c72e0446e"
    // Création d'une variable beaconGroupe correspondant aux balises du musée
    groupeMusée est un beaconGroupe
    groupeMusée.UUID = sUUID
    // Lancement de la détection
    BeaconDétectePrécis(groupeMusée, ProcDétection)
    PROCÉDURE INTERNE ProcDétection(tabInfo est un tableau de beaconInfoDétection)
    nDistanceMin est un entier
    BaliseLaPlusProche est un beaconInfoDétection
    POUR TOUT Information DE tabInfo
    SI nDistanceMin = 0 _OU_ Information.Distance < nDistanceMin
    BaliseLaPlusProche = Information
    FIN
    FIN
    // Affichage des informations sur l'oeuvre associée à la balise
    AfficheInfoOeuvre(BaliseLaPlusProche.Major, BaliseLaPlusProche.Minor)
    FIN

Version nécessaire

AndroidWidget Android Les fonctions de gestion des balises Beacon sont disponibles uniquement sur les appareils disposant d'une version d'Android supérieure ou égale à la version 4.3 (api level 18).
Si la fonction est utilisée avec une version antérieure du système, une erreur fatale sera déclenchée.
Pour connaître la version du système Android sur laquelle s'exécute l'application, utilisez la fonction SysVersionAndroid.
iPhone/iPadWidget IOS Les fonctions de gestion des balises Beacon sont disponibles uniquement sur les appareils disposant d'une version d'iOS supérieure ou égale à iOS 11.
Version minimum requise
  • Version 23
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 28/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale