当在后台状态下收到信标信号时,是否可以触发Web服务并根据其响应进行操作?
我可以在后台设置信标范围,但在发送本地通知之前,我应该检查网络服务是否通知。任何人都可以提出任何可行的方法来做到以下是现在的代码。
-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region {
CLBeacon *beacon = [[CLBeacon alloc] init];
beacon = [beacons lastObject];
if (beacon.proximity == CLProximityUnknown) {
NSLog(@"Unknown");
}
else if (beacon.proximity == CLProximityImmediate) {
NSLog(@"Immediate");
//Here I should trigger a web-service with the beacon details to check whether to send local notification or not
}
else if (beacon.proximity == CLProximityNear) {
NSLog(@"Near");
//Here I should trigger a web-service with the beacon details to check whether to send local notification or not
}
else if (beacon.proximity == CLProximityFar) {
NSLog(@"Far");
}
}
答案 0 :(得分:0)
如果您还设置了监控,则只能在后台进行范围调整。在监控回调触发后(didEnterRegion
或didExitRegion
),您的应用将在后台开始运行约10秒钟,然后再次重新启动。在此期间,如果您设置的代码如图所示,您将获得范围回调。
如果您的网络服务响应足够快,这将有效。如果服务器运行缓慢或连接不良,响应可能无法在10秒内恢复,在这种情况下,通知将永远不会出现。