兼容性
发布于
兼容性是一个 BCD 式数据浏览器,回答*「这个特性能在 PWA 里用吗?」*—— 跨操作系统、浏览器、版本,并且独有地按真实浏览器份额加权的国家/地区有效可达率。 它还覆盖决定能力能否真正落地生产的生态政策维度(广告网络、支付、商店接纳), 而不仅是特性是否发布。
按特性单特性支持矩阵:OS × 浏览器 × 版本。
按 OS特性 × 操作系统透视表。
按浏览器特性 × 浏览器家族透视表。
按国家/地区按真实浏览器份额加权的有效 PWA 可达率——差异化所在。
政策维度把广告、支付与商店接纳政策当作一等兼容性数据。
国内厂商浏览器华为、小米、OPPO、UC、QQ 浏览器与微信内置 WebView:安装、standalone、Service Worker、Web Push,只依据厂商文档。
每个特性都有规范页面,包含 OS × 浏览器 × 版本矩阵、生态政策行、完整溯源, 以及机器可读的 JSON 导出。
- 图例
- 支持
- 部分支持
- 需开启标志
- 不支持
- 未知
| 特性 | 类别 | 摘要 | 最佳支持 | 目标数 | 置信度 |
|---|---|---|---|---|---|
| Async Clipboard API(异步剪贴板) | Capabilities | 通过 navigator.clipboard 以编程方式读写系统剪贴板,受用户手势或 clipboard-read / clipboard-write 权限约束。 | 支持 | 9 | 高 |
| Background Fetch(后台获取) | Service Worker | Background Fetch API 让 Service Worker 把耗时的下载(或上传)交给浏览器本身执行:浏览器向用户显示进度和取消控件,并在操作结束后以事件唤醒 Service Worker。 | 支持 | 9 | 高 |
| Background Sync(后台同步) | Capabilities | 通过 Service Worker 把操作推迟到用户网络稳定后再执行。 | 支持 | 9 | 高 |
| Badging API(角标) | Engagement | 为已安装的 PWA 设置应用图标角标(数字或圆点)。 | 支持 | 7 | 中 |
| 国内厂商浏览器 | Platforms | 中国大陆用户实际使用的 Android 浏览器中 PWA 的表现:华为浏览器(HarmonyOS)、小米浏览器、OPPO 浏览器(ColorOS)、UC 浏览器、QQ 浏览器和微信内置 WebView(XWeb),分别考察添加到主屏幕、standalone 显示、Service Worker 和 Web Push。browser-compat-data 没有收录其中任何一个,所以每一行都只依据厂商文档;厂商没有说明的行标为未知,而不是猜测。 | 支持 | 24 | 低 |
| Contact Picker(联系人选择器) | Device | Contact Picker API 让页面请求用户从设备通讯录中选择一个或多个联系人,并只分享站点请求的字段,而不授予对通讯录的持续访问权限。 | 支持 | 9 | 高 |
| EyeDropper API(取色器) | Capabilities | EyeDropper API 在用户手势下打开浏览器提供的取色器,并以 sRGBHex 格式返回所采样像素的颜色,用于自定义颜色选择器。 | 支持 | 9 | 高 |
| File System Access API(文件系统访问) | Capabilities | 在明确授权下读写用户的本地文件系统。 | 支持 | 7 | 中 |
| Generic Sensor API(通用传感器) | Capabilities | Sensor API 以统一的设计暴露设备传感器;下表以具有代表性的 Accelerometer 接口为准,它需要安全上下文和 Permissions API 授权。 | 支持 | 9 | 高 |
| Geolocation API(地理定位) | Capabilities | 在明确授权下读取用户的地理位置,可一次性获取或持续监听。 | 支持 | 9 | 高 |
| getInstalledRelatedApps()(检测已安装的关联应用) | APIs | navigator.getInstalledRelatedApps() 报告 manifest 中声明的关联原生应用或 PWA 哪些已安装在设备上。 | 支持 | 8 | 低 |
| Idle Detection API(空闲检测) | Capabilities | Idle Detection API 的 IdleDetector 接口报告用户处于活跃还是空闲状态、屏幕是否已锁定,受 idle-detection 权限和 60 秒最小阈值约束。 | 支持 | 9 | 高 |
| 安装提示(beforeinstallprompt) | Installation | 通过 beforeinstallprompt 事件以编程方式控制 PWA 安装提示。 | 支持 | 7 | 中 |
| Local Font Access(本地字体访问) | Capabilities | Local Font Access API 的 window.queryLocalFonts() 方法以 FontData 对象返回用户设备上安装的字体,受 local-fonts 权限提示约束。 | 支持 | 9 | 高 |
| 清单协议处理器(protocol_handlers) | Manifest | 通过 manifest.protocol_handlers 把 PWA 注册为自定义或白名单内 URL 协议的处理程序。 | 支持 | 7 | 中 |
| Web 应用清单:file_handlers | Manifest | file_handlers 成员把已安装的 PWA 注册为操作系统中特定文件类型的处理程序,文件通过 window.launchQueue 传递给应用。 | 支持 | 9 | 高 |
| Web 应用清单:id | Manifest | id 成员为 PWA 提供与 start_url 解耦的稳定身份。 | 支持 | 9 | 高 |
| Web 应用清单:launch_handler | Manifest | launch_handler 成员的 client_mode 控制启动已安装应用时是复用现有窗口还是新开窗口,以及该窗口是否导航到启动目标 URL。 | 支持 | 9 | 高 |
| Web 应用清单:scope_extensions | Manifest | scope_extensions 成员让已安装 PWA 的导航范围扩展到它拥有的其他源,每个源通过 .well-known/web-app-origin-association 文件验证。 | 支持 | 9 | 高 |
| Web 应用清单:share_target | Manifest | share_target 成员把已安装的 PWA 注册为操作系统原生分享面板中的目标。 | 支持 | 6 | 低 |
| Web 应用清单:shortcuts | Manifest | shortcuts 成员为已安装 PWA 的操作系统上下文菜单添加快捷操作项。 | 支持 | 7 | 低 |
| Notification Triggers(通知触发器) | Engagement | Notification Triggers 曾是 ServiceWorkerRegistration.showNotification() 的一个提案选项 showTrigger,用 TimestampTrigger 把通知安排在未来某个时刻显示;Chrome 自己的文档说明该特性已停止开发。 | 不支持 | 1 | 中 |
| Notification.permission / requestPermission()(通知权限) | Notifications | 三态的 permission 属性及其请求方法,依据 MDN 标记为「有限可用」的浏览器兼容性数据。不包含单独的 Notification() 构造函数,后者在 Android 上另有限制。 | 支持 | 9 | 中 |
| Payment Request API(支付请求) | Commerce | 由浏览器居中的结账面板,收集支付与联系信息。 | 支持 | 7 | 中 |
| Periodic Background Sync(周期性后台同步) | Service Worker | Periodic Background Sync API 让已安装 PWA 的 Service Worker 在后台周期性同步数据,受安装状态和 Chrome 站点参与度启发式规则约束。 | 支持 | 9 | 高 |
| Persistent Storage(持久化存储) | Storage | navigator.storage.persist() 请求保护数据不被自动逐出。 | 支持 | 9 | 高 |
| Screen Wake Lock(屏幕常亮锁) | Device | Screen Wake Lock API 让页面请求设备屏幕保持常亮、不变暗也不锁定,标签页隐藏时自动释放锁。 | 支持 | 10 | 低 |
| Service Worker | Capabilities | 可编程的网络代理,为 PWA 提供离线、缓存与推送能力。 | 支持 | 7 | 中 |
| Storage Buckets(存储分桶) | Capabilities | Storage Buckets API 让页面通过 navigator.storageBuckets 创建多个独立命名的存储桶,每个桶有自己的 IndexedDB、Cache 和配额逐出策略,而不是共用一个源级存储池。 | 支持 | 5 | 低 |
| Trusted Web Activity 可用性 | Installation | Android 上把经过验证的 Web 源以全屏 Chrome Custom Tab 打开的机制,通过 Digital Asset Links 验证;生成的安装包可直接安装到设备或上传到 Play 商店。 | 支持 | 1 | 中 |
| Web 应用清单:categories | Manifest | categories 成员列出 Web 应用的应用商店分类;它是应用商店元数据,不是浏览器渲染的特性,因此不适用浏览器兼容性。 | 未知 | 6 | 中 |
| Web 应用清单:description | Manifest | description 成员是一段说明 PWA 用途的字符串;支持它的浏览器和应用商店会在安装界面和应用列表中显示这段文字。 | 支持 | 9 | 高 |
| Web 应用清单:display | Manifest | display 成员选择已安装应用的窗口模式(standalone、fullscreen、minimal-ui、browser)。 | 支持 | 7 | 中 |
| Web 应用清单:display_override | Manifest | display_override 成员提供显示模式的回退链,让 PWA 优先使用较新的模式,同时能回退到标准模式。 | 支持 | 9 | 高 |
| Web 应用清单:display_override 的 "tabbed" 模式 | Manifest | "tabbed" 这个 display_override 值与 tab_strip 成员让已安装的 PWA 在自己的应用窗口内呈现多标签文档界面。 | 支持 | 9 | 高 |
| Web 应用清单:handle_links | Manifest | handle_links 成员让已安装的 PWA 声明范围内链接是否应在应用内打开;它仍是 WICG 提案,chromestatus.com 把 Chrome 自身的实现记录为「On hold」,没有发布里程碑。 | 不支持 | 1 | 中 |
| Web 应用清单:icons | Manifest | icons 成员为 PWA 提供主屏幕、任务切换器和安装对话框中使用的图像,并支持能适配各平台形状的 maskable 图标。 | 支持 | 8 | 低 |
| Web 应用清单:name / short_name | Manifest | name 与 short_name 成员定义 PWA 在安装提示、应用架和主屏幕上的显示名称。 | 支持 | 9 | 高 |
| Web 应用清单:orientation | Manifest | orientation 成员设置已安装 Web 应用启动和运行时的默认屏幕方向。 | 支持 | 9 | 高 |
| Web 应用清单:prefer_related_applications | Manifest | prefer_related_applications 是一个布尔提示,浏览器可据此优先安装 related_applications 中列出的应用,而不是 Web 应用本身。 | 支持 | 9 | 高 |
| Web 应用清单:related_applications | Manifest | related_applications 列出与 PWA 相关的原生应用或商店应用,是 Navigator.getInstalledRelatedApps() 的数据来源。prefer_related_applications 是独立的 manifest 成员,有自己的 BCD 条目,因此单独成一个数据集(manifest-prefer-related-applications)。 | 支持 | 9 | 高 |
| Web 应用清单:scope | Manifest | scope 成员划定已安装应用的导航边界。 | 支持 | 7 | 中 |
| Web 应用清单:screenshots | Manifest | screenshots 成员为浏览器安装界面和商店列表提供更丰富的展示。 | 支持 | 7 | 中 |
| Web 应用清单:start_url | Manifest | start_url 成员指定用户从主屏幕或应用架启动已安装 PWA 时加载的 URL。 | 支持 | 9 | 高 |
| Web 应用清单:theme_color / background_color | Manifest | theme_color 与 background_color 成员分别设置已安装 PWA 的界面外框颜色和启动画面 / 加载背景颜色。 | 支持 | 18 | 高 |
| Web Bluetooth API(网页蓝牙) | Capabilities | Web Bluetooth API 让 Web 应用通过 navigator.bluetooth.requestDevice() 请求访问附近的低功耗蓝牙(BLE)设备,并与其 GATT 服务通信。它是 WICG 规范,Firefox 和 Safari 尚未支持。 | 支持 | 10 | 高 |
| Web Locks API(网页锁) | Capabilities | navigator.locks.request() 让标签页或 worker 中的脚本获取独占或共享的、按源隔离的锁,以协调对共享资源的访问。 | 支持 | 9 | 高 |
| Web NFC API | Capabilities | Web NFC API 让 Web 应用通过 NDEFReader 接口读写 NFC 标签上的 NDEF 消息。它是 W3C 社区组草案。 | 支持 | 9 | 高 |
| Web Push(网页推送) | Engagement | 通过 Push API 与 Service Worker 投递服务器推送消息,即使应用已关闭。 | 支持 | 7 | 中 |
| Web Serial API(网页串口) | Capabilities | Web Serial API 让 Web 应用通过 navigator.serial.requestPort() 请求访问串口并读写数据。它是 WICG 规范。 | 支持 | 9 | 高 |
| Web Share API(网页分享) | Capabilities | Web Share API 调起平台原生分享面板,让用户从 PWA 分享文本、URL 或文件。Share Target(通过 manifest share_target 接收分享内容)单独立项;MDN BCD 尚未收录它的兼容性数据。 | 支持 | 9 | 高 |
| WebAPK 可用性 | Installation | Chrome 把 PWA 安装为真正 Android 应用的机制,应用拥有自己的包身份、启动画面和深层链接注册。 | 支持 | 1 | 中 |
| WebAuthn / PublicKeyCredential(网页身份验证) | Capabilities | PublicKeyCredential 让 PWA 通过平台或漫游认证器,以公钥凭据代替密码注册和认证用户。按 MDN 的说法,通行密钥(passkey)是基于同一 PublicKeyCredential API 的可发现 WebAuthn 凭据;本矩阵反映的是 PublicKeyCredential 的基础可用性。 | 支持 | 9 | 高 |
| WebCodecs API(网页编解码) | Capabilities | WebCodecs API 通过 VideoEncoder、VideoDecoder、AudioEncoder 和 AudioDecoder 让 Web 应用以底层、硬件加速的方式编解码单个视频帧和音频块。它是 W3C 规范。 | 支持 | 18 | 高 |
| WebGPU | Capabilities | WebGPU 通过 navigator.gpu.requestAdapter() / requestDevice() 和 WGSL 着色语言把 GPU 渲染与计算能力带到 Web。它是 W3C 规范。 | 支持 | 9 | 高 |
| WebHID API | Capabilities | WebHID API 让 Web 应用通过 navigator.hid.requestDevice() 请求访问非标准的人机接口设备,并与其交换输入 / 输出 / 特性报告。它是 WICG 规范。 | 支持 | 9 | 高 |
| WebRTC(RTCPeerConnection) | Capabilities | 在浏览器之间直接建立实时的点对点音频、视频和数据连接。 | 支持 | 9 | 高 |
| WebTransport | Networking | WebTransport 是基于 HTTP/3 的灵活、低延迟、双向客户端—服务器消息传递 Web API,在单个连接上同时提供可靠流和类似 UDP 的不可靠数据报。 | 支持 | 9 | 高 |
| WebUSB API | Capabilities | WebUSB API 让 Web 应用通过 navigator.usb.requestDevice() 请求访问非标准 USB 设备并直接与之通信。它是 WICG 规范,Firefox 和 Safari 尚未支持。 | 支持 | 10 | 高 |
| Window Management(窗口管理) | Capabilities | Window Management API 让页面发现设备连接的屏幕(window.screen.isExtended),并在权限提示后获取每块屏幕的详细信息以精确放置窗口(Window.getScreenDetails())。 | 支持 | 9 | 高 |
兼容性数据由机器可读 JSON 渲染,并以 Dataset JSON-LD 暴露,每个特性的 JSON 导出位于
/compatibility/<feature>.json,方便搜索与 LLM 引用原始数据。