为了兼容得力E+当前版本和后续将上线的2.0版本,应用需要提供两种访问模式:前后端分离模式和网络模式

前后端分离模式

得力E+V2版本将支持应用离线使用,为了达成此目标,需要将应用采用前后端分离的模式开发。应用的前端页面在没有网络连接的情况下依然可以借助手机浏览器和本地缓存提供基本功能。

应用发布

应用需要提供完整的前端资源,包括h5页面,布局文件,js文件等。资源根目录下需要包括index.html作为规定的入口,其他资源存放结构可以自定义。完整的前端资源会在第一次使用应用时直接下载保存在得力E+的手机app缓存中。每次打开应用时直接加载前端资源,由前端程序自行与应用后端通信。在没有网络连接的情况下,前端资源在得力E+ JS SDK的支持下,也应该能提供基本离线的功能。

应用加载

从得力E+打开应用时,得力E+会先尝试加载已经缓存的应用前端资源中的index.html。如果资源没有被缓存,则会先尝试下载资源文件,下载失败则显示默认的加载失败页面;下载成功则加载index.html。

应用使用

当应用加载成功后,无论是否可以访问应用后端服务,应该立即使用前端资源渲染出基础界面并提供可以离线使用的功能。应用前端资源异步的请求后端服务,在请求成功的前提下逐步渲染界面并提供在线功能。

任何在线功能的失效都不应该影响离线基础功能的使用。在无法访问应用后端服务的情况下,应用前端资源应该使用H5本地缓存功能,将需要保存的数据暂存,并在后端服务恢复时进行提交。

流程图

graph LR; A[在得力E+中打开应用] B{前端资源已缓存?} C[加载index.html] C1[渲染界面提供离线功能] D{访问应用后端?} D1[提供基本离线功能] D2[提供完整在线功能] E{可以下载前端资源?} E1[展示默认加载失败页面] E2{下载成功?} F[缓存前端资源] A-->B B--yes-->C C-->C1 C1-->D D--no-->D1 D--yes-->D2 B--no-->E E--no-->E1 E--yes-->E2 E2--no-->E1 E2--yes-->F F-->B

网络模式

当前得力E+使用应该的方式是直接访问应用提供的页面地址,且没有对访问到的资源进行缓存。此种模式下要使用应用必须保证网络连接和应用服务的可用性。

应用发布

应用提供方直接制作完成的应用,并提供访问地址。

应用加载

从得力E+打开应用时,得力E+会使用手机浏览器内核打开应用提供方提供的地址并注入JS SDK。整个过程和访问互联网上的普通网站页面一致。当出现无法加载的情况时,得力E+会尝试捕获异常并显示默认无法加载的页面。应用提供方也应该尽量保证应用的可用性。各类资源文件应该维护在自己的域名内,不要使用第三方的地址。以免发生第三方资源无法加载的情况。

应用使用

应用加载成功后,可以使用,应用提供方需要保证系统的稳定。所有的异常都应该被捕获并展示用户友好的界面,任何情况下不要出现应用崩溃的界面。