设置监控信标
func initiateRegion(ref:BeaconHandler){ let uuid: NSUUID = NSUUID(UUIDString: "<UUID>") let beacon = CLBeaconRegion(proximityUUID: uuid, identifier: "") locationManager?.requestAlwaysAuthorization() //分区管理器对象 beacon?.notifyOnEntry = true beacon?.notifyOnExit = true beacon?.notifyEntryStateOnDisplay = true locationManager?.startMonitoringForRegion(beacon!) locationManager?.delegate = self; // 检查信标监视是否可用于此设备 if (!CLLocationManager.isMonitoringAvailableForClass(CLBeaconRegion)) { print("error") } locationManager!.startRangingBeaconsInRegion(self.beacon!) }
位置经理进入和退出区域
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!) } }
位置管理器范围信标
func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion) { print(beacons.first.major) }