# 进阶

> 生产级能力——推送、文件访问、平台集成——以渐进增强方式接入，每一步都先做兼容性检查。

import { Steps } from '@astrojs/starlight/components';

**目标：** 一个使用平台能力——推送、文件处理、更深的 OS 集成——却不会在缺少这些能力的
引擎上崩坏的 PWA。这一层的核心纪律是**渐进增强**：每一项进阶能力都先检测支持，
缺失时优雅降级。

先完成核心路径——[入门](/zh/guides/getting-started/)、[可安装](/zh/guides/installable/)、
[离线](/zh/guides/offline/)、[性能](/zh/guides/performance/)——再来碰这些。

## 每个进阶特性的通则

<Steps>

1. **特性检测，绝不假设。** 在使用前用 `in`/`typeof` 检查守护每项能力。

2. **验证真实支持。** 规范里存在某能力，不等于它在你用户的浏览器上可用。在依赖之前，
   查阅相应的[兼容性](/zh/compatibility/)矩阵——从
   [按特性](/zh/compatibility/by-feature/)开始。

3. **优雅降级。** 缺少某能力时，应用应失去该特性，而非崩坏。在发布增强之前先规划好回退。

</Steps>

## 可以接入的能力

**Web Push 通知。** 用服务端消息重新触达用户。支持情况与 iOS「仅已安装」约束都很现实——
在构建订阅流程前阅读
[web-push 兼容性数据](/zh/compatibility/web-push/)与
[通知参考](/zh/reference/notifications/web-push/)。

**File System Access。** 为类编辑器应用读写用户选择的文件。这是支持最不均衡的能力之一，
因此回退（下载/上传）是必需的——见
[File System Access 参考](/zh/reference/capabilities/file-system-access/)及其
[兼容性数据](/zh/compatibility/file-system-access/)。

**Background Sync。** 延迟并重放离线时的写入。当作增强；在
[background-sync 兼容性数据](/zh/compatibility/background-sync/)中确认支持。

**角标。** 在应用图标上呈现未读状态。通过
[角标兼容性数据](/zh/compatibility/badging-api/)确认。

## 生产加固

- **Service Worker 更新。** 提供刻意设计的更新流程，使用户不被困在陈旧 worker 上——
  [生命周期参考](/zh/reference/service-worker/lifecycle/)覆盖 `waiting`、`skipWaiting`
  与更新提示。
- **存储持久性。** 为必须存活于驱逐的数据请求持久化存储；见
  [存储持久化](/zh/reference/storage/persistence/)。
- **平台怪癖。** iOS 偏离最多；把
  [iOS / Safari 平台说明](/zh/reference/platforms/ios-safari/)放在手边。

## 下一步

- [兼容性浏览器](/zh/compatibility/) —— 上述每个决定背后的支持数据。
- [能力参考](/zh/reference/capabilities/) —— 进阶 API 的深入说明。
- [生态](/zh/ecosystem/) —— 应用达到生产级后的分发与变现。

← 返回[指南](/zh/guides/)总览。