gpt4 book ai didi

iOS Location Reminders "While Using"应用程序

转载 作者:行者123 更新时间:2023-11-29 10:33:52 25 4
gpt4 key购买 nike

我一直在开发一款新应用,它通过地理围栏利用基于位置的提醒。

据我所知,为了做到这一点,应用程序必须通过以下方式请求授权:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com