最近の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メモ