iOS'ta Web Push Bildirimleri Next.js ile Çalıştırmak
iOS'ta web push bildirimleri ayarlamak masaüstünden çok farklı. Apple Developer hesabı ve Capacitor/Cordova olmadan yapılabiliyor, ama tuzaklar var. iOS 16.4 ve sonrasında destekleniyor, fakat fiziksel cihazda test etmeden fark etmediğin detaylar seni saatlerce takılı tutabilir.
Birinci sorun: Safari'de PushManager yok. Düzenli Mobile Safari'de `window.PushManager` tanımsız kalıyor. Sadece PWA'nın standalone modunda (display-mode: standalone) çalıştığında ortaya çıkıyor. Eğer sadece `window.Notification` kontrolü yapıyorsan iOS kullanıcılarında arayüz bozulur. Önce standalone modunu kontrol etmen gerekiyor. Eğer kullanıcı Mobile Safari'deyse, Paylaş "Ana Ekrana Ekle" talimatlarını göster.
İkinci tuzak: sessiz arka plan bildirimleri çalışmıyor. Service worker push olayını aldığında `self.registration.showNotification()` çağırmazsan, Apple sessizce geçersiz kılar. Bildirim göstermeyen push olayları hiçbir işe yaramıyor. Masaüstü tarayıcılar bunu sınırlamıyor, ama iOS katı kuralı var.
Üçüncüsü: bildirim izni kalıcı değil. iOS, PWA'yı silersen ya da uzun süre kullanmazsan, izin otomatik iptal olabilir. Kullanıcıyı düzenli bildirim göndermek için teşvik etmen gerekiyor, aksi halde izin kaybolur.
Next.js'de service worker ayarlanırken, push olayını doğru yapılandır: bildirim başlığı, simgesi ve eylemi dahil et. iOS, simgesiz veya başlıksız bildirimleri görmezden gelebilir. Test ederken cihazı uyanık tut; uyku modundayken bazı push olayları kaçabilir.
Bu tuzakları bilmek sana hafta sonu harcamasını kurtarabilir. iOS push, masaüstü gibi basit değil ama bir kez doğru yapınca sorunsuz çalışıyor.
0 yorum