49
43

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.

Nuxt.js(SPA)のWebサービスにmanifest.jsonを置くだけでホームに追加できるようになった

Posted at

開発中の積読ハウマッチ、ホームに追加できるんです(´ω`)
といっても、Nuxt.js(SPA)で作ったWebサービスにmanifest.jsonを置いておくだけ。
manifest.jsonについてちょっと調べたので、その備忘録。

ホームに追加できるようにするためにやったこと

やったのはこんな感じ。

  1. Nuxt.jsでSPAのWebサービスを作る
  2. ファビコンなどをfavicon generatorで一括生成
  3. 一括生成したファイルをstatic配下に配置
  4. 一括生成したファイルに含まれるmanifest.jsonをちょっと修正

簡単!! ( ゚д゚)!
4.の修正についても、アプリ名とかを設定しただけ〜

ファビコンを生成する

favicon generatorを使うだけですが、
こんな感じで使ってます。

1.「画像ファイルを選択」に元ファイルをアップロード

画像は推奨の700x700ピクセルで用意。

2.「ファビコン一括生成」で一括生成

3.「ファビコンダウンロード」でダウンロード

これだけで必要な画像が一括で生成できますヽ(=´▽`=)ノ
ダウンロードしたファイルを見るとこんな感じ。

スクリーンショット 2019-08-21 16.27.05.png

このファイルをNuxtのstaticに配置すればいい感じに(´ω`)

manifest.jsonを修正する

ダウンロードしたファイルに入っているmanifest.jsonを修正していく。
生成されたmanifest.jsonはこんな感じ。

{
  "name": "",
  "short_name": "",
  "description": "",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#fff",
  "theme_color": "#fff",
  "orientation": "any",
  "icons": [
    // ... 
    {
      "src": "/android-chrome-512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}

設定した内容はこんな感じ。

{
  "name": "積読ハウマッチ",
  "short_name": "積読ハウマッチ",
  "description": "買った本を読まずに積んでおく「積読」、全部でいくらか知っていますか?「積読ハウマッチ」は積んである本の総額がわかる書籍管理サービスです。",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#776f59",
  "orientation": "portrait",
  "icons": [
  	// ... 
    {
      "src": "/android-chrome-512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}

変更点としては、このあたり!

  • nameshort_namedescriptionを設定
  • background_colorで、スプラッシュの背景色を設定
  • theme_colorで、ステータスバーの色を設定
  • orientationで画面を縦に固定するよう設定

これだけ変えれば、冒頭の動画みたいな感じにできます(´ω`)

注意!! iPhoneとAndroidでアイコンを変えたほうがいいかも...

iPhoneで丸いアイコンを使うと、微妙な感じ...

積読ハウマッチでは、iPhoneとAndroidで別のアイコンを設定してます!
iPhone用の元アイコン画像はこんな感じ〜

それぞれの設定項目についてのまとめ

それぞれについて、簡単にまとめてみた。元ネタは[こちら](ウェブアプリマニフェスト | MDN)。

nameshort_namedescription

  • name ... アプリのリストなどで利用されるアプリ名
  • short_name ... ホームスクリーンで利用されるアプリ名
  • description ... アプリの説明

background_colortheme_color

  • background_color ... 起動時のスプラッシュ画面の背景色
  • theme_color ... 画面の上にあるステータスバーの色

orientation

画面の向きを設定。設定値としては、こんな感じ。

  • "portrait" ... 縦向き。固定
  • "portrait-primary" ... 縦長の端末で縦向き表示。固定
  • "portrait-secondary" ... 横長の端末で縦向き表示。固定
  • "landscape" ... 横向き。固定
  • "landscape-primary" ... 横長の端末で横向き表示。固定
  • "landscape-secondary" ... 縦長が正面の端末で表示。固定
  • "any" ... 縦と横、全ての向きに回転

portraitlandscapeは、それぞれの-primary-secondaryを同時に指定。

display

表示モードの設定。設定値としては、こんな感じ。

  • "standalone" ... アプリっぽい感じで表示
  • "fullscreen" ... フルスクリーンで表示
  • "minimal-ui" ... 最小限のUI要素が表示
  • "browser"... 規定の設定。従来のブラウザータブまたは新しいウィンドウで開きます。

start_url

ユーザーがアプリケーションを起動したときに読み込むURL。通常はインデックスページ。
なお、これはマニフェストのURLからの相対URLである必要があります。

icons

アプリのアイコン画像の配列を指定。サイズとか、ファイルタイプとか。

"icons": [
  	// ... 
    {
      "src": "/android-chrome-512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]

related_applications

今回は使ってないですが、インストール可能なネイティブアプリへの
URLとかも設定できるもできるらしい...!!

"related_applications": [
  {
    "platform": "play",
    "url": "https://play.google.com/store/apps/details?id=com.example.app1",
    "id": "com.example.app1"
  }, {
    "platform": "itunes",
    "url": "https://itunes.apple.com/app/example-app1/id123456789"
  }]

おわりに

Nuxt.js(SPA)でWebサービスを作るとmanifest.jsonを置いておくだけで、
簡単にホームに追加できるようになります(´ω`)
画像の生成も便利なサービスがあるので、お手軽♪

これらを使って作ってるのは、こちら〜
積読総額ランキングや人気の本などもあるので、よかったらあそんでもらえれば!!

積んでる本の総額がわかる読書管理サービス
積読ハウマッチ

要望・感想・アドバイスなどあれば、
公式アカウント(@MemoryLoverz)や開発者(@kira_puka)まで〜

参考にしたサイト様

49
43
3

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
49
43

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?