IOS后台服务(如在Android)启用所有的时间
在IOS上的Andorid服务是什么这将是从后台启动系统工作? 我玩巫婆信标,我想发送通知,当用户在附近的灯塔。 这是可能的IOS?
问候
您可以在后台执行操作,但在Android上不起作用。 iOS会调用一个特定的方法给你更新的机会,那么你有一个有限的时间这样做。
当应用程序返回到背景时(大约10分钟左右),仍然可以请求更多时间。 查看beginBackgroundTaskWithExpirationHandler方法
另一个解决scheme是使用重大的位置更改。 如果用户与您的应用共享他的位置,则可以在他的位置发生变化时获得回叫,并使用这个时间进行刷新。
我知道,Dropbox应用程序使用位置解决scheme将您的照片从您的相机胶卷上传到他们的服务。
简而言之,在后台任何时候应用程序都可以被暂停,例外情况是请求特定权限的应用程序(如voip应用程序或音乐应用程序)不间断执行,但是如果您请求此类权限,苹果可能会拒绝您的app store提交。你的应用程序实际上不提供任何相关的function。
是。 查看Apple的文档以进行位置监控 。
从文档
在iOS中,跟踪与您的应用程序相关的区域始终被跟踪,包括应用程序未运行时。 如果应用程序未运行时跨越区域边界,则该应用程序将重新启动到后台以处理事件。 同样,如果应用程序在事件发生时被暂停,则会被唤醒并给予短时间(大约10秒)来处理事件。 必要时,应用程序可以使用UIApplication类的beginBackgroundTaskWithExpirationHandler:方法请求更多的后台执行时间。
您可能需要为应用程序添加“位置更新”作为允许的后台模式。 我不确定是否必须启用“使用蓝牙LE配件”或“作为蓝牙LE配件”,或者可能都不是。
为要监视的UUID创build一个信标区域。 再次看到苹果的文档 。
- (void)registerBeaconRegionWithUUID:(NSUUID *)proximityUUID andIdentifier:(NSString*)identifier { // Create the beacon region to be monitored. CLBeaconRegion *beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:proximityUUID identifier:identifier]; // Register the beacon region with the location manager. [self.locManager startMonitoringForRegion:beaconRegion]; }
处理位置pipe理员的委托方法:
-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
处理事件时可能需要触发本地通知。 苹果关于本地通知的文档 。