Bir web uygulaması iOS cihazlara nasıl push bildirimleri gönderebilir? [kapalı]


121

Bir web uygulaması üzerinde çalışıyorum. Yeni içerik olduğunda iOS kullanıcılarına nasıl anında bildirim gönderebilirim?


Şimdi ne bildirimi?


Sesle mi arıyorsunuz? Ardından cep telefonu kilitli moddayken sesli bildirim istiyorsanız; adı Specific Push'tur.
mrbengi

Yanıtlar:


93

Daha spesifik olmak gerekirse, bir web uygulamasının iPhone gibi bir mobil cihaza push bildirimleri göndermesi için, mobil cihazın belirli bir uygulama için push bildirimlerini almak üzere kaydolmuş olması gerekir. Anlık bildirim kaydı, yerel bir uygulama aracılığıyla yapılır ve yalnızca yerel bir uygulama aracılığıyla gerçekleştirilebilir. Yerel uygulama push bildirimi için kaydedildikten sonra, yetkilendirme jetonunu sunucuya gönderebilir; bu, yerel istemciyi sağlamak için kullanılan sertifika ile birlikte mobil cihaza push bildirimlerini göndermek için kullanılabilir.

Başka bir yanıtta belirtildiği gibi, bir seçenek, web uygulamanızı yerel bir uygulamada 'sarmalamaktır. Bu, web uygulamanızı gösteren kullanıcıya temel olarak bir UIWebView (iPhone dev için) sunan yerel bir uygulama oluşturacağınız anlamına gelir. Bu, yerel tarayıcıyla hemen hemen aynı şekilde işlev görse de, yerel kontrolleri kullanarak push bildirimlerine kaydolma yeteneği ekleyebilirsiniz.

İPhone'da push mesajlaşmanın nasıl çalıştığına dair oldukça iyi bilgiler sağladığı için Apple'ın anlık bildirim belgesini gözden geçirmeniz faydalı olacaktır.

Peter Hosey tarafından sağlanan şu bağlantılara bakın:


Bu cevap için teşekkürler, ben de aynısını arıyordum. Bu, "apple-mobile-web-app-uyumlu" meta etiketi eklediğinizde de geçerli mi?
Mark Knol

1
Bu, push bildirimlerin nasıl gerçekleştiğini değiştiriyor developer.google.com/web/updates/2015/03/…
Daniel Luca CleanUnicorn

1
02/2016 itibarıyla FF, Chrome ve Safari web uygulamasından push için kayıt olabilir.
Yvon Huynh

9
Bu artık 2016'da geçerli değil, web uygulamalarından bildirim gönderebilirsiniz. Aşağıdaki cevabımı okuyun.
collimarco

Ancak web görünümü harika çalışmıyor, bazı özellikleri gözden kaçırıyor ve safariden daha fazla hata içeriyor
Black

46

Hayır, yalnızca yerel iOS uygulamaları push bildirimlerini destekler.

GÜNCELLEME:
Mac OS X 10.9 ve Safari 7 web siteleri artık push bildirimleri de gönderebilir, ancak bu yine de iOS için geçerli değildir. Web Siteleri için Bildirim Programlama Kılavuzunu okuyun . Ayrıca WWDC 2013 Oturum 614'e de göz atın .


1
şimdi Maverix & Safari 7'de yapabilirsiniz!
themihai


Safari 7 kesinlikle bu push bildirimlerini alabilir ve web uygulamanızın hangi arka uçta çalıştığına bağlı olarak buna izin veren birkaç hizmet vardır: pushwoosh.com , pushmonkey.launchrock.com veya kendi sunucunuzu dağıtabilirsiniz, ki bu da çok benzerdir. iOS anlık bildirimler.
Tudor

Buna Özel İtme denildiğini duydum.
mrbengi 01

3
OP sorusu özellikle iOS ile ilgilidir. Bunun için OSX / macOS desteği güzel, ancak push bildirimleri yine de yalnızca yerel bir uygulamadan iOS'ta çalışıyor.
squarecandy

44

İken henüz iOS'ta desteklenmiyor (iOS 10 itibariyle), web siteleri ile Firefox ve Chrome (Masaüstü / Android) push bildirimleri gönderebilir İtme API .

Push API, mesajı görüntülemek için eski Web Bildirimleri ile birlikte kullanılır . Bunun avantajı, Push API'nin, kullanıcı web sitenizde gezinmediğinde bile bildirimin teslim edilmesine izin vermesidir, çünkü bunlar Hizmet Çalışanları (tarayıcı tarafından kaydedilen ve daha sonra bile arka planda çalıştırılabilen komut dosyaları) üzerine kurulmuştur. kullanıcınız web sitenizden ayrıldı).

