Nextjs(next.js 9+)、15分位でPWAに対応するためにやること
Step 1 next-pwaをインストール
$ yarn add next-pwa
# npmの場合
$ npm i next-pwa
Step 2 next.config.jsを更新
やる事はnext-pwa
をインポートして、withPWA()で既にあるconfigsを囲むだけです。
const withPWA = require('next-pwa');
module.exports = withPWA({
// 他の設定
});
Step 3 manifest.jsonを作成
アイコンが用意できてない場合、アイコン作成で時間かかると15分超えるかもしれません。
アイコンファイルはpublic/icons
フォルダに加えるのがいいと思います。
generatorを使えば簡単に作れます。
https://www.simicart.com/manifest-generator.html/
sample
from next-pwa readme
{
"name": "PWA App",
"short_name": "App",
"icons": [
{
"src": "/icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any maskable"
},
{
"src": "/icons/android-chrome-384x384.png",
"sizes": "384x384",
"type": "image/png"
},
{
"src": "/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#FFFFFF",
"background_color": "#FFFFFF",
"start_url": "/",
"display": "standalone",
"orientation": "portrait"
}
Step 4 metaタグを追加
metaタグは__document.js __document.jsx or __document.tsxの
componentに追記します。sample
from next-pwa readme
<meta name='application-name' content='PWA App' />
<meta name='apple-mobile-web-app-capable' content='yes' />
<meta name='apple-mobile-web-app-status-bar-style' content='default' />
<meta name='apple-mobile-web-app-title' content='PWA App' />
<meta name='description' content='Best PWA App in the world' />
<meta name='format-detection' content='telephone=no' />
<meta name='mobile-web-app-capable' content='yes' />
<meta name='msapplication-config' content='/icons/browserconfig.xml' />
<meta name='msapplication-TileColor' content='#2B5797' />
<meta name='msapplication-tap-highlight' content='no' />
<meta name='theme-color' content='#000000' />
<link rel='apple-touch-icon' href='/icons/touch-icon-iphone.png' />
<link rel='apple-touch-icon' sizes='152x152' href='/icons/touch-icon-ipad.png' />
<link rel='apple-touch-icon' sizes='180x180' href='/icons/touch-icon-iphone-retina.png' />
<link rel='apple-touch-icon' sizes='167x167' href='/icons/touch-icon-ipad-retina.png' />
<link rel='icon' type='image/png' sizes='32x32' href='/icons/favicon-32x32.png' />
<link rel='icon' type='image/png' sizes='16x16' href='/icons/favicon-16x16.png' />
<link rel='manifest' href='/manifest.json' />
<link rel='mask-icon' href='/icons/safari-pinned-tab.svg' color='#5bbad5' />
<link rel='shortcut icon' href='/favicon.ico' />
<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Roboto:300,400,500' />
<meta name='twitter:card' content='summary' />
<meta name='twitter:url' content='https://yourdomain.com' />
<meta name='twitter:title' content='PWA App' />
<meta name='twitter:description' content='Best PWA App in the world' />
<meta name='twitter:image' content='https://yourdomain.com/icons/android-chrome-192x192.png' />
<meta name='twitter:creator' content='@DavidWShadow' />
<meta property='og:type' content='website' />
<meta property='og:title' content='PWA App' />
<meta property='og:description' content='Best PWA App in the world' />
<meta property='og:site_name' content='PWA App' />
<meta property='og:url' content='https://yourdomain.com' />
<meta property='og:image' content='https://yourdomain.com/icons/apple-touch-icon.png' />
Step 5 ローカルサーバーを立ち上げて確認
devでローカルサーバーを立ち上げて、localhost:3000にアクセスすると、ブラウザのアドレスバーにインストールアイコンが表示されます。
$ yarn dev
# npm
$ npm run dev
Author And Source
この問題について(Nextjs(next.js 9+)、15分位でPWAに対応するためにやること), 我々は、より多くの情報をここで見つけました https://qiita.com/kojikanao/items/7f614bc2656d3dc2d894著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .