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

时间:2016-12-16 13:25:46

标签: progressive-web-apps

我想知道IOS设备的渐进式网络应用程序的解决方案是什么,因为他们的默认浏览器SAFARI还不支持渐进式网络应用程序。 什么是替代品然后是IOS的同行呢?

2 个答案:

答案 0 :(得分:91)

请注意,“支持Progressive Web Apps的浏览器”不是一个真正的术语,PWA本身是Web应用程序可以为用户提供的一组功能。所以它不只是关于Service Worker和App Manifest。

退房:Baseline PWA Checklist

在创建此答案时,您可以采取以下措施在iOS / Safari上实现PWA:

  • 网站通过HTTPS served
  • 提供
  • 页面对平板电脑和移动设备✅
  • 离线时加载起始网址(至少)
  • 为添加到主屏幕提供的元数据✅❗️
  • 即使在3G First
  • 上首先加载速度很快
  • 网站跨浏览器工作✅
  • 页面转换感觉不像是在网络上阻止✅
  • 每个页面都有一个URL✅

正如您所看到的,即使您的网页无法在iOS / Safari上脱机工作,几乎所有内容都能正常运行,将您的网络应用“升级”为PWA仍然有很大的好处。

您真正想要的不是“渐进式网络应用程序”的精彩标题,而是一个为用户提供良好体验和功能的优秀网络应用程序。这是一个旅程,因为你可以通过每个小部件完成它,这就是它被称为“渐进式”的原因。

关于“添加到主屏幕”的注意事项:Safari在元标记中有一个名为apple-mobile-web-app-capable的“主屏幕图标”的自己的规范。Web App Manifest Generator使用此元数据的iOS回退标签

答案 1 :(得分:71)

编辑3:

服务工作者已于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包括服务工作者 - 一个功能强大的规范,允许后台脚本为离线Web应用程序供电。在将Web应用程序添加到主屏幕时,iOS 11.3也会参考Web App Manifest。”

真棒!

还没有关于推送通知的消息,但仍然是令人惊讶的消息。

编辑:

我写了一篇文章,主题是Apple:

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拒绝支持移动游戏而仍无法使用移动版游戏的内容(因为它们会丢失应用商店资金):

  • 创建应用加载屏幕
  • 使用推送通知
  • 添加离线支持
  • 创建一个即时加载的初始应用UI
  • 通过浏览器引导的对话框提示安装到主屏幕

接受的答案真的在这里描绘了错误的图片。我已经将苹果“原生”的移动游猎体验推向极限,但仍然非常糟糕。我在移动safari的全屏模式下遇到了很多问题,Apple并不关心它们。它被视为二等公民,因为它不会像app商店那样产生金钱。

您会注意到,如果您将基于Twitter的新的和令人敬畏的基于react / redux的移动网站添加到iOS上的主屏幕,它将无法以全屏模式打开。我怀疑这与我发现的原因相同 - 错误很多,苹果公司的团队中没有人在研究它们。

在iOS应用程序清单中可用的iOS全屏模式下曾经可以进行的加载屏幕神秘地停止了工作,苹果在论坛上没有任何关于该主题帖子的评论。不得不告诉用户,“哦,嘿,只需点击分享,然后滑到'添加到主屏幕'是一个不可思议的事情。

这是一种令人悲伤的事态。当前接受的答案中的列表应该真正称为“基线响应Web应用程序列表”。

在这里回答这个问题 - 不,没有其他选择,你无能为力。您必须玩Apple游戏,支付100美元才能访问应用商店,学习完全不同且更复杂的编程语言,并保持完全独立的代码库。

我花了6个月的时间为一个客户端项目学习React Native,它非常棒。我会极力推荐它。您可以使用JavaScript创建真正的原生应用,并在iOS和Android之间共享您的代码库。

要说清楚,我不是反苹果。我使用iPhone并在Mac上进行开发。但他们的商业战略的这一方面肯定是一种耻辱。