Web サーバーから通知が生成されるたびに、モバイル デバイスで通知を受け取ることは可能ですか。
これは、iPhone と Android のネイティブ アプリによって実現できます。しかし、私の要件は、モバイル Web サイトを介して同じことを達成することです。また、ユーザーが Web ブラウザーを閉じた場合でも通知を受け取ることは可能ですか。
Web サーバーから通知が生成されるたびに、モバイル デバイスで通知を受け取ることは可能ですか。
これは、iPhone と Android のネイティブ アプリによって実現できます。しかし、私の要件は、モバイル Web サイトを介して同じことを達成することです。また、ユーザーが Web ブラウザーを閉じた場合でも通知を受け取ることは可能ですか。
達成することは可能であり、これを達成するための2つの主な方法があります。
どちらの方法でも、いくつかのトリックサーバーソフトウェアが必要です。良い例は、Node.JSプラットフォームで実行されているSocket.IOです。
WebSocketにはHTML5ブラウザー(Chromeなど)が必要なため、要件に合わない場合があります。
HTTPロングポーリングは、サーバーでインバウンドHTTP接続を受け入れ、データをクライアントにプッシュするまでスリープする動作です。Node.JSは、これを非常に簡単に実行するように設定できます。または、追加機能を提供するSocket.IO(Node.JS上のライブラリ)を使用することもできます。Socket.IOは、可能な場合はWebsocketでも機能し、必要に応じて長いポーリングにフォールバックします。
つまり、これを行うにはサーバープラットフォームが必要になります。まず、Socket.IOを確認することをお勧めします。メインコンセプトを釘付けにしたら、いつでも自分でロールすることができます。たとえば、ASP.netで非常にうまく機能するものを作成しました。
ブラウザのページを閉じると、通知を受け取ることができません。通知は、スマートフォン OS のバックグラウンドで実行されているアプリによってトリガーされます。
この目的で Server Sent Events (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 を使用してイベントを発生させることができます