Bildirim gönderme süreci aşağıdakileri içerir:

  1. bir kullanıcı web sitenizi ziyaret eder (HTTPS üzerinden güvenli hale getirilmelidir): push bildirimlerini görüntülemek için izin istersiniz ve bir hizmet çalışanı kaydedersiniz (push bildirimi alındığında yürütülecek bir komut dosyası)
  2. Kullanıcı izin verdiyse, sunucuya gönderilmesi ve saklanması gereken cihaz jetonunu (uç nokta) okuyabilirsiniz.
  3. artık kullanıcıya bildirim gönderebilirsiniz: sunucunuz uç noktaya (cihaz belirtecini içeren bir URL olan) bir HTTP POST isteğinde bulunur. İsteği alan sunucu, tarayıcı üreticisine aittir (örneğin, Google, Mozilla): tarayıcı ona sürekli olarak bağlıdır ve gelen bildirimleri okuyabilir.
  4. Kullanıcı tarayıcısı bir bildirim aldığında, olayı yönetmekten, bildirim verilerini sunucudan almaktan ve kullanıcıya bildirimi görüntülemekten sorumlu olan hizmet çalışanını yürütür.

Push API şu anda masaüstü ve Android'de Chrome , Firefox ve Opera tarafından desteklenmektedir .

