检测特定的localNotification已打开

时间:2016-08-22 10:42:09

标签: ios swift push-notification location uilocalnotification

我正在安排计时器并为用户发送一些关于某些数据的本地通知,例如 - 如果附近有一些商店。

func configureNotification(shop: Shop) {
    let notification = UILocalNotification()
    notification.fireDate = NSDate(timeIntervalSinceNow: 0)
    notification.alertBody = "There is a store \(shop.name) near!"//Localized().near_shop_string + shopName
    notification.alertAction = "Swipe to see offer!"//Localized().swipe_to_see_string
    notification.soundName = UILocalNotificationDefaultSoundName
    UIApplication.sharedApplication().scheduleLocalNotification(notification)
}

当应用程序在后台运行时,如果用户坐标附近有一些商店,则会有本地通知。

例如,收到三个关于不同商店的本地通知,用户滑动第二个,并使应用程序处于活动状态。

问题是,要从启动applicationDidBecomeActive的具体通知中识别一些launcOptions,就像来自服务器的推送通知一样?任何解决方案?

1 个答案:

答案 0 :(得分:1)

您需要在didReceiveLocalNotification委托方法

中处理它
func application(application: UIApplication!, didReceiveLocalNotification notification: UILocalNotification!) {
        // do your jobs here
}

notification param将包含每个通知的信息。

launchOptions还有一个包含通知的密钥UIApplicationLaunchOptionsLocalNotificationKey

你可以像

那样得到它
let localNotification:UILocalNotification = launchOptions.objectForKey(UIApplicationLaunchOptionsLocalNotificationKey)