退出区域时,您是否可以对ibeacon通知应用时间限制?

问题描述 投票:0回答:1

我已将iBeacon实施到应用程序中,以便它将应用程序短暂地从暂停或终止状态唤醒。发送推送通知,如果用户愿意,它将提示用户打开应用程序。

问题是,当用户退出然后再次进入区域时,将发送另一个通知。例如,在购物中心中,用户可以走过许多信标(进入和离开区域)。他们可能不想要的是很多使他们烦恼的通知。

您是否可以控制或限制用户收到的通知数量?例如时间限制?收到通知后,用户将在15分钟或30分钟等时间内不会收到另一个通知?

必须有一种解决方案,因为我确定Apple不会希望用户收到用户不希望的大量通知。

notifications ibeacon clbeaconregion
1个回答
0
投票

[iOS SDK没有内置工具可防止在特定时间段内发送多个通知。但是您是正确的,这是一个非常普遍的问题。解决方案是只添加一点编程逻辑。

这是典型的方法:

  1. 每次发送通知时,记录发送通知的时间戳。将此存储在手机的持久存储中,因此,即使用户重新启动应用程序或重新启动手机,您也会记录上次发送通知的时间。

    UserDefaults.standard.set(Date().timeIntervalSince1970, 
                              forKey: "lastNotificationSentTime")
    
  2. 发送通知之前,请检查上次发送通知的时间。如果时间太短,请禁止发送新的通知。

    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
    }
    
© www.soinside.com 2019 - 2024. All rights reserved.