Zoeken…


parameters

parameters Details
manager CLLocationManager-referentie
regio CLRegion kan een cirkelvormig gebied zijn (geofence of bakengebied)
bakens Array van CLBeacon bevat alle bereikbakens

Opmerkingen

Bakens zijn IOT-objecten. We richten ons op die welke voldoen aan het iBeacon-protocol een Apple-standaard. Elk baken is een eenrichtingsapparaat dat 3 dingen verzendt

  1. UUID
  2. groot
  3. mineur

We kunnen iBeacons scannen door ons CLLocation manager-object in te stellen om te scannen op beacons voor bepaalde UUID. Alle bakens met de gegeven UUID worden gescand.

CLLocation manager geeft ook een oproep bij binnenkomst en uitgang van de bakenregio.

iBeacon Basisbediening

  1. Bewakingsbakens instellen
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. Locatiemanager in en uit regio
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. Locatiemanager bereik baken
func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion) {
    print(beacons.first.major)
}

Specifieke bakens scannen

 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

Variërende iBeacons

Eerst moet u toestemming vragen voor locatieservices

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

Dan kunt u alle informatie van didRangeBeacons binnen 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow