如何在 iOS / Swift3 中限制来自 EstimoteSDK 的多个通知?

How to restrict multiple notification from EstimoteSDK in iOS / Swift3?

我实现了 Estimote SDK 并添加了信标 ranging/scanning 委托方法。现在,我想在设备刚进入信标区域时触发本地通知。在这里,我面临本地通知的问题。 当我进入信标区域时,我收到了很好的通知,但它会在随机间隔后重复多次。我不止一次收到本地通知。

第二个问题是,有没有办法清除通知区域中触发的通知。因为我一次只想显示 1 个通知。所以,当它触发本地通知时,它应该从通知区域清除存在的通知,如果已经有的话。

我尝试使用 cancelLocalNotificationcancelAllLocalNotifications,但没有删除通知。

这是我的实现代码:

    beaconRegion.notifyOnEntry = true
    beaconRegion.notifyOnExit = true
    self.beaconManager.delegate = self
    self.beaconManager.requestAlwaysAuthorization()
    self.beaconManager.startMonitoring(for: beaconRegion)

func beaconManager(_ manager: Any, didEnter region: CLBeaconRegion) {
    if isAuthenticated == nil {
        return
    }

    let notification = UILocalNotification()
    notification.alertBody = "You are in beacon range."
    notification.fireDate = Date.init(timeIntervalSinceNow: 2)
    notification.userInfo = ["enterInBeaconRange":true]
    UIApplication.shared.presentLocalNotificationNow(notification)

}

现在如果我在通知前设置 "cancelAllLocalNotifications" 方法,它不会从通知中心清除所有以前的通知。