什么是IOS的渐进式Web应用解决方案

79

我想知道对于IOS设备,渐进式Web应用程序的解决方案是什么,因为它们的默认浏览器SAFARI尚不支持渐进式Web应用程序。那么,IOS同行的替代品是什么?


1
恭喜你提出了第一个问题。正如你所知,渐进式 Web 应用程序(PWA)的许多要求之一是浏览器支持服务工作者。不幸的是,Safari 不支持服务工作者,因此唯一的选择是原生应用程序或普通网站。 - José Luis
1
在@JoséLuis提出的问题之后,PWA应该遵循渐进增强的原则,并且在Safari和iOS上向后兼容。这意味着核心功能仍然可用,并且随着新功能在浏览器或操作系统中的推出,应用程序会逐步改进。 - Kevin Farrugia
2
看到我的回答吧。我写了一篇文章批评苹果。这在 Twitter 和 Hacker News 上引起了轩然大波。一周后,他们终于开始开发它了! - Greg Blass
2
最终,苹果已经在他们的TP中添加了对服务工作者的支持。您可以在此处阅读有关Safari PWA支持的更多信息:https://medium.com/awebdeveloper/progressive-web-apps-pwas-are-coming-to-a-safari-near-you-216812aba5a - aWebDeveloper
2
真的得说,把这个问题关闭为“过于宽泛”太他妈愚蠢了。真的!为什么?为什么会关闭一个如此重要的问题?简直让我大跌眼镜。 - Greg Blass
1
苹果公司发布了第一个支持服务工作线程和初始Web清单的Safari版本!https://love2dev.com/blog/apple-shipps-service-workers/ 虽然他们还有提高的空间,但这是一个非常棒的第一步! - Chris Love
2个回答

97
请注意,“支持渐进式Web应用程序的浏览器”不是一个真正的术语,PWA本身是一个Web应用程序可以为用户提供的一组功能。因此,这不仅仅涉及Service Worker和App Manifest。
查看:基线PWA检查清单
以下是在创建此答案时,您可以采取的措施来在iOS / Safari上实现PWA:
  • 网站通过HTTPS提供服务 ✅
  • 页面在平板电脑和移动设备上具有响应性 ✅
  • 至少在离线状态下加载起始URL
  • 为添加到主屏幕提供元数据 ✅❗️
  • 即使在3G网络下,第一次加载也很快 ✅
  • 网站可以跨浏览器使用 ✅
  • 页面转换不会感觉像是在网络上阻塞 ✅
  • 每个页面都有一个URL ✅
如您所见,几乎一切都可以工作,即使您的页面无法在iOS / Safari上脱机工作,将您的Web应用程序“升级”为PWA仍然具有巨大的好处。
你真正需要的不是“渐进式Web应用程序”的花哨标题,而是一个为用户提供良好体验和功能的优秀Web应用程序。这是一次旅程,你可以通过每个小部分来完成它,这就是为什么它被称为“渐进式”。
关于“添加到主屏幕”:Safari有自己的规范,称为meta标签中的“主屏幕图标”的“apple-mobile-web-app-capable”。 Web App Manifest Generator 在iOS上使用此meta标签进行回退。

7
如果没有“服务工作者”,即使具备上述功能,你也只是开发了一个快速响应的Web应用程序!本机应用程序则更加强大!! - Abhishek Nalin
1
用户询问了关于iOS的问题,回答过于笼统,被投了反对票。 - Fareed Alnamrouti
提供给“添加到主屏幕”的元数据 ✅❗️无法正常工作。您能详细说明一下吗? - Profer

77

编辑3:

Service Worker已于2018年3月30日在Safari for iOS上发布!

编辑2:

一位名叫Ricky Mondello的苹果开发人员于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成为PWA的元素。否则,在我看来,它只是一个普通的响应式Web应用程序。

以下是由于苹果拒绝支持它们而在移动Safari上仍然无法实现的事情列表(因为他们将失去应用商店的收益):
  • 创建应用程序加载屏幕
  • 使用推送通知
  • 添加离线支持
  • 创建初始应用程序 UI 以立即加载
  • 通过浏览器引导对话框提示将应用安装到主屏幕
被接受的答案真正描述了错误的情况。我已经将移动Safari中的苹果“本地”体验推至极限,但仍然非常糟糕。我遇到了许多移动 Safari 全屏模式的问题,但 Apple 并不关心它们。它被视为二等公民,因为它不能像应用商店一样产生收入。
如果在 iOS 上将 Twitter 的新的、很棒的基于 React/Redux 的移动站点添加到主屏幕中,您会注意到它不会以全屏模式打开。我怀疑这是出于与我发现的相同的原因 - 有大量的 bug,没有任何苹果团队在处理它们。
曾经在 web app manifest 中可用的 iOS 全屏模式加载屏幕神秘地停止工作,苹果在其论坛上没有任何评论或帖子。并且告诉用户“嘿,只需点击分享,然后滑动到“添加到主屏幕”这是一种可怕的事情。
这是一个悲哀的局面。当前接受的答案中的列表应该真正被称为“基线响应式 Web 应用程序列表”。
回到这里的问题-不,没有替代方案,也没有什么可以做的。你必须参与苹果的游戏,支付100美元获得应用商店的访问权限,并学习完全不同而更复杂的编程语言,并保持完全独立的代码库。
我刚刚花了6个月的时间学习 React Native,用于客户项目,这是很棒的。我强烈推荐它。您可以使用 JavaScript 创建真正的本机应用程序,并在 iOS 和 Android 之间共享代码库。
要明确一点,我不反对苹果。我使用 iPhone 并在 Mac 上开发。但他们业务策略的这一方面肯定是令人惋惜的。

2
我认为Swift/Xcode是市场上最易于使用的语言/IDE。它们构建了一种现代化的开发语言和一种新范式,协议导向编程,解决了许多与多重继承相关的问题。他们没有尝试将其用途扩展到自己产品以外的领域是遗憾的,但称其比TypeScript/JavaScript更复杂是误导人的。我认为TypeScript是他们放在丑陋语言上的丑陋创可贴。我希望Web浏览器能说Swift。 - Ryan Dines
有人在我的文章中向我提到了同样的事情。我对它进行了编辑以使它更加详细。但你说的没错 - 我可能有从 web 的角度出发的偏见。但是 Facebook 的团队在 web 上比本地应用程序快 5 倍迭代,这就是为什么他们开发了 React Native - 所以我认为它是有一定价值的。 - Greg Blass

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接