一个易于使用的库,允许您在用户进入或退出指定位置时实现应用的后台更新。
在 iOS7 及以上版本中,如果您已在 Info.plist
中启用了 UIBackgroundMode
的 fetch
设置,将显示一个附加设置。这允许您根据用户的偏好运行新式的后台更新,同时仍然可以访问旧式的基于位置的后台更新。
如果您使用 CocoaPods,只需将以下内容添加到您的 Podspec 中。
pod 'SJOPaperboy', '~> 2.0.0'
让您的 AppDelegate
类拥有一个 CLLocationManager
属性。
@property (strong, nonatomic) CLLocationManager *paperboyLocationManager;
然后,在 application:didFinishLaunchingWithOptions:
中添加以下代码
self.paperboyLocationManager = [SJOPaperboyLocationManager sharedLocationManager];
[[SJOPaperboyLocationManager sharedInstance] setLocationChangedBlock:^{
//Perform your background updates here.
}];
为了允许用户添加地理围栏位置,显示 SJOPaperboyViewController
SJOPaperboyViewController* paperboyViewController = [[SJOPaperboyViewController alloc] init];
您可以通过编辑 Paperboy.strings
来自定义视图控制器的一些元素。
参阅所包含的示例项目以获取更多实现细节。
SJOPaperboy
需要依赖 CoreLocation
(用于确定用户位置)和 AddressBookUI
(用于格式化地址字符串)框架。如果您不使用 CocoaPods,请确保在目标的 'Build Phases' 下的 'Link Binary with Libraries' 中添加它们。
感谢 Marco Arment 提供的 IPInsetLabel
。
受 News.me、Digg 和 Instapaper(以及许多其他)功能的启发。
此项目根据 MIT 许可证提供。
版权(C)2013 Sam Oakley
在此特此授予任何获得此软件和相关文档副本(“软件”)的任何人免费使用软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向获得软件的人提供这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或其主要部分中。
本软件提供“原样”状态,不提供任何形式的质量保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权持有人不应承担任何索赔、损害或其他责任,无论是因合同行动、侵权或其他任何方式而产生的,无论是否与软件或其使用或其他与软件有关的方式有关。