Web应用程序如何将推送通知发送到iOS设备?[关闭]


121

我正在使用网络应用程序。有新内容时,如何向iOS用户发送推送通知?


现在有什么通知?


您在搜索声音吗?然后,如果您想在手机锁定模式下发出声音通知,请执行以下操作:它的名字叫Specific Push。
mrbengi '16

Answers:


93

更具体地说,为了使Web应用程序将推送通知发送到移动设备(例如iPhone),该移动设备必须已注册才能接收特定应用程序的推送通知。推送通知的注册是通过本机应用程序完成的,只能通过本机应用程序执行。将本机应用程序注册为推送通知后,它可以将授权令牌发送到服务器,该令牌可以与用于配置本机客户端的证书一起使用,以将推送通知发送到移动设备。

如另一个答案中所指定,一个选项是将Web应用程序“包装”在本机应用程序中。这意味着您将创建一个本机应用程序,该应用程序基本上向显示您的Web应用程序的用户呈现一个UIWebView(对于iPhone开发者)。尽管此功能与本机浏览器几乎具有相同的功能,但您将能够使用本机控件添加注册推送通知的功能。

查看Apple的推送通知文档对您很有帮助,因为它提供了有关iPhone上的推送消息功能的一些很好的信息。

请参阅Peter Hosey提供的以下链接:


感谢您提供此答案,我一直在寻找相同的东西。添加元标记“ apple-mobile-web-app-capable”后,这是否也适用?
马克·科诺

1
这种情况正在改变推送通知是如何发生的developers.google.com/web/updates/2015/03/...
丹尼尔·卢卡CleanUnicorn

1
从02/2016开始,FF,Chrome和Safari可以从webapp注册进行推送。
Yvon Huynh'2

9
在2016年不再如此,您可以从Web应用程序发送通知。请在下面阅读我的答案。
collimarco

但是网络视图无法正常运行,它缺少某些功能并且比野生动物园具有更多的错误
Black,

46

不可以,只有本机iOS应用程序支持推送通知。

更新:
Mac OS X 10.9和Safari 7网站现在也可以发送推送通知,但这仍然不适用于iOS。阅读网站通知编程指南。另请参阅WWDC 2013 Session 614


1
现在您可以在Maverix和Safari 7上使用!
themihai


Safari 7肯定会收到这些推送通知,并且取决于您的Web应用程序正在运行的后端,有一些服务可允许此操作:pushwoosh.compushmonkey.launchrock.com或您可以部署自己的服务器,这与iOS推送通知。
Tudor 2014年

我听说这称为“特定推送”。
mrbengi '16

3
OP问题专门针对iOS。OSX / macOS对此的支持很好,但是推送通知仍然仅在本机应用程序的iOS上有效。
squarecandy

44

虽然iOS(从iOS 10开始)不支持此网站,但网站可以使用Push API将推送通知发送到Firefox和Chrome(桌面/ Android)。

Push API与较早的Web通知结合使用以显示消息。优点是,即使用户不浏览您的网站,Push API仍可以传递通知,因为它们是基于Service Workers(由浏览器注册的脚本,并且可以在以后的后台执行,即使在您的用户已离开您的网站)。

发送通知的过程涉及以下内容:

  1. 用户访问您的网站(必须通过HTTPS进行保护):您要求显示推送通知的权限,并注册了服务人员(将在收到推送通知时执行的脚本)
  2. 如果用户已授予许可,则可以读取应发送到服务器并存储的设备令牌(端点)
  3. 现在您可以向用户发送通知:您的服务器向端点发出HTTP POST请求(该URL包含设备令牌)。接收请求的服务器由浏览器制造商(例如Google,Mozilla)拥有:浏览器一直与之连接,并且可以读取传入的通知。
  4. 当用户浏览器收到通知时,执行服务人员,该服务人员负责管理事件,从服务器检索通知数据并向用户显示通知

该推式API目前支持在台式机和Android浏览器火狐歌剧

您还可以使用APN 将推送通知发送到Apple / Safari桌面。这种方法是相似的,但是有很多复杂性(苹果开发者证书,推送包,与APN的低级TCP连接)。

如果您想自己实现推送通知,请从以下教程开始:

如果您正在寻找解决方案的下降,我建议您使用Pushpad,这是我构建的服务。

更新(2017年9月):苹果已经开始为WebKit开发服务工作者(状态)。由于服务人员是Web推送的基本技术,因此这是向前迈出的一大步。


3
从iOS 10(公开测试版)开始,Mobile Safari不支持推送通知。
罗宾·多尔蒂

1
这不是您的答案的更正,我是为寻求Safari Mobile支持的人们提供信息。也许有一天他们会支持推送通知,但是从我提到的发行版开始,它们将不再支持。
罗宾·多尔蒂

14
Safari是新的Internet Explorer。苹果是新的微软。gh ....
哥斯达黎加

1
@Kevincore不,很遗憾,没有任何更新。iOS上的Safari目前不支持网络推送(2017年5月)。
collimarco

