尽管渐进式 Web 应用(PWA)在许多方面为用户提供了接近原生应用的体验,但在 iOS 平台上,其功能仍受到一定限制:
1. iOS 平台对 PWA 的主要限制
- Service Worker 的支持不足
iOS 不允许 PWA 在后台自动更新 Service Worker,用户需要手动刷新页面来获取最新版本。 - 有限的缓存容量
PWA 的离线缓存容量受到限制,单个应用的最大缓存容量为 50MB,可能无法支持较大的离线功能。 - 缺乏推送通知功能
iOS 不支持 Web 推送通知 API,因此无法通过 PWA 向用户发送消息。 - 全屏模式要求
PWA 需要被添加到主屏幕后,才能以全屏模式运行,否则在浏览器中会受限于 Safari 的 UI 样式。 - 自动清理机制
若用户长时间未使用某个 PWA(如连续几周),iOS 可能会自动清理其离线数据。重新打开应用时,需要重新下载相关文件。 - 对设备功能的访问受限
PWA 无法访问诸如蓝牙、Beacon 信标、触控 ID、面容 ID、ARKit、高度计、电池信息等许多原生设备功能,也无法执行后台代码或访问私有信息(如联系人、后台定位等)。 - 多应用交互与分屏模式
在 iPad 上,PWA 无法使用分屏或侧拉功能,与其他应用的交互体验较弱。
2. iOS 平台 PWA 的可用能力
尽管存在诸多限制,PWA 在 iOS 平台上仍然能够访问部分关键功能,包括:
- 地理位置:通过 Web API 获取定位信息。
- 传感器数据:包括磁力计、加速度计和陀螺仪。
- 摄像头和音频输出:支持媒体捕获和播放功能。
- Apple Pay:可以集成 Web 版的 Apple Pay 功能。
- 现代 Web 技术:支持 WebAssembly、WebRTC、WebGL 等技术,以及部分实验性功能(需手动启用)。
3. 与原生 iOS 应用的对比局限
PWA 在 iOS 上的一些具体限制与原生应用的差距包括:
- 存储限制:离线存储数据上限为 50MB,无法满足大型应用需求。
- 后台运行能力不足:PWA 无法在后台执行代码,也无法在设备锁屏时保持运行。
- 缺乏通知功能:无法实现推送通知、图标标记等功能,也无法与 Siri 集成。
- 无法使用原生支付与其他服务:PWA 无法直接集成 App Store 的应用内购买机制,也无法使用部分 Apple 服务。
- 缺乏系统级功能:如蓝牙、Touch ID、Face ID、ARKit、高度计、状态栏样式自定义等均无法支持。
4. 与 Android 平台 PWA 的对比
与 Android 平台相比,iOS 上的 PWA 存在以下不足:
- 数据存储限制:Android PWA 数据存储量可以超过 50MB,且支持持久存储(Persistent Storage),iOS 则无此功能。
- 蓝牙功能:Android 可通过 Web API 访问 BLE 设备,iOS 无法实现。
- 后台功能支持:Android 支持后台同步与推送通知,而 iOS 不支持。
- 更友好的安装体验:Android 支持 Web App Banner,用户可直接通过提示安装 PWA,而 iOS 需用户手动添加至主屏幕。
- 启动界面定制:Android 可以略微定制 PWA 的启动画面和屏幕方向,iOS 则受限较多。
PWA 安装到 iOS 主屏幕的常见问题
1. 安装流程复杂,用户体验差
- 与 Android 平台上的自动提示安装相比,iOS 需要用户手动通过 Safari 浏览器的“分享”菜单选择“添加到主屏幕”。这对技术门槛较高的用户来说不够友好,也不利于应用的推广。
- 许多用户表示无法找到“添加到主屏幕”的选项,导致安装率低于预期。相比之下,同样的应用在 Android 平台上因自动安装提示,获得了更高的转化率。
2. 主屏幕图标行为异常
- 安装到主屏幕后,PWA 图标有时无法正常显示,可能会出现以下情况:
- 图标模糊或低分辨率。
- 图标消失或替换为默认的 Safari 图标。
- 重复安装同一 PWA 时,会出现多个图标,尽管它们指向同一应用实例。
- 部分 iOS 用户安装应用后,主屏幕上的图标显示模糊,难以辨认品牌形象。进一步测试发现,iOS 忽略了 Web App Manifest 中定义的高分辨率图标,默认使用低分辨率版本。
3. 数据存储被清理
- iOS 会自动清理未使用的 PWA 的离线数据(如缓存和本地存储),导致以下问题:
- 用户长时间未使用应用时,离线数据被清理,需重新加载。
- 数据清理过程不可预测,用户体验受到影响。
- 而在 Android 上,这些文件能够持久存储,避免了此类问题。
4. 全屏模式的兼容性问题
- iOS 要求 PWA 安装到主屏幕后才能以独立窗口模式运行,但即使在独立模式下,也无法完全支持全屏显示:
- 状态栏会重叠在应用顶部内容上。
display: fullscreen
和display: minimal-ui
均无法完全生效。
- 例如视频播放 PWA 在 iOS 上尝试提供沉浸式观影体验,但状态栏始终占据屏幕顶部空间,干扰了视觉效果。开发者尝试使用 CSS 和旧版 meta 标签模拟全屏,但仍未能完全解决。
5. 无法使用推送通知
- PWA 在 iOS 上不支持 Web 推送通知,因此无法通过通知功能与用户保持互动。这对依赖消息通知的应用(如社交、新闻或电商)影响尤其显著。
- 在 Android 平台,通知功能显著提高了用户的购买率,但在 iOS 上无法实现同样的效果,导致用户参与度较低。
6. 安装后行为不一致
- 安装到主屏幕后,PWA 的行为可能与预期不符:
- 再次访问 PWA 链接时,有时会在 Safari 中打开而非以独立窗口运行。
- 打开 PWA 时,页面可能重新加载而非恢复上次访问状态。
- 例如任务管理 PWA 在 iOS 上安装后,用户反馈独立窗口模式经常跳转回 Safari 浏览器,影响多任务处理的连贯性。同时,任务数据在多次打开之间未能保持同步。
7. 蓝牙和其他设备功能受限
- iOS 上的 PWA 无法访问蓝牙设备、ARKit 或其他高级设备功能。这使得某些功能依赖硬件交互的应用无法提供完整的用户体验。
- 例如智能家居管理 PWA 在 iOS 上被限制无法连接蓝牙设备,用户只能通过原生应用完成设备配对和控制。相比之下,Android 版本能够正常工作并提供更丰富的功能。
有问题找NB早鸟出海,NB早鸟出海深耕出海近十年,专业提供Google/Facebook/Tiktok广告账户,谷歌/iOS上架&开发者账户,PWA/W2A/H5/APP代投。欢迎咨询飞机:@nboversea