像我们这里的大多数人一样,我们也开始使用 PWA,并且遇到了一些类似的问题。尝试用我们的 PWA 启动经验来回答您的问题。
剧透警告:现在可以在 PWA 中创建生产就绪、高性能、一次编写即可在任何地方运行的应用程序。向做过的人学习——阿里快递和twitter。这是一篇关于比较我们今天拥有的不同选项的最佳文章。
问题:1) 在 App/Play 商店中没有存在/可发现性
答: PWA 应用程序可以打包为应用程序(如 Android 的 .apk)并在应用程序商店中发布。这适用于所有平台(iOS、Android、UWP)。这是一个方便的打包工具(https://www.pwabuilder.com/)。
它的作用是将您的站点(URL)打包到托管的 Web 应用程序(如果支持)(UWP)中,或者通过创建 Web 视图并包装您的应用程序(iOS、Android)来使用 Cordova 作为 polyfil。希望 Android 很快会提供避免这种 polyfil 的选项。在此之前,我们可以使用 Cordova 进行包装,并且仍然可以利用 PWA 功能(例如 Service Worker-离线缓存。iOS 仅从 10.3 开始支持 Service Worker)。
当然,进入应用商店也伴随着应用商店收益分享的成本。仍然使用 PWA 的“添加到主页选项”,你可以慢慢地绕过应用商店获得新的用户群。如果您使用付费应用程序空间,则是增加收入的一个好后门。
问题:2)无法访问某些 api,例如 NFC ......(但从https://whatwebcando.today在 chrome 中的外观来看,我们将可以访问我们需要的所有内容)
答:如果您将应用程序封装在cordova 中(如上述解决方案-PWA 构建器),您可以使用cordova 插件来处理不受支持的内容……比如NFC。这将关闭所有硬件访问限制。随着支持开始出现,我们可以继续用 PWA 方式替换。这基本上就是 PWA 中的“渐进式”:)
问题 :3) 很难实现流畅的用户体验(尽管很可能做到 60fps)
答:是的,您无法击败原生应用的 FPS。但是使用 PWA,对于大多数应用程序(不包括游戏、大量动画应用程序)来说并不重要,考虑到 Service Worker-缓存和其他 PWA 功能,应用程序可以快速流畅地加载到没有任何框架人眼可以检测到的滴剂。你不需要超过 60fps 来实现这一目标。这里有一些很好的解释,如果你用谷歌搜索为什么 60fps,你可以找到很多这样的文章。
如果你的目标在企业环境中的任何特定的硬件,可以测试设备的FPS这里在浏览器的最新版本,它支持PWA(铬是现在一个很好的)。
问题 4)用户对 PWA 安装/使用过程不太熟悉,可能会觉得疏远。
答:正如第一个答案中提到的,您可以继续将 PWA 站点作为应用程序(托管应用程序)存在于应用程序商店中,并将 PWA 的优势也扩展到 Web 浏览器中。PWA 应用程序也为浏览器中的用户带来好处(如离线功能),并且要求用户“添加到主屏幕”的选项是您通过 PWA 获得的另一个好处(增加用户参与度)。
问题 5)获得良好的缓存/网络和性能体验所需的大量知识(但是,我们已经从 Web 应用程序开发中了解了大部分知识)
答:上面的 PWA 构建器链接还可以帮助您生成“Service Worker”,它以不太复杂的方式解决您的缓存问题。是的,将会有很多最佳实践,并且随着 PWA 的发展,事情会不断发生。不过,您不必准备好一切才能开始。您可以从一个基本的 Service Worker 和清单文件开始,将其添加到主屏幕/将其打包为应用程序商店的应用程序,并且随着您的进展,您可以继续在其上添加更多 PWA 内容。
以上所有工作都将带来您提到的好处,并且值得犯错