我正在开发一个位置感知的iOS应用程序,该应用程序在iBeacon附近时会发出本地通知。我已将地理围栏设置为在设备距离信标约5米时触发。
接收通知工作正常,但只有在解锁设备(触摸ID或密码)或使用睡眠唤醒按钮打开电源(显示时钟)时,我才会收到通知。
我能做些什么,通知将唤醒设备,以便显示屏亮起/振动/播放声音,例如iMessage。
最佳答案
如果您使用的是iBeacons,则实际上不需要使用地理围栏。您要做的是通过“核心位置”使用监视,如下所示:
CLBeaconRegion *beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:uuid.UUIDString];
[self.locationManager startMonitoringForRegion:beaconRegion];
beaconRegion.notifyEntryStateOnDisplay = YES;
beaconRegion.notifyOnEntry = YES;
beaconRegion.notifyOnExit = YES;
监视信标区域后,当您通过以下核心定位方法遇到该信号时,该应用程序将自动进入和退出:
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region;
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region;
在这些方法中,您想显示本地通知的位置。
请注意,对于iOS 7.0及更高版本,您需要在info.plist中输入NSLocationAlwaysUsageDescription,以便获得与iBeacons一起使用的定位服务。