2016-08-22 51 views
0

我正在調度計時器並向用戶發送一些關於某些數據的本地通知,例如 - 如果附近有商店。檢測到特定的localNotification打開

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

你需要處理它在didReceiveLocalNotification委託方法

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

notification PARAM將包含所有的通知信息。

另外launchOptions有一個包含通知的密鑰UIApplicationLaunchOptionsLocalNotificationKey

你可以得到它像

let localNotification:UILocalNotification = launchOptions.objectForKey(UIApplicationLaunchOptionsLocalNotificationKey) 
+0

OK,酷,我將獲得3個通報,並處理它們,但我怎麼可以從哪些具體的通知應用變得活躍知道嗎? –

+0

已更新的答案! – iSashok

+0

啓動選項可從didFinishLaunchingWithOptions方法中獲得 如果應用程序未關閉,只發送到後臺,此方法不會執行 –