hitode909の日記

趣味はマリンスポーツですの日記です

今日の重ね着をホーム画面に登録できるようにした

最近のAndroidでは,ホーム画面に追加しませんか?っていうポップアップが出て,ホーム画面にインストールすることができる.mobilt.twitter.comはホーム画面にインストールできるようになっていた.
ネイティブのアプリを作らなくても簡単にホーム画面に追加できるので,たとえば毎日使うようなサイトなんかは,対応すると便利そう.
ということで,今日の重ね着をホーム画面に追加できるようにした.
AndroidのChromeで重ね着を開くと,こういうポップアップが出て,ホーム画面に追加できる.

ホーム画面に登録するポップアップを出すには,いくつか条件があって,以下のドキュメントを見ると対応できる.ざっと要求を書くと,

Service Workerに対応していること
  • オフライン対応するためにはService Workerが必須
  • そのためには,サイトがHTTPSで配信されている必要がある
manifest.jsonが準備されている
  • アイコンの指定とかをここに書く

という感じ.

Web App Install Banners  |  Web  |  Google Developers

開発にあたって,LighthouseのChrome拡張が便利だった.デバッグ対象のサイトを開いて,Chromeのボタンを押すと,悪いところを診断してくれる.
chrome.google.com

オフライン対応どこまでするのか,という話があるけど,重ね着は今日の天気の情報がないと意味がない.HTML,画像,JS,CSSあたりはキャッシュしておき,APIの返り値は一定時間キャッシュする,くらいにとどめておいた.このへんのキャッシュの戦略はもうちょっと考えたらよさそう.
あと,重ね着はiOSのほうがシェアが多いけど,iOSではホーム画面にインストールしませんか?ポップアップ出せないので,めちゃくちゃ効く施策,という感じでもなさそう.

別の話題で,Googleアドセンスを出しているのだけど,オフラインだと,変な恐竜の絵になってしまって,見た目が悪い.オフラインのときは広告を非表示にしたいけど,ブラウザの内側からオフラインかどうか判定する方法はなさそう? 適当なエンドポイントに一度リクエストを送って,反応がなければ広告を消せばいいのかな.

追記

オフラインかどうか判定できそうって教えてもらった.これでうまくいくかあとで試す.

もしかすると,window.navigator.onLine が使えるかもしれないと思った.ブラウザやスマートフォンOSごとの挙動は確認できていないけれど,手元のmacOS上で動くChromeでは上手くいっている模様.

ウェブアプリをLighthouseに採点してもらった - #daiizメモ