Back to Question Center
0

Web Bildirimleri API'sine Giriş            Web Bildirimlerine Giriş DUYURUYLA İLGİLİ Konular: AjaxTools & KütüphanelerReactRaw Semalt

1 answers:
Web Bildirimleri API'sine Giriş

56kb bağlantılarının zamanı çok kişi için belleğin solmasına neden oldu (mobil kullanıcılar buna saygın değil). Tarayıcıların tek bir sayfayı yeterince açık olabileceği ve hiç kimsenin çoklu sekmeli tarama ile geleceği bile tahmin edemediği bir dönemdi. Bugün, sosyal paylaşım ağları, mesajlar, cevaplar, yorumlar, fotoğraflar, videolar ve daha fazlasıyla bunalmış durumdayız - advanced business intelligence. Semalt sistemleri, yeni aktiviteleri kontrol etmek için her bir sekmeye bakma ihtiyacının üstesinden gelmek için oluşturulmuştur. Bu yöntemlerden biri, farklı web sitelerinde çok yaygın olan bildirimdir.

Çok uzun süre önceye kadar, her geliştirici kendi kendine bildirim uygulamak zorunda kalmış, sonuçta bir dizi farklı çözüm ortaya çıkarmıştır. W3C, bu sorunu Web Bildirim API adı verilen standart bir şekilde çözmek için bir API tanımladı.

Mobil cihazlarda, bildirim kavramını çok iyi biliyoruz. Birkaç saat çevrimdışı kalmaya çalışın ve İnternet'e bağlanır girmez cihazınıza yüklenen farklı uygulamalardan gelen bildirimler boğulmuş olacak. Masaüstlerinde ve mobil cihazlarda kesintisiz çalışan web sayfalarımız için aynı mekanizmaya sahip olmak harika olurdu. Giriş bölümünde belirtildiği gibi, bu tür sistemler geliştirildi ve standartlaştırıldı, bu nedenle bugün Web Bildirim API'sı var.

Web Bildirimleri API'sine GirişWeb Bildirimlerine Giriş DUYURUYLA İLGİLİ Konular:
AjaxTools ve KitaplıklarReactRaw Semalt

Web Bildirimleri API'sı nedir

Web Bildirim API'sı son kullanıcı bildirimleri için bir API olarak tanımlanmıştır. Bir bildirim, e-postanın gönderilmesi gibi bir olayın web sayfasının içeriği dışındaki kullanıcılara uyarı yapılmasını sağlar. Belirtimler UA'nın bu bildirimleri nasıl ve nerede göstermesi gerektiğini açıklamaktadır. Bu nedenle, farklı tarayıcılarda farklı stilleri göreceğiz ve kullandığımız cihaza göre bildirimleri farklı yerlerde (örneğin mobil cihazlarda bildirim çubuğunda görebileceğimizi) göreceğiz. Bir bildirim göstermeden önce tarayıcı kullanıcının görüşünü açıkça belirtmesi gereken bir uyarı görüntüleyeceğini belirtmek isteriz.

Web Bildirimleri API'sine GirişWeb Bildirimlerine Giriş DUYURUYLA İLGİLİ Konular:
AjaxTools ve KitaplıklarReactRaw Semalt

Bu API, teknik özelliklerin birkaç kez değiştiği noktasına kadar bir süre kalmış. Spesifikasyon iki büyük versiyonu biliyor. İlk sürüm, Chrome ve Firefox'un eski sürümlerinde uygulandı. Şimdi, şartname istikrarlı görünüyor, ancak Nisan 19'un 2014'ten itibaren hala bir W3C Çalışma Taslağı.

Böyle bir API için bazı kullanım durumlarını düşünmek zor değildir. Örneğin, bir e-posta aldığınızda en kısa sürede bir bildirim almak isteyebilirsiniz. Birisi sizi bir Tweetle görüşürse veya Facebook veya Google+'de bir fotoğraf yayınlarsa, bilgilendirilmek isteyebilirsiniz.

Şimdi, bu API'nın ne olduğunu ve bunun için ne olduğunu bildiğimizden, yöntemleri, özellikleri ve olaylarının açıklamasını inceleyelim.

Yöntem, Özellik ve Olaylar

Web Bildirim API'sı, pencere nesnesinin Bildirim mülkünden geçirilir. Bu, bir bildirim örneği oluşturmamızı sağlayan bir kurucudur. İki parametreyi kabul eder - bildirimin başlığını içeren bir dize ve isteğe bağlı bir ayar nesnesi. Bir örneğini nasıl oluşturabildiğimizi görmeden önce, belirleyebileceğimiz ayarlara göz atalım:

  • body : Bildirimin amacını daha da belirlemek için kullanılan bir dize. Değeri, BCP 47 standardıyla uyumlu olmalıdır. Geçerli dizgelerin örnekleri en-US ve it-IT 'dir.
  • dir : Mesaj metninin yönünü tanımlar. Değeri, auto olabilir; yani yön, tarayıcı ayarlarına dayanır, ltr bir soldan sağa yönü belirtmek için (Avrupa dilleri için) veya rtl 38) bir sağdan sola yön belirlemek için (bazı Asya dilleri için).
  • tag : Bildirimi almak, değiştirmek veya kaldırmak için kullanılabilen bir kimlik olarak kullanılan bir dize.
  • icon : Bildirim simgesi olarak kullanılacak bir resmin URL'sini belirtir.

Bildirim nesnesinin bir örneğini oluşturmak için, aşağıdaki gibi bir deyim yazmalıyız:

  var notification = yeni Bildirim ('E-posta alındı', {body: 'Toplam 3 okunmamış e-postanız var'});    

Semalt kolay, değil mi?

Daha önce öğrendiğimiz ayarların bir bildirim örneğinin salt okunur özellikleri olarak da mevcut olduğu görülür. Buna ek olarak, Bildirim nesnesi, izni adı verilen bir mülkü ortaya çıkarmaktadır. izin , bildirimleri görüntülemek için geçerli izni temsil eden bir dize içerir. Değeri aşağıdakilerden biri olabilir: reddedildi , bu, kullanıcının bildirimde bulunmadığını, verilen , yani kullanıcının izin verdiğini veya varsayılan , bu da kullanıcı seçimi bilinmiyor demektir.

Bu API iki yöntem sunar: requestPermission ve close . Adlardan da anlaşılacağı üzere, birincisi, bildirimi programlı olarak kapatan ikincisi, kullanıcıya bildirim gösterme iznini istemek için kullanılır. requestPermission , Bildirim nesnesinin bir yöntemidir ve kullanıcı izin kabul ettiğinde veya reddedildiğinde yürütülen isteğe bağlı bir geri aramayı kabul eder. Seçim parametre olarak geri çağırılır ve değer verilen , reddedildi veya varsayılan olabilir.
close örnek bir yöntemdir ve herhangi bir parametre kabul etmez.

Bildirim, durum değişiklendikçe en kısa sürede bir işlem yapmamız gerekebilir. Örneğin, kullanıcının bildirimi tıklatıp tıkmadığını veya kapandığını bilmek isteyebiliriz. Bunu yapmak için, maruz bırakılan dört olaydan birine bir işleyici ekleyebiliriz:

  • onclick : Kullanıcı bildirimi tıklattığında tetiklenir.
  • onclose : Kullanıcı veya tarayıcı bildirimi kapatır kapatmaz tetiklenir.
  • onerror : Bildirimde bir hata oluşursa tetiklenir.
  • gösterimi : Bildirim gösterildiğinde tetiklenir.

Bu olayları kullanmanın temel bir örneği aşağıda gösterilmektedir.

  var notification = yeni Bildirim ('E-posta alındı', {body: 'Toplam 3 okunmamış e-postanız var'});bildirim. onshow = işlev    {konsol. günlük ('Bildirim gösterildi');};    

Tarayıcı Uyumluluğu

