我已经通过本地通知实施了Beacon.当ON&then设备中的蓝牙进入信标范围并且app处于"未运行"状态时,每种情况都能正常工作.但是,当设备已经处于Beacon范围内并且然后蓝牙打开时,不会调用任何代理.这是一个限制还是我错过了什么?
在用例方面,didEnterRegion和didRangeBeacons之间的确切区别是什么?我的意思是当我应该实现didEnterRegion/didExitRegion以及何时应该实现didRangeBeacons?
每个委托方法的确切功能是什么?从苹果的文档来看,它不是很清楚.
- (void)locationManager:(CLLocationManager *)manager
didEnterRegion:(CLRegion *)region
{
}
Run Code Online (Sandbox Code Playgroud)
和
- (void)locationManager:(CLLocationManager *)manager
didRangeBeacons:(NSArray *)beacons
inRegion:(CLBeaconRegion *)region
{
}
Run Code Online (Sandbox Code Playgroud) Apple拒绝了iBeacon应用,因为我在后台模式下检查了"位置更新".
我明确表示应用程序监控iBeacons,这也应该在后台运行.
Apple的回应:
"...您的应用程序声明支持Info.plist文件中UIBackgroundModes键的位置,但未声明任何需要持久位置的功能.声明支持Info.plist文件中UIBackgroundModes键位置的应用程序必须具有功能这需要持久的位置...."
我的印象是我需要打开"位置更新"作为后台模式,以便能够在后台监控CLBeaconRegions.是这样吗?