Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.

Swift 3 - Send Multiple Local Notification

0 oy
63 kez görüntülendi
10, Nisan, 2017 ios development kategorisinde ibolat tarafından soruldu

Merhaba Arkadaşlar,

Konu başlığından anlaşılacağı gibi uygulamada 20 saniyede bir arkaplanda sorgu yapan bir yapı var bu sorgudan her kayıt geldiğinde farklı bir bildirim göndermek istiyorum. Buradaki resimdeki gibi görünecek.

1 cevap

0 oy
11, Nisan, 2017 yasin tarafından cevaplandı

Uygulama arkaplandayken 20 saniyede bir sorgu yaptırman pek mümkün değil.
konuyla ilgili bir soruya yaptığım yorumu şuradan görebilirsin.

11, Nisan, 2017 ibolat tarafından yorumlandı

Yasin abi çok uzun süre çalıştırmadım ama ekte'kine benzer bir yapı ile bildirim alıyorum şuan sürekli uygulama arkaplanda oldukça çalışıyor...

11, Nisan, 2017 yasin tarafından yorumlandı

hımm. Bunu böyle kullanmamalısın ama.
backgroundTask sadece uygulama arka plana geçtiğinde tamamlanmamış görevlerin yarım kalmaması için kullanılmalıdır ve görev tamamlandığında endBackgroundTask ile bitirilmelidir.
backgroundTask sürekli çalışmaz, 600 saniye kadar filan çalışır en fazla. o da sistemin o an ki durumuna göre değişkendir.
ayrıca amacı dışında kullanımı uygulamanın red edilmesine de neden olabilir.

senin istediğin gibi yani, uygulama background'dayken aralıklarla bir request işleminin gerçekleştirilmesi için capabilities/background modes'u açmalı ve background fetch'i işaretlemeli ve ilk cevabımda verdiğim link'de sorulan sorudaki gibi bir yapı kurmalısın.

şuraya da bir göz atmanı öneririm.

11, Nisan, 2017 ibolat tarafından yorumlandı

Anladım yasin abi yapıyı değiştirmem gerekecek. Benim uygulamanın bildirim göndereceği durumu şöyle abi anlatıyımda ona uygun bir yapı söylersen onu kullanayım.. şimdi benim uygulama bi veri tabanına select atıyor belirleyeceğim aralıklarda ( 1dk. felan ideal benim için ) cevap gelirse gelen cevabı bildirim gönderecek sabah 08:00 - akşam 17:00 aralığında yani mesai saatlerinde bu sorgu aktif olarak çalışması lazım...

11, Nisan, 2017 yasin tarafından yorumlandı

push notification öneririm.
select atacağın veritabanında bir değişiklik olduğunda, kullanıcılara remote notification kullanarak bildirim yolla.
hatta göndereceğin apns payload'ı içerisine de hangi habere sorgu yapılacağını belirtir bir url veya id filan koy.
kullanıcı bildirimi alıp açtığında, uygulama gelen bildirimin içerisindeki url/id artık her neyse, onu kullanarak bir istekte bulunsun.
bir sürü açıdan tasarruf etmiş olursun.
hem kullanıcıların habire yeni bir şey var mı diye sunucuna gereksiz istek yapmalarının önüne geçersin.
uygulama tarafındaki gecikmeleri önlersin. (background fetch'de uygulamanın ne zaman istekte bulabileceğini belirleyemiyorsun çünkü. 15~20 dakika gecikmeli olabilir background fetch istekleri )
hatta dahada ileri giderek, kullanıcıların bulunduğu time zone'a / ip bazlı lokasyon veya dil'e göre göndreceğin bildirimleri özelleştirirsin.

gibi gibi.

11, Nisan, 2017 ibolat tarafından yorumlandı

Anladım abi çok teşekkür ederim. şimdi oluşturdum certifica device token aldım bunu test edebileceğim bi site varmı bildiğiniz bi kaç yerde denedim ama hata verdi şimdi onlara bakıyorum.

11, Nisan, 2017 ibolat tarafından yorumlandı

Bununla halletim abi.

11, Nisan, 2017 ibolat tarafından yorumlandı

Yasin abi ben şimdi projeme APNs Auth Key ve certifica oluşturdum denemesini yaptım yukarıdaki linkte indirdiğim program ile bildirim gönderebiliyorum. Ben şimdi kendi uygulamamda bunu nasıl kullanacam anlamadığım nokta 60 saniyede bir sorgu yapmak ve sonuca göre bildirim göndermek istiyorum ya bunu nasıl sağlayacağım. :/

11, Nisan, 2017 yasin tarafından yorumlandı

ibrahim şimdi çıkmam gerekiyor. Yarın detaylı bakabilirim ancak.
Ama şunu yapmalısın.
Öncelikle her kullanıcıdan devicetoken almalı ve aldığın devicetoken'ı birşekilde sunucu tarafına yollamalı ve veritabanında ayrı bir tabloya kaydedilmesini sağlamalısın.
Tabi bu devicetoken'ların gönderilmesi esnasında cihaza ait işe yarayacak bir takım ekstra bilgileride almak faydalı olacaktır. cihaz tipi, cihaz dili, time zone gibi gibi.
Öncelikle uygulama üzerinde bunları veritabanına yollayabilecek, sunucu tarafında da bunları alıp veritabanına yazabilecek bir yapı kur.

...