当iOS应用程序处于后台状态时触发Web服务

时间:2014-09-19 10:09:18

标签: ios iphone web-services background ibeacon

当在后台状态下收到信标信号时,是否可以触发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");
      }
 }

1 个答案:

答案 0 :(得分:0)

如果您还设置了监控,则只能在后台进行范围调整。在监控回调触发后(didEnterRegiondidExitRegion),您的应用将在后台开始运行约10秒钟,然后再次重新启动。在此期间,如果您设置的代码如图所示,您将获得范围回调。

如果您的网络服务响应足够快,这将有效。如果服务器运行缓慢或连接不良,响应可能无法在10秒内恢复,在这种情况下,通知将永远不会出现。