是否可以在移动设备上收到从Web服务器生成的通知?
原生iPhone和Android应用程序可以实现这一点。 但我的要求是通过移动网站实现相同的功能。 即使用户关闭了Web浏览器,也可以接收通知吗?
是否可以在移动设备上收到从Web服务器生成的通知?
原生iPhone和Android应用程序可以实现这一点。 但我的要求是通过移动网站实现相同的功能。 即使用户关闭了Web浏览器,也可以接收通知吗?
要实现这一目标,有两种主要的方法:
这两种方法都需要一些特殊的服务器软件,一个很好的例子是在Node.JS平台上运行的Socket.IO。
Websockets需要一个支持HTML 5的浏览器(例如Chrome),因此可能无法满足您的要求。
HTTP长轮询是指在服务器上接受入站HTTP连接,然后休眠直到您希望将数据推送到客户端。Node.JS可以很容易地设置为执行此操作,或者您可以使用Socket.IO(Node.JS上的库),它提供了额外的功能。Socket.IO也尽可能地与Websockets一起工作,并在必要时退回到长轮询。
简而言之,您需要一个服务器平台来实现此目标-我建议您首先查看Socket.IO。一旦掌握了主要概念,您总可以自己编写代码。例如,我曾经在ASP.net中编写过一个相当不错的程序。
当浏览器页面关闭后,无法接收通知。通知是由在智能手机操作系统后台运行的应用程序触发的。
您也可以使用服务器发送事件(SSE)来实现此目的。如果我没记错,Android ICS支持SSE。HTML5 rocks(http://www.html5rocks.com/en/tutorials/eventsource/basics/)有一篇关于此的文章,并指向一个演示(http://googlecodesamples.com/html5/sse/sse.html)。
然而,如果您希望应用程序在旧版Android设备上运行,则这些解决方案(Websockets、SSE)都没有用处。如果您希望在应用程序未启动时接收推送,则这些解决方案也没有用处。最好的解决方案是构建某种混合应用程序,如richbayliss所建议的那样。我想您并不真正需要phonegap来实现这一点。您可以使用WebView的loadDataWithBaseURL方法触发事件。