如何將 React 專案轉換為 PWA
· 5 分鐘閱讀
什麼是 PWA
全名:Progressive Web Apps,中文翻成「漸進式網路應用程式」,不過講中文可能沒有人聽的懂
簡單說這是 google 製定的一個標準,可能讓你的 web 專案,看起來像是一個手機 App,它有兩個核心
Manifest
一些看起來很像 Android 的 AndroidManifest.xml 的設定,讓 web 專案可以提供捷徑,從手機或電腦直接讀取,就是一些偽裝成 App 的 UI
Service Worker
設定一些像 cache、離線還能讀取、監聽一些 event 然後可以自行設定或手動寫要做什麼事情
這篇文章不打算詳細的說明 PWA
這裏不打算詳細的說明 PWA,畢竟有點複雜,不是一篇文章就能講清楚的,這篇文章的目的是說明如何快速的在 React 專案導入 PWA
新專案
Mainfest
建置 React 專案應該主要的都是用 create-react-app 這個工具,不再多說明,我們先下個指令,建立一個新專案
npx create-react-app test-react-pwa
然後啟動專案
cd test-react-pwa
npm run start
Chrome DevTools 測試
按「F12」叫出 Chrome DevTools,點選「Application」⇒ 「Manifest」,已經有資料了
點選「Service Workers」,可以看出是空的沒有設定
程式碼
看一下程式碼,在 index.html 中有這一行,指向 manifest.json 這個檔案
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
manifest.json 也已經先寫好了預設值
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
甚至 index.html 還已經針對 IOS 寫好設定
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />