从今以后,我将不再创建任何原生应用。今后我的所有应用都将是渐进式的 Web 应用。渐进式的 Web 应用是被设计为比原生移动应用更无缝地运行在移动设备上的 Web 应用程序。
这里的“更无缝地”是什么意思?我指的是大部分网络流量来自于移动设备,用户平均每个月安装大约 0-3个应用。这意味着人们不会花太多时间在应用商店中寻找新的应用来试用,但是他们会在网上花大量时间发现和使用你的应用。
渐进式 Web 应用程序开始时候跟其它 Web 应用一样,但是当用户回到应用,通过使用,证明他们对更频繁使用该应用感兴趣时,浏览器会邀请用户将应用安装到主屏上。PWA 还会像原生应用一样,从推送通知中受益。
这才是它的有趣之处。与其它原生应用一样,渐进式 Web 应用会有它自己的主屏幕图标,当你点击它时,应用不需要浏览器就会启动。这意味着没有 URL 地址栏和 Web 导航 UI,只有电话的状态栏,你的应用是以几乎全屏的样式出现。
这一天总算来临了。这些技术都不是特别新的 - 除了新兴的跨平台标准值得注意以外。
一些历史
iPhone 出现的早期是没有应用商店的。乔布斯想让开发者用标准 Web 技术创建 iPhone 应用。有时候有远见的人是完全正确的,但是往往是提前了十年。回顾一下两年前,福布斯称乔布斯推荐的为 iPhone 创建 Web 应用是他犯下的“最大错误”,因为原生应用取得了超级成功。
如今再回顾,看起来很明显,他确实是错了某些东西 - 只是高估了当时已有的 Web 标准的能力。
十年后,移动 Web 标准现在支持很多在原生应用中才能找到的功能,而乔布斯对移动 Web 应用程序的最初愿景现在正被其他所有人认真地追求。苹果已经支持了 “apple-mobile-web-capable” Web 应用,几乎从使用这种 meta 标记帮助 iOS 设备找到像合适的图标等事情开始,你就可以把这种 Web 应用添加到主屏了。
其它厂商也随之效仿,每个都创建了自己的 meta 标记集合,来宣告具备移动 Web 应用的能力,但是直到最近,一个跨平台的规范才被引入。现在,跨平台移动 Web 应用才最终成为真事。
实现该标准的应用被称为渐进式 Web 应用,不要把它与足以导致混淆的相似术语混淆,比如渐进式增强或者响应式应用。
什么是渐进式 Web 应用?
渐进式 Web 应用只是被设计为对移动端友好的 Web 应用程序。如果浏览器看到用户想继续使用应用,它会提示用户将其安装到主屏幕上、dock 栏上,等等。但是,要有资格安装到这些地方,应用必须满足特定条件:
必须是 HTTPS (参见 let’s encrypt)
带有所需属性的有效 manifest(Web Manifest 校验器)
必须有 service worker
Manifest
start_url
必须一直加载,即使在离线时(使用 service worker)必须自带导航
对于不同屏幕大小和方向(横屏竖屏)必须是响应式的
当然,使用 HTTPS 以及针对离线用户的 Service Worker 对任何现代应用都是好的实践。
很多应用创建者看起来忘记的是,如果创建一个渐进式 Web 应用,必须能在没有浏览器边框以及浏览器导航手势的情况下,也能在应用程序中导航。移动设备假设你已经将自己的导航内置到应用了。
例如,如果有一个 about 页,该页必须有一个返回到应用 UI 的链接。否则为了回到应用的主界面,用户就不得不关闭应用,然后重新打开。
查看完整文章访问 这里