我希望在信标进入该区域时显示单个通知。我使用了以下代码:
func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
if region is CLBeaconRegion {
BeaconNotificationFound()
}
}
位置经理和地区是正确的。唯一的问题是,使用此功能没有任何反应。 我该怎么办?
这是上面的代码:
let locationManager = CLLocationManager()
let region = CLBeaconRegion(proximityUUID: UUID(uuidString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0")!, identifier: "AirLocate")
override func viewDidLoad() {
super.viewDidLoad()
//Darf Standort genutzt werden?
locationManager.delegate = self
if (CLLocationManager.authorizationStatus() != CLAuthorizationStatus.authorizedWhenInUse) {
locationManager.requestWhenInUseAuthorization()
}
locationManager.startRangingBeacons(in: region)
locationManager.startMonitoring(for: region)
}
答案 0 :(得分:0)
听起来你没有收到didEnterRegion
方法的回调。要检查的一些事项:
<key>NSLocationWhenInUseUsageDescription</key><string>This app needs to access your location so it can tell when you are near a beacon.</string>
确保系统提示您输入位置信息并确实已授予它。签入设置 - &gt; [您的应用名称] - &gt;位置,并验证它说“允许位置访问”的复选标记不是从不。“
确保蓝牙已开启。
通过将应用程序置于前台并关闭信标至少60秒来强制退出区域。完成后,重新打开信标。
如果上述方法均无效,请使用现成的信标检测器应用程序(如Locate或AirLocate)验证发送时是否可以看到您的信标。如果使用其中一个应用程序,则必须在应用程序中配置UUID以进行检测。