如何在 iOS / Swift3 中限制来自 EstimoteSDK 的多个通知?
How to restrict multiple notification from EstimoteSDK in iOS / Swift3?
我实现了 Estimote SDK 并添加了信标 ranging/scanning 委托方法。现在,我想在设备刚进入信标区域时触发本地通知。在这里,我面临本地通知的问题。
当我进入信标区域时,我收到了很好的通知,但它会在随机间隔后重复多次。我不止一次收到本地通知。
第二个问题是,有没有办法清除通知区域中触发的通知。因为我一次只想显示 1 个通知。所以,当它触发本地通知时,它应该从通知区域清除存在的通知,如果已经有的话。
我尝试使用 cancelLocalNotification 和 cancelAllLocalNotifications,但没有删除通知。
这是我的实现代码:
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" 方法,它不会从通知中心清除所有以前的通知。
我实现了 Estimote SDK 并添加了信标 ranging/scanning 委托方法。现在,我想在设备刚进入信标区域时触发本地通知。在这里,我面临本地通知的问题。 当我进入信标区域时,我收到了很好的通知,但它会在随机间隔后重复多次。我不止一次收到本地通知。
第二个问题是,有没有办法清除通知区域中触发的通知。因为我一次只想显示 1 个通知。所以,当它触发本地通知时,它应该从通知区域清除存在的通知,如果已经有的话。
我尝试使用 cancelLocalNotification 和 cancelAllLocalNotifications,但没有删除通知。
这是我的实现代码:
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" 方法,它不会从通知中心清除所有以前的通知。