---
# System prepended metadata

title: PWA
tags: [PWA]

---

###### tags: `PWA`
# PWA
### 部署 Web App Manifest

Web App manifest 是一個 JSON 格式的文件，它提供了應用程式相關的資訊（像是名稱、作者、圖示、描述）。 manifest 的功用是將 Web 應用程式安裝到設備的主畫面，為使用者提供更快速的訪問和更豐富的體驗。

Web App manifests 是屬於 progressive web apps (PWA) 的 Web 技術系列的一部分， 這是一個能不透過 App 商店就能被安裝到設備主畫面的 Web 應用程式，伴隨著其他功能，比如離線使用和通知的接收發送。

```
{
  "name": "Dev'Coffee",
  "short_name": "DevCoffee",
  "start_url": "index.html",
  "display": "standalone",
  "background_color": "#fdfdfd",
  "theme_color": "#db4938",
  "orientation": "portrait-primary",
  "icons": [
    {
      "src": "/images/icons/icon-72x72.png",
      "type": "image/png", "sizes": "72x72"
    },
    {
      "src": "/images/icons/icon-96x96.png",
      "type": "image/png", "sizes": "96x96"
    },
    {
      "src": "/images/icons/icon-128x128.png",
      "type": "image/png","sizes": "128x128"
    },
    {
      "src": "/images/icons/icon-144x144.png",
      "type": "image/png", "sizes": "144x144"
    },
    {
      "src": "/images/icons/icon-152x152.png",
      "type": "image/png", "sizes": "152x152"
    },
    {
      "src": "/images/icons/icon-192x192.png",
      "type": "image/png", "sizes": "192x192"
    },
    {
      "src": "/images/icons/icon-384x384.png",
      "type": "image/png", "sizes": "384x384"
    },
    {
      "src": "/images/icons/icon-512x512.png",
      "type": "image/png", "sizes": "512x512"
    }
  ]
}
```

* **name**: When the browser launches the splash screen, it will be the name displayed on the screen.
* **short_name**: It will be the name displayed underneath your app shortcut on the home screen.
* **start_url**: It will be the page shown to the user when your app is open.
* **display**: It tells the browser how to display the app. There are several modes like **minimal-ui**, **fullscreen**, **browser** etc. Here, we use the **standalone** mode *to hide everything related to the browser*.
* **background_color**: When the browser launches the splash screen, it will be the background of the screen.
* **theme_color**: It will be the background color of the status bar when we open the app.
* **orientation**: It tells the browser the orientation to have when displaying the app. 定義預設的顯示方向，其將作用在 all the web application's top level browsing contexts.
```
"orientation": "portrait-primary"
- any
- natural
- landscape
- landscape-primary
- landscape-secondary
- portrait
- portrait-primary
- portrait-secondary
```
* **icons**: When the browser launches the splash screen, it will be the icon displayed on the screen.




## 來源
* https://developer.mozilla.org/zh-TW/docs/Web/Manifest
* https://www.freecodecamp.org/news/build-a-pwa-from-scratch-with-html-css-and-javascript/#what-is-a-progressive-web-app
* https://robferguson.org/blog/2018/09/14/pwa-tips-and-tricks/
* https://appsco.pe/developer/splash-screens

