- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在开发一款新应用,它通过地理围栏利用基于位置的提醒。
据我所知,为了做到这一点,应用程序必须通过以下方式请求授权:
CLLocationManager.requestAlwaysAuthorization()
到目前为止,它按预期工作,但我很好奇“提醒”应用程序和 Omnifocus 等其他应用程序如何仅请求“使用时”或:
locationManager.requestWhenInUseAuthorization()
这些应用程序仍然能够提供基于位置的提醒,而无需始终请求授权。我还注意到这些应用程序在后台时不会触发状态栏上的“位置”图标,而我的应用程序会这样做。他们如何让这些应用程序发送这些通知?
谢谢!
D
最佳答案
在观看此处提供的 iOS 8 的 WWDC CLLocation 更新时找到了答案:
https://developer.apple.com/videos/wwdc/2014/?id=706
提醒和类似的应用程序无需 AlwaysAuthorization 即可工作,因为它们利用了 UILocalnotification 框架的变化。从iOS 8开始支持Region Based Triggering。
因此,现在如果您不需要在后台实际“启动”您的应用程序并在位置更改时执行某些操作,而只需显示通知,您可以只使用 UILocalNotification 和 RegionBased Triggering。
@NSCopying var region: CLRegion!
在iOS8中,UILocalnotification有'region'属性,对应一个CLRegion对象。
来自 Apple 文档:为该(区域)属性分配一个值会导致在用户跨越区域边界时发送本地通知。区域对象本身定义了当用户进入或退出区域时是否触发通知。此属性的默认值为 nil。
您可以为此属性或 fireDate 属性指定一个值,但不能同时指定两者。尝试安排包含区域和触发日期的本地通知会引发异常。
关于iOS Location Reminders "While Using"应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28093320/
我是一名优秀的程序员,十分优秀!