UILocalNotification只显示一次

时间:2015-03-11 18:07:06

标签: swift uilocalnotification

我有一个应用来管理一些iBeacons并向我发送通知。

我的问题是我不知道为什么在后台它只向我显示一个通知。在重新启动程序之前,它不再显示另一个。

代码如下。 以下代码需要获得许可。

if(application.respondsToSelector("registerUserNotificationSettings:")) {
        application.registerUserNotificationSettings(
            UIUserNotificationSettings(
                forTypes: UIUserNotificationType.Alert | UIUserNotificationType.Badge,
                categories: nil
            )
        )
    }

这是允许我发送通知的功能

func sendLocalNotificationWithMessage(message: String!){
    let notification: UILocalNotification = UILocalNotification()
    notification.alertBody = message
    UIApplication.sharedApplication().scheduleLocalNotification(notification)
    NSLog("\(message)")
}

并切换didRangeBeacons函数

switch(nearestBeacon.minor){
        case 40899:
            for v in iceAds{
                if (!v.accepted && v.zone == zone){
                    sendLocalNotificationWithMessage("\(v.nameAd):  \(v.descriptionAd)")
                    beaconAd = v
                    showAd()

                    return
                }
            }
            break;
        case 21750:
            for v in blueberryAds{
                if (!v.accepted && v.zone == zone){
                    sendLocalNotificationWithMessage("\(v.nameAd):  \(v.descriptionAd)")
                    beaconAd = v
                    showAd()

                    return
                }
            }
            break;
        case 47846:
            for v in mintAds{
                if (!v.accepted && v.zone == zone){
                    beaconAd = v
                    sendLocalNotificationWithMessage("\(v.nameAd):  \(v.descriptionAd)")
                    showAd()

                    return
                }

            }
            if (zone == 3){
                if (newProdArray()){
                    sendLocalNotificationWithMessage("Veja os produtos que lhe faltam comprar")
                    showListAdded()
                }
            }
            break;
        default:
            return
        }

我还启用了后台功能(位置更新和使用蓝牙LE配件)。还将必需的背景模式添加到我的plist文件中。

如果你能指出问题所在,我将非常感激。

1 个答案:

答案 0 :(得分:0)

我不认为你可以在后台确定范围 - 背景模式iBeacon不需要BLE

这样的范围也会耗尽很多电池