为PWA制作启动图
为 PWA 制作启动图
1. 安装插件
npm install -g pwa-asset-generator2. 生成启动图
sudo pwa-asset-generator ./public/logo.png ./public/start-img/
日间模式
sudo pwa-asset-generator ./public/logo.png ./public/start-img/ -b #303030 -d
-d 表示夜间模式 -b 背景颜色3. 配置 manifest.json 或者 vite.config.ts
"icons": [
{
"src": "public/start-img/manifest-icon-192.maskable.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "public/start-img/manifest-icon-192.maskable.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "public/start-img/manifest-icon-512.maskable.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "public/start-img/manifest-icon-512.maskable.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
]把生成出的产物放到html里
// 优雅一点的方法 使用ejs模板
// vite.config.ts
import { appleDeviceSpecsForLaunchImages } from 'pwa-asset-generator'
import { createHtmlPlugin } from 'vite-plugin-html'
defineConfig({
plugins: [
createHtmlPlugin({
inject: {
data: {
appleDeviceSpecsForLaunchImages
}
}
})
]
})
<% appleDeviceSpecsForLaunchImages.forEach(function(spec) { %>
<link rel="apple-touch-startup-image"
href="/start-img/apple-splash-<%= spec.portrait.width %>-<%= spec.portrait.height %>.jpg"
media="(device-width: <%= spec.portrait.width / spec.scaleFactor %>px) and (device-height: <%= spec.portrait.height / spec.scaleFactor %>px) and (-webkit-device-pixel-ratio: <%= spec.scaleFactor %>) and (orientation: portrait)" />
<link rel="apple-touch-startup-image"
href="/start-img/apple-splash-dark-<%= spec.portrait.width %>-<%= spec.portrait.height %>.jpg"
media="(prefers-color-scheme: dark) and (device-width: <%= spec.portrait.width / spec.scaleFactor %>px) and (device-height: <%= spec.portrait.height / spec.scaleFactor %>px) and (-webkit-device-pixel-ratio: <%= spec.scaleFactor %>) and (orientation: portrait)" />
<% }); %>
一些无法解决的问题 在IOS中
1、夜间模式不是实时的 需要重启PWA应用 2、启动图 添加的时候是 浅色模式 那么永远都是浅色模式 不会跟随系统变化