1
让我们对Apple施加压力:我写了一些段落,您可以将其复制并提交给Apple Bug Tracker,以要求Apple将Web push添加到iOS。
collimarco



9

ACTUALLY。这是全新的主意你..在OS X(小牛)的最新版本,CAN从网页到桌面发送推送通知。但是根据文档,不是iPhone:

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

目前,苹果公司计划允许两种推送通知:OS X网站推送通知和本地通知。

这里明显的障碍是,这将无法在PC上运行,也不允许您执行android push通知。

此外,实际上您可以使用诸如Snow Leapord的旧版本,只要该网站处于打开状态且处于活动状态,就可以从该网站发送推送通知。新的Mavericks操作系统即使在站点未打开的情况下也将允许推送通知,前提是您已授予该站点发送推送通知的权限。

从苹果公司的嘴里:

在OS X v10.9和更高版本中,您可以使用Apple Push Notification Service(APN)将Web服务器上的OS X网站推送通知直接分发给OS X用户。不要与本地通知混淆,无论您的网站或他们的Web浏览器是否打开,推送通知都可以到达您的用户…

要将推送通知集成到您的网站中,您首先需要提供一个界面,该界面允许用户选择接收通知。如果用户同意,Safari会与您的网站联系,以称为推包的文件形式请求其凭据。推包还包含在整个OS X中使用的通知资产以及用于与您配置的Web服务进行通信的数据。如果推包有效,您将在设备上收到用户的唯一标识符,称为设备令牌。当您将此设备令牌和您的消息或有效负载的组合发送到APN时,用户会收到通知。

收到通知后,用户可以单击它,以在用户的​​默认浏览器中打开您选择的网页。

注意:如果需要有关APN的更新,请阅读“本地和推送通知编程指南”中的“ Apple Push Notification Service”一章。尽管该文档特定于iOS和OS X推送通知,但推送通知服务的范例仍然适用。


5
希望这意味着我们将看到iOS 8或9的基于Web的推送通知。
特拉维斯

5
开发者文档明确表示,Web通知当前不适用于iOS。就像澄清您的第一段一样。
Daniel Sellers

1
知道苹果后,他们将允许它在一个iOS版本中使用,并在下一个iOS版本中删除
Alexander Derck

7

不,Web应用程序无法接收推送通知。您可以做的就是将您的Web应用程序包装到具有推送通知的本机应用程序中。


当您说“将Web应用程序包装到本机应用程序中”时,您是什么意思?
Frankie

1
弗兰基:嗯,只是一个本机应用程序,它显示一个UIWebView,然后将其加载到您的网站。这样一来,您就可以将网络应用程序作为本机应用程序在手机上使用。
JustSid 2011年

所以我想在xcode中这将是本机应用程序的“ WindowBase Aplication”,对吗?
Frankie

现在您可以在Maverix和Safari 7上使用!
themihai

1
@DanDascalescu为什么会呢?它仍然没有可能在iOS上,这是问题是什么。答案是不正确的。
JustSid

2

W3C于2010年成立了一个工作组来实施通知:http :
//www.w3.org/2010/web-notifications/

该工作组开发的API将这些机制公开给Web应用程序-以便创建例如基于Web的电子邮件客户端和即时消息客户端的Web开发人员可以将其Web应用程序行为与操作系统的通知功能更紧密地集成在一起。他们的最终用户。

最后,结果就像是一个恶作剧,因为只有在特定网站打开的情况下,它才有效:http : //alxgbsn.co.uk/notify.js/

我认为他们错过了实现添加推送URL的可能性,因此浏览器能够在后台(尤其是所有标签页)关闭的情况下在后台运行时请求通知。


2

您可以使用HTML5 Websocket引入自己的推送消息。从维基百科

“对于客户端,WebSocket将在Firefox 4,Google Chrome 4,Opera 11和Safari 5以及iOS 4.2中的Safari的移动版本中实现。OS7中的BlackBerry Browser也支持WebSockets。”

为此,您需要自己的提供程序服务器将消息推送到客户端。
如果要使用APN(苹果推送通知)或C2DM(云到设备消息),则必须具有必须通过在线商店下载的本机应用程序。


6
好吧,它只有在打开浏览器并在webapp页面中时才有效。与推送通知不同,推送通知即使在应用程序关闭时也可以工作。
Hagai L

2

Pushbullet是一个很好的选择。

但是,用户需要具有Pushbullet帐户和已安装的应用程序(iOS,Android)或已安装的插件(Chrome,Opera,Firefox和Windows)。

您可以通过创建Pushbullet应用程序来使用API,然后使用oAuth2将应用程序的用户连接到Pushbullet用户。

使用库会使它变得更容易,对于PHP,我可以推荐ivkos / Pushbullet-for-PHP


1

查看Xtify Web Push通知。http://getreactor.xtify.com/此工具使您可以将内容推送到网页上并定位访问者,并根据浏览器DOM事件触发消息。它是专门为移动而设计的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.