您可以在退出区域时对 ibeacon 通知应用时间限制吗?
Posted
技术标签:
【中文标题】您可以在退出区域时对 ibeacon 通知应用时间限制吗?【英文标题】:Can you apply time restrictions for ibeacon notifications when exiting a region? 【发布时间】:2020-03-09 14:50:56 【问题描述】:我已将 iBeacon 实施到应用程序中,以便它可以将应用程序从暂停或终止状态短暂唤醒。发送推送通知,提示用户如果愿意打开应用程序。
问题是,当用户退出然后再次进入区域时,会发送另一个通知。例如,在购物中心,用户可以走过许多信标(进入和退出区域)。他们可能不想要的是烦人的大量通知。
有没有一种方法可以控制或限制用户收到的通知数量?例如时间限制?一旦收到通知,那么用户在 15 分钟或 30 分钟内不会收到另一个通知?
必须有一个解决方案,因为我确信 Apple 不希望用户收到很多用户不想要的通知。
【问题讨论】:
这篇文章中没有足够的信息让你得到一个好的答案。我们需要查看您尝试过的方法、有效的方法、无效的方法以及您遇到的任何错误。请参阅Link,了解如何提出一个好问题,以便获得更好的答案。 【参考方案1】:ios SDK 没有内置工具来防止在特定时间段内发送多个通知。但你是对的,这是一个非常普遍的问题。解决方案就是添加一点编程逻辑。
这是一个典型的方法:
每次发送通知时,记录下发送时间的时间戳。将其存储在手机的永久存储中,因此即使用户重新启动应用程序或重新启动手机,您也会记录最后一次发送通知的时间。
UserDefaults.standard.set(Date().timeIntervalSince1970,
forKey: "lastNotificationSentTime")
在您发送通知之前,请查看您上次发送通知的时间。如果它太新,请禁止发送新通知。
let lastNotificationTime = UserDefaults.standard.value(forKey: "last") as? Double ?? 0.0
if Date().timeIntervalSince1970 - lastNotificationTime < 60.0
print("Not sending notification because I just sent one in the last 60 seconds.")
else
// TODO: Send notification here
【讨论】:
为什么要感谢您的建议,我会尝试这种方法。我本以为这可能是很多人遇到的问题。我会让你知道我是怎么过的:)以上是关于您可以在退出区域时对 ibeacon 通知应用时间限制吗?的主要内容,如果未能解决你的问题,请参考以下文章