是否可以在移动设备上从Web服务器生成通知时收到通知。
这件事可以通过适用于iPhone和Android的原生应用来实现。 但我的要求是通过移动网站实现同样的目标。 即使用户已关闭Web浏览器,也可以接收通知。
答案 0 :(得分:2)
可以实现,你有两种主要方法来实现这一目标:
这两种方法都需要一些技巧服务器软件,一个很好的例子是在Node.JS平台上运行的Socket.IO。
Websockets需要HTML 5浏览器(例如Chrome),因此可能无法满足您的要求。
HTTP长轮询是接受服务器上的入站HTTP连接,然后休眠直到您希望将数据推送到客户端的行为。可以将Node.JS设置为非常容易,或者可以使用Socket.IO(Node.JS上的库)来提供额外的功能。 Socket.IO也可以在可能的情况下使用Websockets - 如果必须的话,它会回退到长轮询。
简而言之,你需要一个服务器平台才能做到这一点 - 我建议你先看看Socket.IO。一旦掌握了主要概念,您就可以自己动手。例如,我在ASP.net中编写了一个非常好用的文章。
答案 1 :(得分:1)
一旦浏览器中的页面关闭,就无法接收通知。通知由智能手机操作系统后台运行的应用程序触发。
答案 2 :(得分:0)
您还可以将服务器已发送事件(SSE)用于此目的。如果我没错,Android ICS支持SSE。 HTML5 rock(http://www.html5rocks.com/en/tutorials/eventsource/basics/)上有一篇文章,并指出了一个演示(http://googlecodesamples.com/html5/sse/sse.html)
但是,如果您希望自己的应用也适用于较旧的Android设备,这些解决方案(websockets,SSE)都不会有用。如果您希望在未启动应用程序时接收推送,则这些解决方案无用。最好的解决方案是根据richbayliss的建议构建某种混合应用程序。我猜你真的不需要手机上的电话。您可以使用WebView的loadDataWithBaseURL
来触发事件