Skip to content

PWA

json
{
    "name": "我的PWA应用",
    "short_name": "PWA应用",
    "start_url": "/",
    "display": "standalone",
    "background_color": "#ffffff",
    "theme_color": "#3367D6",
    "icons": [
        {
            "src": "/icons/icon-192x192.png",
            "sizes": "192x192",
            "type": "image/png"
        },
        {
            "src": "/icons/icon-512x512.png",
            "sizes": "512x512",
            "type": "image/png"
        }
    ]
}

由于Safari对PWA的支持比较特殊,你还需要额外添加:

html
<!-- 让iOS以独立应用模式运行 -->
<meta
    name="apple-mobile-web-app-capable"
    content="yes"
/>
<!-- 设置状态栏样式 -->
<meta
    name="apple-mobile-web-app-status-bar-style"
    content="black-translucent"
/>
<!-- 指定iOS上的应用图标 -->
<link
    rel="apple-touch-icon"
    href="/icons/apple-touch-icon.png"
/>

crossorigin="anonymous"

1. 核心作用

  • 启用 CORS 请求:允许跨域资源共享,不携带身份信息(如 Cookies),且无法通过 JavaScript 读取响应内容(如 fetch 或 XMLHttpRequest)。添加 crossorigin="anonymous" 会显式启用 CORS,允许服务器决定是否共享资源。
  • 匿名请求:anonymous 表示请求 ​​不携带用户凭据​​(如 Cookies、HTTP 认证头),仅发送最基本的请求头(如 Origin)。如果需要凭据,需改用 crossorigin="use-credentials"。

个人理解:

- script 请求的时候,如果是公共资源,就需要带上,方便双方都清楚这是个跨域请求,同时出现错误也能打印出更详细的信息(有些服务器也根据这个来做判断决定是否返回资源)
- canvas 要求图片资源带上,否则会触发安全错误(Tainted canvases)
- fonts 资源通常也要求,否则浏览器可能拒绝加载

Last updated: