尽管渐进式 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: fullscreendisplay: 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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注