Swift GeoFencing UILocalNotification不起作用

时间:2015-11-27 04:39:50

标签: swift uilocalnotification geofencing

我正在迅速开展地理围栏。我正在开始监控特定区域和我的委托方法

locationManager(manager: CLLocationManager, didEnterRegion region: CLRegion)

我正在提出像这样的本地通知

func locationManager(manager: CLLocationManager, didEnterRegion region: CLRegion) {
    if region is CLCircularRegion {
       // mappleManager.handleRegionEvent(region)
        let notification = UILocalNotification()
        notification.alertBody = "Entry!"
        notification.alertAction = "be awesome!"
        notification.soundName = UILocalNotificationDefaultSoundName
        notification.userInfo = ["id": "id"];
        notification.fireDate = NSDate(timeIntervalSinceNow: 1)
        UIApplication.sharedApplication().scheduleLocalNotification(notification)

    }
}

所以它的工作正常,如果我遇到一个地区,我会得到一个本地通知。

但如果有人点击此通知并启动了应用,我想为此打开另一个视图控制器

if(launchOptions != nil) {
        window?.rootViewController?.view.backgroundColor = UIColor.cyanColor();

        if let notification:UILocalNotification = launchOptions?[UIApplicationLaunchOptionsLocalNotificationKey] as? UILocalNotification {
            window?.rootViewController?.view.backgroundColor = UIColor.blackColor();
            if let userInfo = notification.userInfo {
                window?.rootViewController?.view.backgroundColor = UIColor.blueColor();
                if let id = userInfo["id"] as? String {
                    window?.rootViewController?.view.backgroundColor = UIColor.redColor();
                }
            }
        }
    }

我不知道在这种情况下如何调试应用程序启动但是现在我正在更改视图的背景颜色。因此,当我单击本地通知时,我在视图中获得了cyanColor,这意味着下面的行失败了

if let notification:UILocalNotification = launchOptions?[UIApplicationLaunchOptionsLocalNotificationKey] as? UILocalNotification {
            //code here
        }

因为我在此行上方写了青色代码。

这里我没有理解为什么它失败,因为通知是UILocalNotification,然后为什么这一行失败。

还有一个,我想告诉它唯一发生的情况如果是geo fens,我会在20秒后从我的viewDidLoad安排相同的通知然后关闭应用程序它工作正常但是如果我从

显示它
locationManager(manager: CLLocationManager, didEnterRegion region: CLRegion)

然后它给我青色。

任何伙伴都可以帮助我,我误会了吗?

0 个答案:

没有答案