mPaaSH5离线包解决了哪些问题:
- 传统的 H5 技术容易受到网络环境影响,因而降低 H5 页面的性能。通过使用离线包,可以解决该问题。(因为是加载本地资源)
- 用户无感热更新。
渲染过程
- 当 H5 容器发出资源请求时,其访问本地资源或线上资源所使用的 URL 是一致的。
H5 容器会先截获该请求,截获请求后,发生如下情况:
- 如果本地有资源可以满足该请求的话,H5 容器会使用本地资源。
- 如果没有可以满足请求的本地资源,H5 容器会使用线上资源。
- 因此,无论资源是在本地或者是线上,WebView 都是无感知的。
离线包的下载取决于创建离线包时的配置:
- 如果 下载时机 配置为 仅 WiFi,则只有在 WiFi 网络时会在后台自动下载离线包。
- 如果 下载时机 配置为 所有网络都下载,则在非 WiFi 网络时会消耗用户流量自动下载,慎用。
- 如果当前用户点击 APP 时,离线包尚未下载完毕,则会跳转至 fallback 地址,显示在线页面。
-
fallback 技术用于应对离线包未下载完毕的场景。每个离线包发布时,都会同步在 CDN 发布一个对应的线上版本,目录结构和离线包结构一致。fallback 地址会随离线包信息下发到本地。在离线包未下载完毕的场景下,客户端会拦截页面请求,转向对应的 CDN 地址,实现在线页面和离线页面随时切换。
功能特性
灰度发布
在正式发布之前,可以通过白名单来做小规模发布
(比如内部员工)以验证新包的功能是否达到预期。还可以进行时间窗灰度发布,在规定的时间段内发布给规定用户人数。如果达到预期就可以进行全网推送。高级过滤
在进行灰度发布的时候还可以利用高级规则来定义更为精准的白名单人群,比如可以只发给小米手机的用户,多个过滤规则可以叠加,只有在所有的过滤规则都符合的情况下才会推送。实时回滚
仅支持热修复。即使进行了灰度发布,正式上线的时候还是难免会发生问题,这个时候就可以进行实时回滚,自动回滚到发布前的版本。自定义验签
为了保障安全性,热修复有自定义的验签流程,保证脚本来源的正确性。 mPaaS 插件中提供生成热修复资源包并对包进行加签的功能。