编辑 3:
Service Worker 已于 2018 年 3 月 30 日在 Safari for iOS 中发布!
编辑 2:
一位名叫 Ricky Mondello 的 Apple 开发人员在 2018 年 1 月 24 日发了推文:
https://twitter.com/rmondello/status/956256845311590400
“iOS 11.3 和 macOS 10.13.4 包含 Service Workers — 一种强大的规范,允许后台脚本为离线 Web 应用程序提供动力。iOS 11.3 在将 Web 应用程序添加到主屏幕时也会参考 Web App Manifest。”
太棒了!
还没有推送通知的消息,但仍然是惊人的消息。
编辑:
我写了一篇关于这个话题的文章点名苹果:
https://m.phillydevshop.com/apples-refusal-to-support-progressive-web-apps-is-a-serious-detriment-to-future-of-the-web-e81b2be29676
它被发布到黑客新闻上,并在 Twitter 上得到了很好的曝光。一周后,他们开始对其进行开发。所以 - 敬请期待,它似乎终于要开始了!
原始答案:
“所以这不仅仅是关于 Service Worker 和 App Manifest。”
在我看来,这正是 PWA 的真正意义所在 - 服务工作者。这就是使您能够完成 PWA 所带来的所有令人敬畏的事情的原因。基线已经可以实现很长时间了,虽然谷歌在技术上已经将它们建立为基线分类,但这些并不是 PWA 真正成为它的原因。否则它只是我书中的一个常规响应式网络应用程序。
以下是由于 Apple 拒绝支持移动 Safari(因为它们会损失应用商店的资金),您仍然无法使用移动 safari 做的事情:
- 创建应用加载屏幕
- 使用推送通知
- 添加离线支持
- 创建一个初始应用 UI 以立即加载
- 通过浏览器引导对话框提示安装到主屏幕
接受的答案确实在这里描绘了错误的画面。我已经将苹果“原生”般的移动 safari 体验推到了极限,但它仍然很糟糕。我在移动 Safari 的全屏模式方面遇到了很多问题,而 Apple 根本不关心这些问题。它被视为二等公民,因为它不像应用商店那样赚钱。
您会注意到,如果您将 Twitter 的全新且基于 react/redux 的移动网站添加到 iOS 的主屏幕,它不会以全屏模式打开。我怀疑这与我发现的原因相同 - 大量错误,Apple 团队中没有人在处理这些错误。
曾经在 iOS 全屏模式下可以在 Web 应用程序清单中使用的加载屏幕神秘地停止工作,在他们的论坛上没有任何来自 Apple 的 cmets 关于该主题的帖子。并且不得不告诉用户,“哦,嘿,只需点击分享,然后滑到‘添加到主屏幕’是一种可怕的处理方式。
这是一种可悲的状况。当前接受的答案中的列表实际上应该称为“Baseline Responsive Web App List”。
在这里回答这个问题 - 不,别无选择,你无能为力。你必须玩 Apple 的游戏,支付 100 美元才能访问应用商店,并学习一种完全不同且更复杂的编程语言,并保持完全独立的代码库。
我刚刚花了 6 个月的时间为一个客户项目学习 React Native,它非常棒。我会极力推荐它。您可以使用 JavaScript 创建真正的原生应用,并在 iOS 和 Android 之间共享您的代码库。
需要明确的是,我不是反苹果公司。我使用 iPhone 并在 Mac 上开发。但他们的商业战略的这一方面无疑是一种耻辱。