Bildirim tetikleyicileri, ağ bağlantısı gerektirmeyen yerel bildirimleri planlamanıza olanak tanır. Bu da bu bildirimleri takvim uygulamaları gibi kullanım alanları için ideal hale getirir.
Bildirim tetikleyicileri nedir?
Web geliştiricileri Web Notifications API'yi kullanarak bildirimler gösterebilir. Bu özellik, kullanıcıyı son dakika haberleri veya alınan mesajlar gibi zamana duyarlı bilgiler hakkında bilgilendirmek için genellikle Push API ile birlikte kullanılır. Bildirimler, kullanıcının cihazında JavaScript çalıştırılarak gösterilir.
Push API'nin sorunu, zaman veya konum gibi belirli bir koşul karşılandığında gösterilmesi gereken bildirimleri tetikleme konusunda güvenilir olmamasıdır. Zamana dayalı koşul örneği olarak, 14:00'te patronunuzla yapacağınız önemli bir toplantıyı hatırlatan bir takvim bildirimi verilebilir. Konum tabanlı koşul örneği olarak, marketinizin yakınına geldiğinizde süt almanızı hatırlatan bir bildirim verilebilir. Ağ bağlantısı veya pil tasarrufu sağlayan özellikler (ör. Uyku modu) push tabanlı bildirimlerin teslimini geciktirebilir.
Bildirim tetikleyicileri, bildirimleri tetikleyici koşullarıyla birlikte önceden planlamanıza olanak tanıyarak bu sorunu çözer. Böylece işletim sistemi, ağ bağlantısı olmasa veya cihaz pil tasarrufu modunda olsa bile bildirimi doğru zamanda gönderir.
Kullanım alanları
Takvim uygulamaları, kullanıcılara yaklaşan toplantıları hatırlatmak için zamana dayalı bildirim tetikleyicileri kullanabilir. Bir takvim uygulamasının varsayılan bildirim şeması, toplantıdan bir saat önce ilk uyarı bildirimini ve ardından beş dakika önce daha acil bir bildirim göstermek olabilir.
Bir TV kanalı, kullanıcılara en sevdikleri TV programının veya konferansın canlı yayınının başlamak üzere olduğunu hatırlatabilir.
Saat dilimi dönüşümü siteleri, kullanıcılarının telefon konferansları veya görüntülü görüşmeler için alarmlar planlamasına izin vermek amacıyla zamana dayalı bildirim tetikleyicileri kullanabilir.
Mevcut durum
Step | Durum |
---|---|
1. Açıklayıcı oluşturma | Tamamlandı |
2. Spesifikasyonun ilk taslağını oluşturma | Başlatılmadı |
3. Geri bildirim toplayın ve tasarımda iterasyon yapın. | Devam ediyor |
4. Kaynak denemesi | Tamamlandı |
5. Başlat | Başlatılmadı |
Bildirim tetikleyicilerini kullanma
about://flags üzerinden etkinleştirme
Notification Triggers API'yi kaynak deneme jetonu olmadan yerel olarak denemek için about://flags
dosyasında #enable-experimental-web-platform-features
işaretini etkinleştirin.
Özellik algılama
Tarayıcının bildirim tetikleyicileri destekleyip desteklemediğini öğrenmek için showTrigger
mülkünün varlığını kontrol edebilirsiniz:
if ('showTrigger' in Notification.prototype) {
/* Notification Triggers supported */
}
Bildirim planlama
Bildirim planlama, normal bir push bildirimi göstermeye benzer. Tek fark, bildirimin options
nesnesine değer olarak bir TimestampTrigger
nesnesi içeren bir showTrigger
koşul mülkü göndermeniz gerektiğidir.
const createScheduledNotification = async (tag, title, timestamp) => {
const registration = await navigator.serviceWorker.getRegistration();
registration.showNotification(title, {
tag: tag,
body: 'This notification was scheduled 30 seconds ago',
showTrigger: new TimestampTrigger(timestamp + 30 * 1000),
});
};
Planlanmış bir bildirimi iptal etme
Planlanmış bildirimleri iptal etmek için önce ServiceWorkerRegistration.getNotifications()
üzerinden belirli bir etiketle eşleşen tüm bildirimlerin listesini isteyin. Planlanmış bildirimlerin listeye dahil edilmesi için includeTriggered
işaretini iletmeniz gerektiğini unutmayın:
const cancelScheduledNotification = async (tag) => {
const registration = await navigator.serviceWorker.getRegistration();
const notifications = await registration.getNotifications({
tag: tag,
includeTriggered: true,
});
notifications.forEach((notification) => notification.close());
};
Hata ayıklama
Bildirimlerde hata ayıklama yapmak için Chrome Geliştirici Araçları Bildirimler panelini kullanabilirsiniz. Hata ayıklama işlemini başlatmak için Etkinlikleri kaydetmeye başla'ya veya Ctrl+E (Mac'te Komut+E) tuşlarına basın. Chrome Geliştirici Araçları, planlanmış, görüntülenen ve kapatılmış bildirimler dahil tüm bildirim etkinliklerini, Geliştirici Araçları kapalıyken bile üç gün boyunca kaydeder.
Demo
Bildirim tetikleyicilerini demoda görebilirsiniz. Bu demo, bildirimleri planlamanıza, planlanmış bildirimleri listelemenize ve iptal etmenize olanak tanır. Kaynak koduna Glitch'ten ulaşabilirsiniz.
Güvenlik ve izinler
Chrome ekibi, Notification Triggers API'yi tasarlarken ve uygularken kullanıcı denetimi, şeffaflık ve ergonomi gibi Güçlü Web Platformu Özelliklerine Erişimi Kontrol Etme başlıklı makalede belirtilen temel ilkeleri temel almıştır. Bu API, hizmet çalışanları gerektirdiğinden güvenli bir bağlam da gerektirir. API'yi kullanmak, normal push bildirimleriyle aynı izni gerektirir.
Kullanıcı denetimi
Bu API yalnızca ServiceWorkerRegistration
bağlamında kullanılabilir. Bu, gerekli tüm verilerin aynı bağlamda depolandığı ve hizmet çalışanı silindiğinde veya kullanıcı kaynak için tüm site verilerini sildiğinde otomatik olarak silindiği anlamına gelir. Çerezlerin engellenmesi, hizmet işçilerinin Chrome'a yüklenmesini ve dolayısıyla bu API'nin kullanılmasını da engeller. Bildirimler, site ayarları bölümünden kullanıcı tarafından her zaman devre dışı bırakılabilir.
Şeffaflık
Push API'nin aksine bu API ağa bağlı değildir. Bu, planlanmış bildirimlerin badge
, icon
ve image
özelliklerinin referans verdiği resim kaynakları da dahil olmak üzere önceden gerekli tüm verilere ihtiyaç duyduğu anlamına gelir. Bu, planlanmış bir bildirimin gösterilmesinin geliştirici tarafından gözlemlenemediği ve kullanıcı bildirimle etkileşime geçene kadar hizmet çalışanının uyandırılmadığı anlamına gelir.
Sonuç olarak, geliştiricinin IP adresi coğrafi konum araması gibi gizliliği ihlal edebilecek yaklaşımlar aracılığıyla kullanıcı hakkında bilgi edinebileceği bilinen bir yöntem şu anda mevcut değildir. Bu tasarım, özelliğin isteğe bağlı olarak işletim sistemi tarafından sağlanan planlama mekanizmalarına (ör. Android'in AlarmManager
) erişmesine de olanak tanır. Bu sayede pil tasarrufu sağlanır.
Geri bildirim
Chrome Ekibi, bildirim tetikleyicilerle ilgili deneyimlerinizi öğrenmek istiyor.
API tasarımı hakkında bilgi verin
API ile ilgili olarak beklediğiniz gibi çalışmayan bir şey var mı? Yoksa fikrinizi uygulamak için ihtiyaç duyduğunuz yöntemler veya özellikler eksik mi? Güvenlik modeliyle ilgili sorunuz veya yorumunuz mu var? Bildirim Tetikleyicileri GitHub deposunda özellik sorunu gönderin veya mevcut bir soruna düşüncelerinizi ekleyin.
Uygulamayla ilgili sorun mu yaşıyorsunuz?
Chrome'un uygulamasında bir hata mı buldunuz? Yoksa uygulama, spesifikasyondan farklı mı?
new.crbug.com adresinden hata kaydı oluşturun. Mümkün olduğunca fazla ayrıntı ekleyin, hatayı yeniden oluşturmayla ilgili basit talimatlar verin ve Bileşenler'i UI>Notifications
olarak ayarlayın. Glitch, hataları hızlı ve kolay bir şekilde yeniden oluşturarak paylaşmak için mükemmel bir araçtır.
API'yi kullanmayı planlıyor musunuz?
Sitenizde bildirim tetikleyicileri kullanmayı planlıyor musunuz? Herkese açık desteğiniz, özelliklere öncelik vermemize yardımcı olur ve diğer tarayıcı tedarikçi firmalarına bu özellikleri desteklemenin ne kadar önemli olduğunu gösterir. #NotificationTriggers
hashtag'ini kullanarak @ChromiumDev hesabına tweet gönderin ve bu özelliği nerede ve nasıl kullandığınızı bize bildirin.
Yararlı Bağlantılar
- Herkese açık açıklama
- Bildirim tetikleyicileri demosu | Bildirim tetikleyicileri demo kaynağı
- İzleme hatası
- ChromeStatus.com girişi
- Blink Bileşeni:
UI>Notifications
Teşekkür ederiz
Bildirim tetikleyicileri Richard Knoll tarafından uygulandı ve açıklama metni, Richard'ın katkılarıyla Peter Beverloo tarafından yazıldı. Makaleyi şu kişiler inceledi: Joe Medley, Pete LePage, Richard ve Peter. Unsplash'taki Lukas Blazek tarafından oluşturulan hero resim.