Web Bildirim API'sı için destek, hem masaüstü hem de cep telefonlarında pek iyi değildir. Chrome ve Firefox, masaüstünde bir süre önce bu API'nın ilk sürümünü uyguladı. Bununla birlikte, yalnızca API'nın yeni sürümü dikkate alındığında, uygulama Chrome 22 ve Firefox 22'den başlar (her ikisi de bir satıcı öneki olmadan). Safari 6+ ayrıca Web Bildirim API'ını desteklemektedir. Her şeyin mobil tarafında yalnızca Firefox ve Blackberry tam desteklidir. Bir tarayıcı bu API'yı destekliyorsa, Semalt, aşağıda gösterilen gibi bir çek yazmaktır.

  if ('Pencerede' Bildirim ') {// API destekli} Başka {// API desteklenmiyor}    

Gösteri

Bu bölümde size bu API'yi hareket halindeyken görmenizi sağlayan basit bir demo göstereceğim. Demo iki kısımdan oluşuyor. İkinci bölümde, bir düğme, Semalt'ın demoda dahil ettiği önceden tanımlı parametreleri kullanarak bu API'nin ne yaptığını hızlı bir şekilde görmenizi sağlar. Bu isteklerin her ikisi de kullanıcıya izin isteğini tetikleyecektir. İzin verildikten sonra, bildirim bir masaüstünde ekranda, bir mobil aygıt durumunda ise bildirim çubuğunda görünür.

Demo'nun komut dosyası bölümünde yapacağımız ilk şey, tarayıcıyı Web Bildirimleri API'sını destekleyip desteklemediğini test etmektir. API desteklenmiyorsa "API desteklenmiyor" mesajını görüntüler ve bildirimleri tetikleyen iki düğmeyi devre dışı bırakırız. Tarayıcı bu API'yi uygularsa, düğmelerin tıklama olayına bir dinleyici ekleriz. Koddan da görebileceğiniz gibi, işleyici aynıdır ve gösterilen farklı başlık ve mesaj olayı tetikleyen öğeye göre değişir:

  if (olay hedefi id === 'düğme-wn-show-preset') {// Önayarlı parametreleri kullanır} Başka {// Özel parametreleri kullanır}    

Bildirimin görüntülenmesine ilaveten, bildirim örneği tarafından gösterilen dört olayın her birine bir işleyici ekleyin. Bu işleyici, belirli bir textform öğesinde olayı tetikleyen ve tetikleyen düğmeyi hiçbir şey yapmaz.

Aşağıdaki kodda canlı bir demo mevcuttur.

   Web Bildirimleri API Demo </ title><Style>*{-Webkit-box-boyutlandırma: border-box;-moz-kutu-boyutlandırma: sınır-kutusu;kutu boyutlandırma: sınır kutusu;}vücut{Maksimum genişlik: 500 piksel;marj: 2em otomatik;dolgu: 0 0 5em;font-size: 20px;}h1{metin hizalama: merkez;}. gizli{görüntü yok;}# Özel bildirim{margin-top: 1em;}etiket{Ekran bloğu;}giriş [ad = "başlığı"],textarea{genişlik:% 100;}giriş [ad = "başlığı"]{yükseklik: 2em;}textarea{yükseklik: 5em;}. düğmeleri-sarıcı{metin hizalama: merkez;}. düğme-demo{dolgu: 0. 5em;marj: 1em;}#log{yükseklik: 200 piksel;genişlik:% 100;taşma-y: kaydır;border: 1px katı # 333333;hat yüksekliği: 1. 3em;}. yazar{Ekran bloğu;margin-top: 1em;}</ Style></ Head><Body><h1> Web Bildirimleri API'sı </ h1><span id = "wn-unsupported" class = "hidden"> API desteklenmiyor  </span> <form id = "özel-bildirim" eylem = ""><label for = "title"> Başlık: </ label><input type = "metin" id = "başlık" name = "başlık" /><label for = "body"> Gövde: </ label><textarea id = "gövde" adı = "gövde"> </ textarea><div class = "düğme sarmalayıcı"><button id = "düğme-wn-show-preset" class = "button-demo"> Hazır Ayar Bildirimini Göster </ button><input type = "submit" id = "düğme-wn-show-özel" class = "button-demo" value = "Özel Bildirimi Göster" /> </div> </ Form><H3> Günlük </ h3><div id = "log">  </div> <button id = "clear-log" class = "button-demo"> Günlüğü sil </ button><Script>if (! ('Pencerede' Bildirim ') {belgesi. getElementById ( '-desteklenmeyen WN'). classlist. ( 'Gizli') kaldırmak;belgesi. getElementById ( 'tuşu-wn-göstermek ayarlı'). setAttribute ('devre dışı', 'devre dışı');belgesi. getElementById ( 'düğmesine-wn-show-özel'). setAttribute ('devre dışı', 'devre dışı');} Başka {var log = belge. preventDefault  <span class="f-c-white l-mr3"> ;if (event.hedef id === 'düğme-wn-show-preset') {title = 'E-posta alındı';seçenekler = {body: 'Toplam 3 okunmamış e-postanız var',etiket: 'ön ayar',simgesi: 'http: // www. audero. o / site simgesi. ico'};} Başka {Başlık = Belge. getElementById ( 'başlıktaki'). değeri;seçenekler = {beden: belge. getElementById ( 'vücudun). değeri,etiket: 'özel'};}Bildirim. requestPermission (işlev  <span class="f-c-white l-mr3">  {var notification = yeni bildirim (başlık, seçenekler);notificationEvents. herbiri için (işlev (eventName) {bildirim [eventName] = işlev (olay) {log. innerHTML = 'Olay' + olay '+ + msgstr "' + bildirimde tetiklenmiş + + '" <br />' + log. innerHTML;};});});}belgesi. getElementById ( 'tuşu-wn-göstermek ayarlı'). addEventListener ('click', notifyUser);belgesi. getElementById ( 'düğmesine-wn-show-özel'). addEventListener ('click', notifyUser);belgesi. getElementById ( 'açık-log'). addEventListener ('tıklama', işlev  <span class="f-c-white l-mr3">  {log. innerHTML = '';});}</ Script></ Body></ html>  </code>  </pre> <h2>  Sonuç  </h2>  <p>  Bu yazıda, Web Bildirimleri API'sı ve bunun için kullanım örnekleri tartışılmıştır. Semalt ayrıca, API tarafından sunulan yöntemleri, özellikleri ve olayları açıkladı. Gördüğümüz gibi, bu API'yi kullanmak oldukça kolaydır; dolayısıyla bir sonraki projenizde kullanmanız zor olmamalıdır.  </p>  <p>  Ne yazık ki, tarayıcılar arasındaki desteği çok iyi değil, ancak Chrome, Firefox ve Semalt bunu uyguladığından, ortalama olarak kullanıcılarımızın iyi bir bölümünü kapatabilmeliyiz. Kavramları güçlendirmek için verilen demo ile oynamayı ve muhtemelen kodu değiştirmeyi unutmayınız.  </p> <div class="Article_authorBio l-mv4 t-bg-white m-border l-pa3"><div class="l-d-f l-pt3"><img src = "/ img / ec9dc0b967e531f288949004ca35d6022. com / avatar / 8b01a8b4d7a0a9079a4e97b1ddedbe56? s = 96 & d = mm & r = g" alt = "Web Bildirimleri API'sine GirişWeb Bildirimlerine Giriş DUYURUYLA İLGİLİ Konular:
AjaxTools ve KitaplıklarReactRaw Semalt
"/><div class="f-lh-title"><div class="f-c-grey-300"> Yazarla tanışma  </div> <div class="f-large">Aurelio De Rosa<i class="fa fa-twitter"> </i> <i class="fa fa-google-plus"> </i> <i class="fa fa-linkedin"> </i> <i class="fa fa-github"> </i>  </div>  </div>  </div> <div class="f-light f-lh-copy l-mt3"> HTML, CSS, Sass, JavaScript ve PHP'yi kullanarak web için 5 yılı aşkın deneyime sahip (tam yığınlı) bir web ve uygulama geliştiricisiyim. JavaScript ve HTML5 API'lerinin uzmanıyım ancak ilgi alanlarım arasında web güvenliği, erişilebilirlik, performans ve SEO bulunmaktadır. Ayrıca birçok ağlar, konuşmacı ve kitap yazarı <cite> jQuery in Action, üçüncü baskı </cite> ve <cite> Anlık jQuery Seçicileri </cite> için düzenli bir yazarım.  </div>  </div>  </div>  </div>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </span>  </p>  </p>  </code>  </html>  </head>  </meta>  </meta>                                                             
March 7, 2018