展示h5有两种方式:在线,本地。
在线的话,直接用URL展示就好了。
本地的话,就稍微有点绕。个人经验来说,总共有4步:对比,下载,解压,展示。
开始
发送网络请求,查看当前最新h5包的版本号等数据,保存到包模型中。
其中,包模型数据要满足基本要求,需要属性:在线h5 url,下载最新h5 zip的url,最新h5 zip包的版本号,是否展示在线h5, 本地是否有h5文件(这条网络json不需要,用于本地数据保存)。
如果网络包模型中要求直接展示在线h5,直接用在线h5 url 展示。反之,进入下一步,对比。
对比
获取本地包模型,如果包模型不存在的话,说明根本就没下载解压成功过,可以直接进入下一步下载了。
如果本地包模型存在,则对比本地包模型数据和网络包模型数据的版本号,本地包模型的版本号小于网络包模型的版本号,说明本地的h5文件已经不是最新的了,进入下一步下载;反之,则说明本地包模型是最新的数据,那么就检查一下本地是否真的存在h5文件可以展示,如果是的话,就进入展示步骤,反之,说明本地存储的包模型和实际文件情况不匹配,更新本地包模型数据为未下载,或者删除本地对应的包模型数据,并保存,进入下载步骤。
下载
根据网络包模型数据下载最新的zip包,下载成功后,进入解压步骤
解压
解压网络下载的zip包,解压成功后,更新网络包模型数据的下载情况为YES,保存本地可(以保存数据库,或者UserDefault)。解压失败的话,就直接展示在线的h5页面。
展示
展示
这是大概的思路,在项目里头已经实现过了。
最后用一幅流程图完成总结
具体实现里头,有很多小细节,在这里不多加赘述了。
网友评论