gpt4 book ai didi

ios - 在 iOS 中,是否可以在特定时间启动基于区域的地理围栏?

转载 作者:行者123 更新时间:2023-12-01 16:28:10 25 4
gpt4 key购买 nike

我的 iOS 应用(针对 iOS 8.1+)使用位置服务来确定用户是否在事件期间进入了特定区域。理想情况下,我想在事件发生前启用地理围栏,并在事件完成后将其关闭。问题是不能保证应用程序在事件开始前一小时运行,所以我在用户注册事件时打开地理围栏。这不是最好的方法,因为这意味着地理围栏的开启时间比它需要的长得多。

据我所知,没有办法在 iOS 的预定时间在后台“唤醒”应用程序。我可以使用用于更新内容的推送通知,但我不清楚 Apple 是否会拒绝这种对通知的滥用。

有什么建议么?

最佳答案

我自己一直在研究这个。

如果您可以从后端安排推送通知(“静默推送通知”,又名“内容可用”),这似乎是一个不错的选择。在现实世界的情况下,这似乎可以让您最好地控制时间。不幸的是,如果此人没有连接,它将无法工作。此外,不幸的是,您需要一个可以一次对事件进行排队的后端(不仅仅是响应输入。)如果您已经有这样的后端,并且您的应用程序仅在用户有网络覆盖时才对用户有用,这个可能是最好的选择。看来这是对该技术的适当使用,因此苹果应该批准。

我正在尝试的另一个选择是使用后台获取。您指定一个“最小间隔”以避免过多的获取。至少尝试 50% 的剩余事件时间。每次应用程序唤醒时(无论是因为用户打开它而在前台,还是因为 background-fetch 打开它而在后台),您都可以计算下一个事件的时间、更新获取间隔或启动区域监控.您应该使用“后台获取”从服务器获取信息,但似乎不需要轮询服务器,您可以轮询内部数据。我还没有完全测试这一点,但它似乎很有希望。

您可以使用重要的位置变化监控,我读过它会每隔 15 分钟或更短时间短暂唤醒您的应用程序,您可以使用时间/位置信息来决定是否打开地理围栏。我认为这与上面的“后台获取”结合使用会很好:在事件发生前几个小时或几天,您依赖后台获取,然后您可以在事件发生前几个小时使用它来打开重要的位置更改监控。 (有人猜测,地理围栏实际上比重大变化监控更省电,但您可以选择假设用户设备上的其他应用程序已经通过观察重大变化,在这种情况下,您的应用程序将自身添加到列表中的边际成本应该是最小的。)

把它们放在一起,你可以创建一个序列

background fetch -> significant location monitoring ->  geofencing

随着时间越来越近。

还有 CVisit 监控功能,它不是很了解,但据说比显着位置变化监控使用更少的功率并且调用频率更低。如果后台获取或静默远程通知无法唤醒您的应用程序,请尝试一下,请报告!

你不能(还)做一个无声的内容可用本地通知(AFAICT)。但是,也许您可​​以安排本地通知“您的事件明天开始”或说服用户单击启动地理围栏的选项。这是一个关于它的教程 http://www.appcoda.com/local-notifications-ios8/ ,操作的响应可以是 UIUserNotificationActivationMode.Background ,因此您的地理围栏可以启动(如果用户响应通知)而无需将应用程序置于前台。

自您问起已经 5 到 6 周了,您是否已经有了自己的答案?请告诉我。

关于ios - 在 iOS 中,是否可以在特定时间启动基于区域的地理围栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34055434/

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