Knuff ile Push Notification Testi

Knuff, ıslak terliğe çorabınızla bastıktan sonra cebinizden çıkardığınız yeni kuru çoraplarınızdır. Sayesinde push notification testimizi servis kullanmadan test edebiliyoruz. İşte böyle bir nimet bu Knuff.
İndirmek için → Knuff
Xcode üzerinde push notification için gerekli geliştirmeleri yaptığınızı ve başarılı bir şekilde bildirimleri aldığınızı varsayıyorum. Hadi çalıştıralım şu lanet olası şeyi !
Device Id
Device id veya device token da denilir. Herhangi bir uygulama için her yükleyişinizde cihazınıza özel oluşturulan String türünde bir değerdir. Uygulamayı silip tekrar yüklediğinizde sıfırlanır. Identifier veya UID ile karıştırmayın.
AppDelegate sınıfında didRegisterForRemoteNotificationsWithDeviceToken metodunu kullanarak device id’yi öğrenebiliriz.
Az sonra Knuff’da kullanacağımız için lütfen id’yi bi yere not alın. Unutmayın, uygulamayı silip tekrar yüklediğinizde device id değişir.
Tam buradan Knuff’ı indirmiştik. Açıyoruz ve önümüze şöyle bir ekran geliyor.

1- Custom: Uygulamamızın sertifikası ile bildirim göndereceğimiz yer.
Knuff iOS: Knuff’ın çalıştığından emin olmak için iOS uygulamasını indirerek bildirim gönderebilirsiniz. Öncelikle uygulamayı açıp device id’nizi almasına izin verin. Sonra MacOS uygulamasında Knuff iOS’’dan devices’ı seçin ve kendi telefonunuzu seçin.
2- Choose butonu ile uygulamamızın push notification sertifikasını seçiyoruz. Xcode’da kullandığınız provizyonun ortamı ile push notification’ın ortamının aynı olduğundan emin olun. İkisi de ya development ya da distribution olmalı. Örneğin ben Xcode’da development provizyonunu kullandığım için choose butonuna basıp uygulamamın“Apple Development IOS Push Services: com.xxx.xxx” sertifikasını seçiyorum.
3- Device id’mizi buraya yapıştırıyoruz.
4- Gönderilen bildirimler json formatındadır. Bu json’a ekleme yaparak bildirime göre aksiyon alabiliriz.
Test
Son olarak Knuff’daki bildirim json’ım şu şekilde;
Uygulamayı arka plana atın veya tamamen kapatın ve push butonuna basın.

Bildirime Göre Aksiyon Alma
Bildirimleri 2 gruba ayırmak istiyorum; uygulama kapalıyken gelen bildirimler, uygulama açıkken gelen bildirimler.
Uygulama Açıkken Gelen Bildirimler
didReceiveRemoteNotification metodunda kontrol ederiz.
Uygulama önyüzde açıkken bildirim gelirse bildirim ekranında göremezsiniz.
Uygulama Kapalıyken Gelen Bildirimler
Uygulama tamamen kapalıyken gelen bildirimi didFinishLaunchingWithOptions metodunda kontrol etmemiz gerekiyor.
AppDelegate sınıfında actionType adında bir String oluşturdum. Daha sonra bu sınıfı çağırarak actionType değerine erişeceğiz. Uygulama başladığında ilk açılacak controller’ın viewDidLoad metodunda actionType’ı kontrol ediyoruz.
Aldığımız değere göre artık istediğimiz aksiyonu alabiliriz.