Bildirim Tetikleyicileri API'si

Bildirim Tetikleyicileri, ağ bağlantısı gerektirmeyen yerel bildirimleri planlamanıza olanak tanır. Bu da takvim uygulamaları gibi kullanım alanları için idealdir.

Bildirim Tetikleyicileri nedir?

Web geliştiricileri, bildirimleri göstermek için Web Notifications API. Bu özellik genellikle Kullanıcıyı aşağıdakiler gibi zaman açısından hassas bilgiler hakkında bilgilendirmek için API aktarma flaş haberler veya aldığınız mesajlar gibi. Bildirimler, cihazıyla oturum açın.

Push API'sindeki sorun, API'nin sağlanması gereken bildirimleri tetikleme konusunda güvenilir olmamasıdır. zaman veya yer gibi belirli bir koşul karşılandığında gösterilir. Zamana dayalı durum, patronunuzla yaptığınız önemli bir toplantıyı hatırlatan bir takvim bildirimidir: 14:00 Konuma dayalı durumlara örnek olarak, süt satın almanızı hatırlatan bildirimler verilebilir çok kolay olduğunu fark edeceksiniz. Ağ bağlantısı veya pili koruma doz modu gibi özellikler, push tabanlı bildirimlerin iletilmesini geciktirebilir.

Bildirim tetikleyicileri, bildirimleri tetiklenecek şekilde planlamanıza olanak tanıyarak bu sorunu çözer. durumu önceden anlamanızı sağlar. Böylece, işletim sistemi bildirimi doğru zamanda Ağ bağlantısı olmasa veya cihaz pil tasarrufu modunda olsa bile

Kullanım alanları

Takvim uygulamaları, kullanıcılara yaklaşan etkinlikleri hatırlatmak için zamana dayalı bildirim tetikleyicileri kullanabilir internet erişimidir. Bir takvim uygulaması için varsayılan bildirim şeması, ilk uyarı göstermek olabilir toplantıdan bir saat önce bildirim ve beş dakika önce başka bir daha acil bildirim kontrol edin.

TV ağı, kullanıcılara favori TV programının başlamak üzere veya bir konferansın canlı olarak düzenleneceğini hatırlatabilir akış başlamak üzere.

Saat dilimi dönüşüm siteleri, kullanıcılarının planlama yapmasına izin vermek için zamana dayalı bildirim tetikleyicileri kullanabilir görüntülü görüşmeler veya telefon konferansları için alarmlar.

Mevcut durum

Step Durum
1. Açıklayıcı oluşturun Tamamlandı
2. İlk spesifikasyon taslağını oluşturun Başlatılmadı
3. Geri bildirim alın ve tasarım için iterasyon yapın. Devam ediyor
4. Kaynak denemesi Tamamlandı
5. Başlat Başlatılmadı

Bildirim tetikleyicileri nasıl kullanılır?

about://flags aracılığıyla etkinleştirme

Bildirim Tetikleyiciler API'sini kaynak deneme jetonu olmadan yerel olarak denemek için about://flags bölgesinde #enable-experimental-web-platform-features işareti.

Özellik algılama

Tarayıcının, bildirim tetikleyicilerini destekleyip desteklemediğini, showTrigger mülk:

if ('showTrigger' in Notification.prototype) {
  /* Notification Triggers supported */
}

Bildirim planlama

Bildirim planlama, normal push bildirimleri göstermeye benzer, ancak tek yapmanız gereken showTrigger koşul özelliğini TimestampTrigger nesnesiyle bildirimin options nesnesi.

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 belirli bir bildirimle eşleşen tüm bildirimlerin listesini isteyin ServiceWorkerRegistration.getNotifications() aracılığıyla etiketleyin. Projenin başarılı olması için Planlanan bildirimlerin listeye dahil edilmesi için includeTriggered işareti:

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

Hata ayıklamak için Chrome Geliştirici Araçları Bildirimler panelini kullanabilirsiniz. Başlamak için hata ayıklama işlemi için Etkinlikleri kaydetmeyi başlat'a basın Etkinlikleri kaydetmeye başla veya Control+E (Mac'te Command+E) tuşlarına basın. Chrome Geliştirici Araçları kayıtları üç gün boyunca planlanmış, görüntülenen ve kapatılan bildirimler dahil olmak üzere tüm bildirim etkinliklerini Geliştirici Araçları kapalıyken bile.

Planlanmış bir bildirim etkinliği, Uygulama panelinde bulunan Chrome Geliştirici Araçları'nın Bildirimler bölmesine kaydedildi.
Planlanmış bildirim.
ziyaret edin.
'nı inceleyin.
Görüntülenen bir bildirim etkinliği, Chrome Geliştirici Araçları'nın Bildirimler bölmesine kaydedildi.
Görüntülenen bildirim.

