gpt4 book ai didi

ios - 应用未运行时的 iBeacon 通知

转载 作者:IT王子 更新时间:2023-10-29 07:34:50 25 4
gpt4 key购买 nike

我设法制作了一个 iBeacon,当信标在范围内时,它会在我的 iPhone 上触发本地推送通知。当应用程序处于后台模式时,它可以完美运行。

我的问题是:即使应用程序未运行,甚至不在后台运行,我也可以触发通知吗?

我认为这是可能的,但我不确定。如果可以,我该如何实现?

谢谢!

最佳答案

是的,这是可能的,而且应该是自动的。

在您创建 CLBeaconRegion 并开始对其进行监控后,定位服务将跟踪您的手机是在该区域还是在该区域之外,即使您的应用未运行也是如此。如果您的应用程序在转换期间未运行,iOS 会将您的应用程序启动到后台几秒钟,以调用适当的 CLLocationManagerDelegate 方法。

我通过对自己的应用进行实验发现了上述行为,但也曾在 Apple 的 AirLocate 示例程序中看到过。使用 AirLocate,如果您设置监控区域然后重启手机,AirLocate 仍会在手机进入该区域后立即发送本地通知。

测试时要小心,因为有时在打开/关闭 iBeacon 后 iOS 需要 4 分钟才能识别区域状态转换。 编辑:从 iPhone 5 开始,应用程序通常会使用硬件加速在几秒钟内检测到信标,如果硬件加速不可用,最多可能需要 15 分钟。

编辑 3: 从 iOS 13 开始,您必须确保用户实际授予后台权限,而不是操作系统大力插入的“仅一次”或“使用时”权限他们呈现给用户的对话框。参见 here了解详情。

编辑 2: 从 iOS 8 开始,您需要确保已调用并成功获取 locationManager.requestAlwaysAuthorization() 作为 locationManager.requestWhenInUseAuthorization() 只允许在前台检测到信标。

我已经在 this blog post. 中发布了关于这一切如何运作的详细讨论。

关于ios - 应用未运行时的 iBeacon 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19127282/

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