8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

gatsbyのgatsby-plugin-manifestプラグインを使ってwebmanifestを自動生成する

Last updated at Posted at 2018-09-20

gatsby-plugin-manifest

基本はここに書いてあるが、細かな工夫点をいくつか

そのままの状態ではiPhone Safariの「ホーム画面に追加」のアイコンにならない

home.png

react-helmetなどを使ってheadタグ内に以下を記載

/* icons/icon-48x48.pngなどは、gatsby-plugin-manifestで自動生成される */
<link rel="apple-touch-icon" href="icons/icon-48x48.png" sizes="48x48" />
<link rel="apple-touch-icon" href="icons/icon-72x72.png" sizes="72x72" />
<link rel="apple-touch-icon" href="icons/icon-96x96.png" sizes="96x96" />
<link rel="apple-touch-icon" href="icons/icon-144x144.png" sizes="144x144" />
<link rel="apple-touch-icon" href="icons/icon-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="icons/icon-256x256.png" sizes="256x256" />
<link rel="apple-touch-icon" href="icons/icon-384x384.png" sizes="384x384" />
<link rel="apple-touch-icon" href="icons/icon-512x512.png" sizes="512x512" />

自動生成の元となる画像が透過や正方形じゃない場合は、iPhoneで背景色ブラック固定になってしまう

方法その1

元となる画像を正方形、透過無しでつくる

gatsby-config.js
  {
    resolve: `gatsby-plugin-manifest`,
    options: {
      name: `GatsbyJS`,
      short_name: `GatsbyJS`,
      start_url: `/`,
      background_color: `#f7f0eb`,
      theme_color: `#a2466c`,
      display: `minimal-ui`,
      icon: `src/images/icon.png`, // この画像を正方形、透過無しで作る
    }
  }

方法その2

gatsbyプロジェクトのルートフォルダにstaticフォルダを作り、背景色のあるアイコンファイルを配置する(ファイル名、サイズは各自設定)。

その後に以下のようにlayoutなどで<head>に入るように設定する。

layout.tsx
import Helmet from "react-helmet"
...
...
<Helmet>
  <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"/>
</Helmet>

Qiita.png タブやブックマークのfaviconだけは自動生成の物にしたくない

faviconはここで指定されているので、自動生成される48x48が上書き出来れば良い。
source.png

Adding Assets Outside of the Module System
https://www.gatsbyjs.org/docs/adding-images-fonts-files/
gatsby-config_js.png
gatsbyプロジェクトのルートフォルダにstaticフォルダを作りその中にicons/icon-48x48.pngを作ると、gatsby develop時にgatsby-plugin-manifestで自動生成されたアイコンを上書きする。

画像を変更したけど、faviconのキャッシュが効いてて新しい画像が見えない

Chromeの場合

強制的にfaviconキャッシュを全部消す

rm /Users/ユーザー名/Library/Application Support/Google/Chrome/Default/Favicons
8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?