PWAとは、「Progressive Web Apps」の略称で、モバイル向けWebサイトをGooglePlayストアなどで見かけるスマートフォン向けアプリのように使える仕組みらしいです。
詳しく知りたい方はこちらを読んでみて下さい。
初めに
なぜ導入したかと言うと、今後、Webアプリを作るに当たって必要になりそうな機能だからです。
Webアプリは、ブラウザからじゃないとアクセス出来ないため、どうしても手間に思えてしまいます。
ホーム画面にボタンを設置できるようになれば、利便性が向上するので、利用してもらいやすくなるのです。
その先駆けとして、のい太ろぐに導入してみました。
アイコン画像をサイズ別で用意
まず初めに、ホーム画面に追加した際に表示されるアイコン画像を用意しました。
うちのサイトのアイコンは、こちらの無料サイトから使わせてもらっているので簡単に集めることが出来ました。
Hexo に PWA プラグイン を導入
先人の方が作ってくれた PWA プラグイン を Hexo に導入しました。
大変ありがとうございます。
1 | npm install --save hexo-pwa |
プラグインのサイトはこちらです。
https://github.com/lavas-project/hexo-pwa
コンフィグに PWA の設定を書く
サイトに乗っているコンフィグ設定を、自分のサイト用に書き換えました。
1 | pwa: |
これだけです。
serviceWorker はよく分からなかったので消しました。
サイト名と、アイコンサイズとそのサイズのパス、初期URLと、テーマカラーとバックカラーと、表示モードを設定しました。
表示モードは、standalone にしたので、アドレスバーが非表示となっています。
実際に確認してみる
Android の場合
Android の場合は、Chrome からホーム画面に追加出来ます。
まず、Chrome で普通に開きます。
Chrome の右上のメニューを開き、ホーム画面に追加を選択します。
追加を押せば、ホーム画面に追加されます。
ホーム画面の左上に追加されました。
タップして開くと、 PWA 化されたのい太ろぐが表示されます。
アドレスバーが非表示になっていたり、ステータスバーの色が設定したテーマカラーになっていたりします。
iOS の場合
iOS の場合は、Safari からホーム画面に追加出来ます。
まず、Safari で普通に開きます。
Safari の右上の共有ボタンを押して、ホーム画面に追加を選択します。
追加を押せば、ホーム画面に追加されます。
ホーム画面の左上に追加されました。
タップして開くと、 PWA 化されたのい太ろぐが表示されます。
つまずいた点
iOS でアイコンが表示されない
iOS の Safari でホーム画面に追加をしても、設定したアイコンが表示されずに、サイトのサムネイルが表示されました。
ダサいよね。ありえないわって思いました。
Safari は headタグ内に PWA情報が無いといけないみたいです。
こちらのサイトを参考に対策しました。
https://github.com/GoogleChromeLabs/pwacompat
このスクリプトは、headタグ内に manifest.json の内容を書き換えてくれます。
私のサイトは Hexo で作ってあるので、headタグ内をいじるには、layout\common\head.ejs のファイルを修正する必要がありました。
headタグが終了する直前にスクリプトを埋め込みました。
1 | <!-- PWACompat --> |
これだけで、iOS の Safari でもちゃんとアイコンが出るようになります。
終わりに
見た目や速度は何も変わらず、現段階で実装する意味は無いです。
まあ、勉強になったかな。
参考にしたサイト
https://qiita.com/DaikiNakamura/items/dabe1dec52a642b4e33f