Recherche…


Paramètres

Paramètres Détails
directeur Référence CLLocationManager
Région CLRegion pourrait être une région circulaire (géofence ou région de balise)
balises Tableau de CLBeacon contient toutes les balises à distance

Remarques

Les balises sont des objets IOT. Nous nous concentrons sur ceux qui sont conformes au protocole iBeacon et à la norme Apple. Chaque balise est un dispositif à sens unique qui transmet 3 choses

  1. UUID
  2. Majeur
  3. Mineur

Nous pouvons analyser les balises iBeacons en configurant notre objet gestionnaire CLLocation pour rechercher les balises correspondant à un UUID particulier. Toutes les balises avec l'UUID donné seront analysées.

CLLocation manager donne également un appel sur l’entrée et la sortie de la région de balise.

Fonctionnement de base d'iBeacon

  1. Configuration des balises de surveillance
func initiateRegion(ref:BeaconHandler){
    let uuid: NSUUID = NSUUID(UUIDString: "<UUID>")
    let beacon = CLBeaconRegion(proximityUUID: uuid, identifier: "")
    locationManager?.requestAlwaysAuthorization()    //cllocation manager obj.
    beacon?.notifyOnEntry = true
    beacon?.notifyOnExit = true
    beacon?.notifyEntryStateOnDisplay = true
    locationManager?.startMonitoringForRegion(beacon!)
    locationManager?.delegate = self;
    // Check if beacon monitoring is available for this device
    if (!CLLocationManager.isMonitoringAvailableForClass(CLBeaconRegion)) {
        print("error")
    }
    locationManager!.startRangingBeaconsInRegion(self.beacon!)
}
  1. Le gestionnaire d'emplacement entre et sort de la région
func locationManager(manager: CLLocationManager, didEnterRegion region: CLRegion) {
    if(region.isKindOfClass(CLBeaconRegion)) {
        locationManager!.startRangingBeaconsInRegion(self.beacon!)
    }
}
    
func locationManager(manager: CLLocationManager, didExitRegion region: CLRegion) {
    if(region.isKindOfClass(CLBeaconRegion)) {
        locationManager!.stopRangingBeaconsInRegion(self.beacon!)
    }
}
  1. Balise de distance de gestionnaire de localisation
func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion) {
    print(beacons.first.major)
}

Numérisation de balises spécifiques

 beacon = CLBeaconRegion(proximityUUID: <#NSUUID#>, major: <#CLBeaconMajorValue#>, identifier: <#String#>) // listening to all beacons with given UUID and major value
 beacon =    CLBeaconRegion(proximityUUID: <##NSUUID#>, major: <##CLBeaconMajorValue#>, minor: <##CLBeaconMinorValue#>, identifier: <##String#>) // listening to all beacons with given UUID and major and minor value

Rangement des iBeacons

Tout d'abord, vous devez demander l'autorisation des services de localisation

let locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
// OR locationManager.requestAlwaysAuthorization()

Vous pouvez ensuite obtenir toutes les informations sur les didRangeBeacons dans didRangeBeacons

func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion) {
    for beacon in beacons {
        print(beacon.major)
        print(beacon.minor)
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow