2010年5月16日日曜日

AndroidでDesktop Notificatin

ちょっと前に書いたDesktop Notificatinが、Androidのブラウザでは動作しなくて悔しかったので、Android版Desktop Notificatinを無理やり実装してみた。

といっても、ブラウザに手を入れるのは無理くさいので、ブラウザから呼び出すAndroid専用Desktop Notificatin API(以下aNotificatin.js)と、そのAPIからIntentを使って呼び出されるAndroidアプリ(以下NotifyReceiver)の組み合わせで実装してみた。

[動作している絵]

  1. Desktop Notificatin APIを使ったページにaNotificatin.jsを使うように改造を施す(10行くらい)。
  2. 上記のページをAndroidのブラウザで表示して、通知許可を実行。
    001
  3. 通知許可のダイアログがでるので、OKボタンを押す。
    002
  4. 通知ボタンを押すと、NotifyReceiverが起動して通知が行われる(画面左上のアイコン)。
    003
  5. 通知の詳細を見ると、アイコン、タイトル、本文、ソースなどが通知元で指定したものどおりになっている。
    004
  6. もちろんPC上のChromeで同じページを表示すれば、ちゃんと通知が出せます。
    005

[できているとこ]

  • createHTMLNotification以外のAPIは(できはともかく)用意できた。

[できてないとこ]

  • aNotificatin.js
    • Permission周りはcookieで無理やり実装したのであやしいです。
    • createHTMLNotificationはサポートしていません。
    • Notificationのevent handler(onXXX)はサポートしません。
    • jquery.cookie.jsに依存しているので、使うとき面倒。
  • NotifyReceiver
    • アプリ起ち上げ時に何もないウィンドウが表示されます。
    • 複数の通知を受け取った場合、一番後の通知以外は消えます。
    • 長い本文付きの通知だと表示がとぎれます。