Demo

Demoda Bildirim Tetikleyicilerini uygulamalı olarak görebilirsiniz. Demoda, planlama planlanan bildirimleri listeleyebilir ve iptal edebilirsiniz. Kaynak kodu şurada kullanılabilir: Aksak.

Bildirim Tetikleyicileri demo web uygulamasının ekran görüntüsü.
Bildirim Tetikleyicileri demo.

Güvenlik ve izinler

Chrome ekibi, Bildirim Tetikleyicileri API'sini temel ilkeleri kullanarak tasarlamış ve uygulamıştır: Kullanıcı erişimi dahil olmak üzere Güçlü Web Platformu Özelliklerine Erişimi Kontrol Etme'de tanımlanmıştır kontrol, şeffaflık ve ergonomi. Bu API, hizmet çalışanları gerektirdiğinden bahsedeceğiz. API'yi kullanmak, normal push bildirimleriyle aynı izni gerektirir.

Kullanıcı denetimi

Bu API yalnızca ServiceWorkerRegistration bağlamında kullanılabilir. Bu, tüm özelliklerin gereken veriler aynı bağlamda depolanır ve hizmet çalışanı şu işlemleri gerçekleştirdiğinde otomatik olarak silinir: silindiğinde veya kullanıcı, kaynağa ait tüm site verilerini siler. Çerezlerin engellenmesi, hizmetin yüklenmesini ve dolayısıyla bu API'nin kullanılmasını engeller. Bildirimler kullanıcı tarafından site ayarlarında her zaman devre dışı bırakılmış olabilir.

Şeffaflık

Push API'sinin aksine bu API ağa bağlı değildir. Bu da, planlanmış bildirimler anlamına gelir. badge, icon ve image özellikleri. Bu, planlanmış bir bildirimin gösterilmesinin geliştirici tarafından gözlemlenmeyeceği anlamına gelir ve kullanıcı bildirimle etkileşime girene kadar Service Worker'ı uyandırma işlemi bu kapsama dahil değildir. Dolayısıyla, geliştiricinin şu an için kullanıcı hakkında bilgi edinebileceği bilinen bir yol yoktur. . Bu tasarım ayrıca özelliğin, isteğe bağlı olarak işletim sistemi tarafından sağlanan zaman çizelgesi mekanizmalarından yararlanmasına olanak tanır. örneğin Android'in AlarmManager, Bu da pil tasarrufu sağlar.

Geri bildirim

Chrome ekibi, bildirim tetikleyicileriyle ilgili deneyimleriniz hakkında bilgi almak istiyor.

Bize API tasarımı hakkında bilgi verin

API'de beklediğiniz gibi çalışmayan bir şey mi var? Veya eksik yöntemler mi var? gereken özellikler veya özellikler neler olabilir? Menkul kıymetle ilgili bir sorunuz veya yorumunuz varsa modeli nedir? Bildirim Tetikleyicileri GitHub deposunda bir spesifikasyon sorunu bildirin veya düşüncelerinizi şuraya ekleyin: bir sorun olabilir.

Uygulamayla ilgili bir sorun mu var?

Chrome'un uygulanmasıyla ilgili bir hata buldunuz mu? Yoksa uygulama, spesifikasyondan farklı mı? new.crbug.com adresinden hata bildiriminde bulunun. Açıklamalarınızı mümkün oldukça detaylandırmaya çalışın. basit yeniden oluşturma talimatlarını uygulayın ve Bileşenler'i UI>Notifications olarak ayarlayın. Arıza çok iyi sonuç veriyor hızlı ve kolay hata replikaları paylaşmak için.

API'yi kullanmayı mı planlıyorsunuz?

Sitenizde Bildirim Tetikleyicilerini kullanmayı mı planlıyorsunuz? Herkese açık desteğiniz, öncelik vermemize ve diğer tarayıcı tedarikçilerine söz konusu özellikleri desteklemenin ne kadar önemli olduğunu gösterir. Şu kullanıcıya tweet gönder: @ChromiumDev hashtag'ini kullanarak #NotificationTriggers ve nerede ve nasıl kullandığınızı bize bildirin.

Yararlı Bağlantılar

Teşekkür

Bildirim Tetikleyicileri, Richard Knoll tarafından uygulandı Peter Beverloo'nun yazdığı açıklayıcı video ise katkılarında bulunuyor. Makale, aşağıdaki kullanıcılar tarafından yorumlandı: Joe Medley, Pete LePage ve Richard ve Peter. Hero resim: Lukas Blazek, Unsplash'te.