bildiginiz gibi apns notification'larını appDelegate içerisindeki didReceiveRemoteNotification metoduyla alıyoruz.
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
// payload'a eklediğiniz her key "aps" altında yer alıyor dolayısıyla bunun içine bakmamız lazım
if let apsPayloadContent:AnyObject = userInfo["aps"] {
//aps payload'ımızın içerisinde "pid" key'iyle girdiğimiz custom bir içeriğimiz olduğunu farz edelim.
if let customData:String = apsPayloadContent["pid"] as? String {
// aldığımız custom içeriğimizi daha sonra bir local notification'la post edelim.
// ve elbette bir yerlere post edilen bu notification'ı karşılayabilecek bir observer ekleyeceksiniz'ki uygulama notification aldığında yapmak istediğiniz aksiyon tetiklenebilsin.
NSNotificationCenter.defaultCenter().postNotificationName("remoteNotificationReceived", object: customData)
}
}
}
şimdi viewController'içerisinde neler yaptığımıza bir bakalım;
override func viewDidLoad() {
super.viewDidLoad()
// örnek vermek gerekirse mainViewController'ımız içerisinde bu local notification'ı karşılayabilecek ve yapmak istediğiniz aksiyonu tetikleyecek bir observer'ekleyelim.
NSNotificationCenter.defaultCenter().addObserver(self, selector: "remoteNotificationReceiveAction:", name: "remoteNotificationReceived", object: nil)
}
func remoteNotificationReceiveAction(data:NSNotification) {
// local notification'la post ettiğimiz içeriğimiz string olduğu için burada da string olarak karşılıyoruz.
if let customData:String = data.object as? String {
// böylece customData'mızı viewController'içinde yer alan bir metoda transfer ettik, artık bundan sonra yeni bir view veya viewController present etmek istiyorsanız buradan devam edebilirsiniz.
}
}