Apple / Safari'ye anlık bildirimler de gönderebilirsinizAPN'leri kullanarak masaüstüne . Yaklaşım benzerdir, ancak birçok karmaşıklığı vardır (apple geliştirici sertifikaları, push paketleri, APN'lere düşük seviyeli TCP bağlantısı).

Push bildirimlerini kendiniz uygulamak istiyorsanız, bu eğitimlerle başlayın:

Bir damla çözüm arıyorsanız , oluşturduğum bir hizmet olan Pushpad'i öneririm .

Güncelleme (Eylül 2017): Apple, WebKit ( durum ) için servis çalışanlarını geliştirmeye başladı . Servis çalışanları web push için temel bir teknoloji olduğundan, bu ileriye doğru büyük bir adımdır.


3
İOS 10'dan (genel beta) itibaren, Mobile Safari push bildirimlerini desteklememektedir.
Robin Daugherty

1
Cevabınızın bir düzeltmesi değildi, Safari Mobile desteği arayan kişilere bilgi veriyordum. Belki bir gün push bildirimlerini destekleyeceklerdir, ancak bahsettiğim sürüm itibariyle desteklemiyorlar.
Robin Daugherty

14
Safari, yeni Internet Explorer'dır. Apple, yeni Microsoft'tur. Ugh ....
Costa

1
@Kevincore Hayır, maalesef herhangi bir güncelleme yok. İOS'ta Safari şu anda web push özelliğini desteklemiyor (Mayıs 2017).
collimarco

1
Apple'a biraz baskı yapalım: Apple'ın iOS'a web push eklemesini istemek için kopyalayıp Apple Bug Tracker'a gönderebileceğiniz bazı paragraflar yazdım .
collimarco



9

ASLINDA .. Bu yepyeni sakıncası .. OS X (Mavericks) en yeni sürümünde sensin CAN masaüstüne bir web sayfasından push bildirimleri göndermek. Ancak belgelere göre, iPhone'lar DEĞİL:

Note: This document pertains to OS X only. Notifications for websites do not appear on iOS.

Şu anda Apple'ın 2 tür anlık bildirime izin verme planı vardır: OS X Web Sitesi Anında Bildirimler ve Yerel Bildirimler.

Buradaki bariz engel, bunun PC'lerde çalışmaması ve android push bildirimleri yapmanıza izin vermemesidir.

Ayrıca, Snow Leapord kadar eski sürümlerle, söz konusu web sitesi açık ve aktif olduğu sürece bir web sitesinden push bildirimleri gönderebilirsiniz. Yeni Mavericks OS, söz konusu siteye push bildirimleri gönderme izni verdiğinizi varsayarak, site açılmasa bile push bildirimlerine izin verecektir.

Apple'ın ağzından:

OS X v10.9 ve sonraki sürümlerde, Apple Push Bildirimi hizmetini (APN'ler) kullanarak OS X Web Sitesi Anında Bildirimlerini web sunucunuzdan doğrudan OS X kullanıcılarına gönderebilirsiniz. Yerel bildirimlerle karıştırılmaması için push bildirimleri, web sitenizin veya tarayıcılarının açık olmasına bakılmaksızın kullanıcılarınıza ulaşabilir ...

Push bildirimlerini web sitenize entegre etmek için, önce kullanıcının bildirimleri almayı seçmesine izin veren bir arayüz sunarsınız. Kullanıcı izin verirse Safari, web sitenizle iletişim kurarak kimlik bilgilerini push paketi adı verilen bir dosya biçiminde ister. Push paketi ayrıca OS X genelinde kullanılan bildirim varlıklarını ve yapılandırdığınız bir web hizmetiyle iletişim kurmak için kullanılan verileri içerir. Push paketi geçerliyse, cihazdaki kullanıcı için cihaz belirteci olarak bilinen benzersiz bir tanımlayıcı alırsınız. Kullanıcı, bu cihaz belirteciyle mesajınızın veya yükünüzün kombinasyonunu APN'lere gönderdiğinizde bildirimi alır.

Bildirimi aldıktan sonra, kullanıcı, kullanıcının varsayılan tarayıcısında seçtiğiniz bir web sayfasını açmak için üzerine tıklayabilir.

Not: APN'ler hakkında tazeleme ihtiyacınız varsa, Yerel ve Anında Bildirim Programlama Kılavuzu'ndaki "Apple Anında Bildirim Hizmeti" bölümünü okuyun. Belge iOS ve OS X push bildirimlerine özel olsa da, anında bildirim hizmetinin paradigmaları hala geçerlidir.


5
Bu, umarım, iOS 8 veya 9 tarafından web tabanlı push bildirimlerini göreceğimiz anlamına gelir. Parmaklarımı çapraz tutmak.
Travis

5
Geliştirici dokümanları, web bildirimlerinin şu anda iOS için geçerli olmadığını açıkça belirtiyor. Tıpkı ilk paragrafınızın açıklaması olarak.
Daniel Sellers

1
Onlar iOS biri sürümü için buna izin ve bir sonraki için kaldırırız elma bilerek
Alexander Derck

6

Hayır, bir web uygulamasının push bildirimi almasının bir yolu yoktur. Yapabileceğiniz şey, web uygulamanızı push bildirimleri olan yerel bir uygulamaya sarmaktır.


"Web uygulamanızı yerel bir uygulamaya sarın" derken neyi kastediyorsunuz?
Frankie

1
Frankie: Peki, daha sonra sitenizi yükleyen bir UIWebView görüntüleyen yerel bir uygulama. Bu, web uygulamanıza telefonda yerel uygulama olarak sahip olmanızı sağlar.
JustSid

sanırım xcode'da bu yerel uygulama için "WindowBase Aplication" olurdu, değil mi?
Frankie

şimdi Maverix & Safari 7'de yapabilirsiniz!
themihai

1
@DanDascalescu Neden yapayım? İOS'ta hala mümkün değil , asıl soru buydu. Cevap yanlış değil.
JustSid

2

W3C, 2010 yılında bildirimleri uygulamak için bir çalışma grubu kurdu:
http://www.w3.org/2010/web-notifications/

Bu Çalışma Grubu, bu mekanizmaları Web Uygulamalarına maruz bırakan API'ler geliştirir - böylece, örneğin, Web tabanlı e-posta istemcileri ve anında mesajlaşma istemcileri oluşturan Web geliştiricileri, Web uygulama davranışlarını işletim sistemlerinin bildirim özellikleriyle daha yakından bütünleştirebilirler. son kullanıcılarının.

Sonunda sonuç, yalnızca belirli web sitesi açıksa işe yaradığından kötü bir şaka gibidir: http://alxgbsn.co.uk/notify.js/

Sanırım, tarayıcı arka planda çalışırken ve hepsinden önemlisi, tüm sekmeler kapatılmışsa, push URL'leri ekleme olanağını uygulamayı kaçırdıklarını düşünüyorum.


2

Kendi push mesajlarınızı tanıtmak için HTML5 Websockets kullanabilirsiniz. Gönderen Vikipedi :

"İstemci tarafı için, WebSocket Firefox 4, Google Chrome 4, Opera 11 ve Safari 5'te ve ayrıca iOS 4.2'de Safari'nin mobil sürümünde uygulanacaktı. Ayrıca OS7'deki BlackBerry Tarayıcısı WebSockets'i destekliyor."

Bunu yapmak için, mesajları istemcilere gönderecek kendi sağlayıcı sunucunuza ihtiyacınız vardır.
APN (Apple Push Bildirimi) veya C2DM'yi (Buluttan Aygıta İleti) kullanmak istiyorsanız, çevrimiçi mağazadan indirilmesi gereken yerel bir uygulamaya sahip olmanız gerekir.


6
iyi, yalnızca tarayıcı açıksa ve web uygulaması sayfasında çalışır. uygulama kapalıyken bile çalışan push bildirimlerinin aksine.
Hagai L

2

Pushbullet , bunun için harika bir alternatiftir.

Ancak, kullanıcının bir Pushbullet hesabına sahip olması ve uygulamanın (iOS, Android) veya eklentinin (Chrome, Opera, Firefox ve Windows) yüklü olması gerekir.

API'yi bir Pushbullet uygulaması oluşturarak kullanabilir ve uygulamanızın kullanıcısını oAuth2 kullanarak Pushbullet kullanıcısına bağlayabilirsiniz.

Bir kitaplık kullanmak işinizi çok daha kolay hale getirir, PHP için ivkos / Pushbullet-for-PHP önerebilirim .


1

Xtify Web Push bildirimlerine göz atın. http://getreactor.xtify.com/ Bu araç, içeriği bir web sayfasına aktarmanıza ve ziyaretçileri hedeflemenize ve ayrıca tarayıcı DOM etkinliklerine dayalı mesajları tetiklemenize olanak tanır. Özellikle mobil göz önünde bulundurularak tasarlanmıştır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.