跳转到内容

兼容性

发布于

兼容性是一个 BCD 式数据浏览器,回答*「这个特性能在 PWA 里用吗?」*—— 跨操作系统、浏览器、版本,并且独有地按真实浏览器份额加权的国家/地区有效可达率。 它还覆盖决定能力能否真正落地生产的生态政策维度(广告网络、支付、商店接纳), 而不仅是特性是否发布。

每个特性都有规范页面,包含 OS × 浏览器 × 版本矩阵、生态政策行、完整溯源, 以及机器可读的 JSON 导出。

  • 图例
  • 支持
  • 部分支持
  • 需开启标志
  • 不支持
  • 未知
特性类别摘要最佳支持目标数置信度
Async Clipboard API(异步剪贴板)Capabilities通过 navigator.clipboard 以编程方式读写系统剪贴板,受用户手势或 clipboard-read / clipboard-write 权限约束。支持9高
Background Fetch(后台获取)Service WorkerBackground 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(联系人选择器)DeviceContact Picker API 让页面请求用户从设备通讯录中选择一个或多个联系人,并只分享站点请求的字段,而不授予对通讯录的持续访问权限。支持9高
EyeDropper API(取色器)CapabilitiesEyeDropper API 在用户手势下打开浏览器提供的取色器,并以 sRGBHex 格式返回所采样像素的颜色,用于自定义颜色选择器。支持9高
File System Access API(文件系统访问)Capabilities在明确授权下读写用户的本地文件系统。支持7中
Generic Sensor API(通用传感器)CapabilitiesSensor API 以统一的设计暴露设备传感器;下表以具有代表性的 Accelerometer 接口为准,它需要安全上下文和 Permissions API 授权。支持9高
Geolocation API(地理定位)Capabilities在明确授权下读取用户的地理位置,可一次性获取或持续监听。支持9高
getInstalledRelatedApps()(检测已安装的关联应用)APIsnavigator.getInstalledRelatedApps() 报告 manifest 中声明的关联原生应用或 PWA 哪些已安装在设备上。支持8低
Idle Detection API(空闲检测)CapabilitiesIdle Detection API 的 IdleDetector 接口报告用户处于活跃还是空闲状态、屏幕是否已锁定,受 idle-detection 权限和 60 秒最小阈值约束。支持9高
安装提示(beforeinstallprompt)Installation通过 beforeinstallprompt 事件以编程方式控制 PWA 安装提示。支持7中
Local Font Access(本地字体访问)CapabilitiesLocal Font Access API 的 window.queryLocalFonts() 方法以 FontData 对象返回用户设备上安装的字体,受 local-fonts 权限提示约束。支持9高
清单协议处理器(protocol_handlers)Manifest通过 manifest.protocol_handlers 把 PWA 注册为自定义或白名单内 URL 协议的处理程序。支持7中
Web 应用清单:file_handlersManifestfile_handlers 成员把已安装的 PWA 注册为操作系统中特定文件类型的处理程序,文件通过 window.launchQueue 传递给应用。支持9高
Web 应用清单:idManifestid 成员为 PWA 提供与 start_url 解耦的稳定身份。支持9高
Web 应用清单:launch_handlerManifestlaunch_handler 成员的 client_mode 控制启动已安装应用时是复用现有窗口还是新开窗口,以及该窗口是否导航到启动目标 URL。支持9高
Web 应用清单:scope_extensionsManifestscope_extensions 成员让已安装 PWA 的导航范围扩展到它拥有的其他源,每个源通过 .well-known/web-app-origin-association 文件验证。支持9高
Web 应用清单:share_targetManifestshare_target 成员把已安装的 PWA 注册为操作系统原生分享面板中的目标。支持6低
Web 应用清单:shortcutsManifestshortcuts 成员为已安装 PWA 的操作系统上下文菜单添加快捷操作项。支持7低
Notification Triggers(通知触发器)EngagementNotification 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 WorkerPeriodic Background Sync API 让已安装 PWA 的 Service Worker 在后台周期性同步数据,受安装状态和 Chrome 站点参与度启发式规则约束。支持9高
Persistent Storage(持久化存储)Storagenavigator.storage.persist() 请求保护数据不被自动逐出。支持9高
Screen Wake Lock(屏幕常亮锁)DeviceScreen Wake Lock API 让页面请求设备屏幕保持常亮、不变暗也不锁定,标签页隐藏时自动释放锁。支持10低
Service WorkerCapabilities可编程的网络代理,为 PWA 提供离线、缓存与推送能力。支持7中
Storage Buckets(存储分桶)CapabilitiesStorage Buckets API 让页面通过 navigator.storageBuckets 创建多个独立命名的存储桶,每个桶有自己的 IndexedDB、Cache 和配额逐出策略,而不是共用一个源级存储池。支持5低
Trusted Web Activity 可用性InstallationAndroid 上把经过验证的 Web 源以全屏 Chrome Custom Tab 打开的机制,通过 Digital Asset Links 验证;生成的安装包可直接安装到设备或上传到 Play 商店。支持1中
Web 应用清单:categoriesManifestcategories 成员列出 Web 应用的应用商店分类;它是应用商店元数据,不是浏览器渲染的特性,因此不适用浏览器兼容性。未知6中
Web 应用清单:descriptionManifestdescription 成员是一段说明 PWA 用途的字符串;支持它的浏览器和应用商店会在安装界面和应用列表中显示这段文字。支持9高
Web 应用清单:displayManifestdisplay 成员选择已安装应用的窗口模式(standalone、fullscreen、minimal-ui、browser)。支持7中
Web 应用清单:display_overrideManifestdisplay_override 成员提供显示模式的回退链,让 PWA 优先使用较新的模式,同时能回退到标准模式。支持9高
Web 应用清单:display_override 的 "tabbed" 模式Manifest"tabbed" 这个 display_override 值与 tab_strip 成员让已安装的 PWA 在自己的应用窗口内呈现多标签文档界面。支持9高
Web 应用清单:handle_linksManifesthandle_links 成员让已安装的 PWA 声明范围内链接是否应在应用内打开;它仍是 WICG 提案,chromestatus.com 把 Chrome 自身的实现记录为「On hold」,没有发布里程碑。不支持1中
Web 应用清单:iconsManifesticons 成员为 PWA 提供主屏幕、任务切换器和安装对话框中使用的图像,并支持能适配各平台形状的 maskable 图标。支持8低
Web 应用清单:name / short_nameManifestname 与 short_name 成员定义 PWA 在安装提示、应用架和主屏幕上的显示名称。支持9高
Web 应用清单:orientationManifestorientation 成员设置已安装 Web 应用启动和运行时的默认屏幕方向。支持9高
Web 应用清单:prefer_related_applicationsManifestprefer_related_applications 是一个布尔提示,浏览器可据此优先安装 related_applications 中列出的应用,而不是 Web 应用本身。支持9高
Web 应用清单:related_applicationsManifestrelated_applications 列出与 PWA 相关的原生应用或商店应用,是 Navigator.getInstalledRelatedApps() 的数据来源。prefer_related_applications 是独立的 manifest 成员,有自己的 BCD 条目,因此单独成一个数据集(manifest-prefer-related-applications)。支持9高
Web 应用清单:scopeManifestscope 成员划定已安装应用的导航边界。支持7中
Web 应用清单:screenshotsManifestscreenshots 成员为浏览器安装界面和商店列表提供更丰富的展示。支持7中
Web 应用清单:start_urlManifeststart_url 成员指定用户从主屏幕或应用架启动已安装 PWA 时加载的 URL。支持9高
Web 应用清单:theme_color / background_colorManifesttheme_color 与 background_color 成员分别设置已安装 PWA 的界面外框颜色和启动画面 / 加载背景颜色。支持18高
Web Bluetooth API(网页蓝牙)CapabilitiesWeb Bluetooth API 让 Web 应用通过 navigator.bluetooth.requestDevice() 请求访问附近的低功耗蓝牙(BLE)设备,并与其 GATT 服务通信。它是 WICG 规范,Firefox 和 Safari 尚未支持。支持10高
Web Locks API(网页锁)Capabilitiesnavigator.locks.request() 让标签页或 worker 中的脚本获取独占或共享的、按源隔离的锁,以协调对共享资源的访问。支持9高
Web NFC APICapabilitiesWeb NFC API 让 Web 应用通过 NDEFReader 接口读写 NFC 标签上的 NDEF 消息。它是 W3C 社区组草案。支持9高
Web Push(网页推送)Engagement通过 Push API 与 Service Worker 投递服务器推送消息,即使应用已关闭。支持7中
Web Serial API(网页串口)CapabilitiesWeb Serial API 让 Web 应用通过 navigator.serial.requestPort() 请求访问串口并读写数据。它是 WICG 规范。支持9高
Web Share API(网页分享)CapabilitiesWeb Share API 调起平台原生分享面板,让用户从 PWA 分享文本、URL 或文件。Share Target(通过 manifest share_target 接收分享内容)单独立项;MDN BCD 尚未收录它的兼容性数据。支持9高
WebAPK 可用性InstallationChrome 把 PWA 安装为真正 Android 应用的机制,应用拥有自己的包身份、启动画面和深层链接注册。支持1中
WebAuthn / PublicKeyCredential(网页身份验证)CapabilitiesPublicKeyCredential 让 PWA 通过平台或漫游认证器,以公钥凭据代替密码注册和认证用户。按 MDN 的说法,通行密钥(passkey)是基于同一 PublicKeyCredential API 的可发现 WebAuthn 凭据;本矩阵反映的是 PublicKeyCredential 的基础可用性。支持9高
WebCodecs API(网页编解码)CapabilitiesWebCodecs API 通过 VideoEncoder、VideoDecoder、AudioEncoder 和 AudioDecoder 让 Web 应用以底层、硬件加速的方式编解码单个视频帧和音频块。它是 W3C 规范。支持18高
WebGPUCapabilitiesWebGPU 通过 navigator.gpu.requestAdapter() / requestDevice() 和 WGSL 着色语言把 GPU 渲染与计算能力带到 Web。它是 W3C 规范。支持9高
WebHID APICapabilitiesWebHID API 让 Web 应用通过 navigator.hid.requestDevice() 请求访问非标准的人机接口设备,并与其交换输入 / 输出 / 特性报告。它是 WICG 规范。支持9高
WebRTC(RTCPeerConnection)Capabilities在浏览器之间直接建立实时的点对点音频、视频和数据连接。支持9高
WebTransportNetworkingWebTransport 是基于 HTTP/3 的灵活、低延迟、双向客户端—服务器消息传递 Web API,在单个连接上同时提供可靠流和类似 UDP 的不可靠数据报。支持9高
WebUSB APICapabilitiesWebUSB API 让 Web 应用通过 navigator.usb.requestDevice() 请求访问非标准 USB 设备并直接与之通信。它是 WICG 规范,Firefox 和 Safari 尚未支持。支持10高
Window Management(窗口管理)CapabilitiesWindow Management API 让页面发现设备连接的屏幕(window.screen.isExtended),并在权限提示后获取每块屏幕的详细信息以精确放置窗口(Window.getScreenDetails())。支持9高

已收录 60 个特性,持续增长。

兼容性数据由机器可读 JSON 渲染,并以 Dataset JSON-LD 暴露,每个特性的 JSON 导出位于 /compatibility/<feature>.json,方便搜索与 LLM 引用原始数据。