概要
PWA (Progressive Web App) とは
Webの技術を利用して、ネイティブアプリケーションのようなUXを提供する技術。
例えば、
PWA 化するには
いろいろ調べたら、Nuxt.js にはオフィシャルの PWAモジュールが既にあった(笑)ので、今回はこれを使用する。 Nuxt PWA Module
Workbox - オフラインキャッシュのためにサービスワーカーを登録する。
Manifest - アプリのマニフェストファイル(manifest.json)を自動生成する。
Meta - SEOフレンドリーなメタデータをマニフェストファイルに自動追加する。
Icon - 複数の必要なサイズのアプリアイコンを生成する。
インストールとセットアップ
$ npm i @nuxtjs/pwa
nuxt.config.js を編集し、pwaモジュールを追加。オプションで不要なサブモジュールを除外することもできる。
nuxt.config.js{
modules: [
['@nuxtjs/pwa', { icon: false }],
],
}
static ディレクトリ直下に icon.png を用意。 (512x512px以上推奨)
.gitignore 以下を追記する。(サービスワーカーが生成するファイルを除外)
.gitignoresw.*
実行結果
chrome でサイトを開いて、デベロッパーツールの Application タブを確認すると以下のように正常に動作している事を確認できる。
サービスワーカー

マニフェスト

モバイル端末
オプションから「ホーム画面に追加」で、設定したアプリアイコンからスタンドアローンで起動できるようになる。ただし、スタンドアローンで起動した場合、当然ブラウザの「戻る」ボタンはなくなる。

追記