ちょっと前に書いたDesktop Notificatinが、Androidのブラウザでは動作しなくて悔しかったので、Android版Desktop Notificatinを無理やり実装してみた。
といっても、ブラウザに手を入れるのは無理くさいので、ブラウザから呼び出すAndroid専用Desktop Notificatin API(以下aNotificatin.js)と、そのAPIからIntentを使って呼び出されるAndroidアプリ(以下NotifyReceiver)の組み合わせで実装してみた。
[動作している絵]
- Desktop Notificatin APIを使ったページにaNotificatin.jsを使うように改造を施す(10行くらい)。
- 上記のページをAndroidのブラウザで表示して、通知許可を実行。
- 通知許可のダイアログがでるので、OKボタンを押す。
- 通知ボタンを押すと、NotifyReceiverが起動して通知が行われる(画面左上のアイコン)。
- 通知の詳細を見ると、アイコン、タイトル、本文、ソースなどが通知元で指定したものどおりになっている。
- もちろんPC上のChromeで同じページを表示すれば、ちゃんと通知が出せます。
[できているとこ]
- createHTMLNotification以外のAPIは(できはともかく)用意できた。
[できてないとこ]
- aNotificatin.js
- Permission周りはcookieで無理やり実装したのであやしいです。
- createHTMLNotificationはサポートしていません。
- Notificationのevent handler(onXXX)はサポートしません。
- jquery.cookie.jsに依存しているので、使うとき面倒。
- NotifyReceiver
- アプリ起ち上げ時に何もないウィンドウが表示されます。
- 複数の通知を受け取った場合、一番後の通知以外は消えます。
- 長い本文付きの通知だと表示がとぎれます。