更新升级

当前问题

截止目前,市面上所有的伪装成 APP 的方案是:只是将 APP 作为一个空壳,壳内部展示的页面还是加载部署在远程服务器上的网页。
这种方式虽然会使得更新简单,只需要更新网站即可,但是这也会导致一个很明显的用户体验问题:

此时的 APP 完全和一个浏览器是一样,就是包了下图标而已,启动了图标后做的事情是默认启动主页。

导致完全依赖网络去浏览器跳转,访问页面完全取决于网络,但一旦网络不佳,或者服务器挂了,那么整个 APP 就完全没法使用了。
这使得 APP 看起来完全不像一个 APP。

解决方案

将网页打包到 APP 内部,让其成为一个真正的 APP。
但是面临一个问题,那就是更新问题。不能像伪装小程序一样,直接更新 APP 后就显示更新服务器网页了(按理来说本来真 APP 或小程序更新也麻烦)。 为了解决这个更新问题,因此调研了两种方式:

全量更新

官方推荐的全量更新:每次更新时,用户在使用 APP 时,我会在后台静默下载一个完整的安装包,下载后提示用户重启 APP,重启后安装新版本。

存在问题:

  1. 用户每次更新都需要重启 APP,体验不好。
  2. 如果每次更新时下载包都比较大,比如 200MB 甚至更多,将比较耗时。
  3. 即使静默下载,下载发生在后台,启动用户存储空间。
    若网络不佳,下载时长达 10 秒左右,更新感知较高,比如前端提示下载中用户关闭。

增量更新

增量更新:每次更新,只下载更新部分的文件,然后合到原有安装包中。
这种做法后台静默更新文件只有 20MB 左右,用户可无感知的在使用的过程中更新,无需重启 APP。

总结

推荐将网页打包到 APP 内部,且后续更新采用增量更新方式。
这样使得 APP 更加像一个真正的 APP,且伪装成网页一样对用户几乎无感知。