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
- UUID
- groot
- 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
- 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!)
}
- 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!)
}
}
- 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