android热更新本地web资源,一种混合型APP本地Web资源热更新机制的制作方法

本发明涉及一种混合型APP本地Web资源热更新机制,属于移动应用技术领域。

背景技术:

现代的移动应用(APP)版本迭代更新速度越来越快,我们要快速实现新功能发布到客户手中,以快速实现功能迭代、新功能添加和程序问题(bug)的修复。传统的原生移动应用或者原生的APP嵌套服务器端网页都有一定的缺陷。原生移动应用如果要实现新功能或者修复以前程序的问题其流程非常繁琐和缓慢并且不一定有效,主要需要编写原生代码然后当发布到应用商店最后等待客户下载,如果用户不下载APP此时新功能就无法实现或者旧版本程序的问题就无法实现修复。嵌套服务器端网页的方式存在的问题问题有两个:一个是在没有网络的情况下APP的界面就无法呈现;另一个是即使在有网络的情况下加载需要消耗网络流量并且用户会明显感受到延迟,给用户造成了不良好的使用体验。一个可取方案就是在APP内加载本地网页资源,无需加载服务器端网页就可以给用户呈现界面不管有网络还是没有网络,但是本方案依然存在一定的问题,在更新上就和原生APP没有太大区别。

技术实现要素:

本发明的目的在于针对现有技术的缺陷和不足,提供一种混合型APP的本地web资源的更新机制,当发布新的web资源的版本之后,以保证所有的APP使用者在最新的时间内使用到最新的程序,以快速实现功能迭代、新功能添加和程序问题的修复。

为实现上述目的,本发明采用的技术方案是:它一共分为两个大的更新流程:服务器Web资源更新打包流程和APP更新流程。

所述服务器Web资源更新打包流程:当有服务器端网页有更新的时候,新版本的网页资源保存到服务端的指定的文件夹中,通过访问服务器定义好的更新web应用程序接口,此时服务器会算出新版本网页资源的每个文件的MD5(消息摘要值),并取出服务端中既有的版本版本信息文件里面的所有文件的MD5值,如果对比之后发现有文件的MD5值不一样就将所有新版本网页资源MD5值存入到版本信息文件中,并计算出当前版本的字符串并写入到版本信息文件中,此时还将新版本的所有网页资源打包生成一个加密的压缩包,并计算压缩包的MD5值更新放入到版本信息文件中;

所述APP更新流程:在APP内保存有本地网页资源文件的版本信息,当APP启动的时候,将APP本地网页资源的版本信息发送至服务器,服务器获取到APP资源的版本信息之后,然后取出服务器端版本信息文件保存的版本信息,然后进行对比,如果版本信息不一致,就返回最新的网页资源压缩包的下载地址、版本信息和压缩包的MD5值给客户端。若版本信息一致则不返回最新版本信息。客户端得到服务器响应之后判断是否有更新信息,如果有更新信息就下载服务器端最新网页资源压缩包,下载完毕之后就计算出下载的压缩包文件的MD5然后对比从服务器获取的文件MD5值,如果不一致,那么压缩包可能在传输过程中被其他人篡改或下载的时候出现安装包损坏,此时就退出应用程序;若是一致就先将老的web资源删除掉然后解压下载的压缩包的网页资源到指定的文件夹,最后运行最新的本地的网页。

本发明主要发明了一种混合型APP的本地web资源的更新机制,当发布新的web资源的版本之后,以保证所有的APP使用者在最新的时间内使用到最新的程序,以快速实现功能迭代、新功能添加和程序问题的修复。

所述服务器Web资源更新打包的步骤如下:

步骤1:先将服务器web程序根目录下的h5app/www文件夹下的除version.json之外的文件删除;

步骤2:先将最新web资源拷贝到web应用程序的h5app/www下,

步骤3:访问服务器写好的打包接口,里面会计算h5app/www下除version.json文件夹下的所有文件的md5值,形成一个name,md5字段的列表,其中name保存了文件的相对路径,md5字段保存了每个文件的md5值,接下来在接口里执行步骤4;

步骤4:获取h5app/www下version.json文件里面的所有name,md5字段形成一个列表;

步骤5:对比步骤3、4生成的列表,如果没有差异就判断为打包结束,退出打包接口,如果有更新就执行步骤6;

步骤6:获取h5app/www下version.json里面的version字段,将这个version字段增加1,如果没有就设置为1,步骤3生成的列表保存到version.json里面。

步骤7:将h5app/www所有打包成生成名为www.zip的压缩包,放到 h5app这个文件夹下,此时打包完成,退出打包接口。

所述客户端资源APP更新步骤如下:

001:获取当前app的file文件夹下的version.json里面的version字段,如果没有获取到就默认这个字段为空。将这个version发送到服务器的版本信息获取的接口;

002:服务器获取到客户端传过来的version字段,然后获取服务器打包流程步骤6生成的version.json里面的verison字段,进行对比,如果没有更新就返回空信息APP进入应用程序;如果有更新就返回www.zip文件的下载地址给APP;

003:客户端根据002返回的下载地址下载www.zip压缩包;

004:删除获取当前app的file文件夹下的所有文件;

005:解压003下载的www.zip到获取当前app的file文件夹,此时更新完成,然后进入应用程序首页。

本发明通过比对web文件版本来更新客户端文件,从而进行app客户端核心资源版本更新。

采用上述结构后,本发明有益效果为:本发明所述的一种混合型APP本地Web资源热更新机制,实现了web资源的热更新,保证服务器的最新的web资源以较小的数据量和准确的传输到客户端,以快速迭代功能、实现新的业务和老版本bug的迅速修复,降低应用程序的bug可能给企业带来的损失或者不良好的体验。自动化打包发布流程,整个发布流程需要少量的人工操作,极大的降低了人员手工打包发布过程可能出现的错误。可以将Web的跨平台和HTML5对移动端的优化的优势充分的发挥,以解决移动原生代码面临的平台性劣势和设备的碎片化的劣势。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明中服务器Web资源更新打包流程的示意图;

图2是本发明中APP更新流程的示意图。

具体实施方式

下面结合附图对本发明作进一步的说明。

参看如图1和图2所示,本具体实施方式分为两个大的更新流程:

服务器Web资源更新打包流程;

APP更新流程。

所述服务器Web资源更新打包流程:当有服务器端网页有更新的时候,新版本的网页资源保存到服务端的指定的文件夹中,通过访问服务器定义好的更新web应用程序接口,此时服务器会算出新版本网页资源的每个文件的MD5(消息摘要值),并取出服务端中既有的版本版本信息文件里面的所有文件的MD5值,如果对比之后发现有文件的MD5值不一样就将所有新版本网页资源MD5值存入到版本信息文件中,并计算出当前版本的字符串并写入到版本信息文件中,此时还将新版本的所有网页资源打包生成一个加密的压缩包,并计算压缩包的MD5值更新放入到版本信息文件中。(如图1)

所述APP更新流程:在APP内保存有本地网页资源文件的版本信息,当APP启动的时候,将APP本地网页资源的版本信息发送至服务器,服务器获取到APP资源的版本信息之后,然后取出服务器端版本信息文件保存的版本信息,然后进行对比,如果版本信息不一致,就返回最新的网页资源压缩包的下载地址、版本信息和压缩包的MD5值给客户端。若版本信息一致则不返回最新版本信息。客户端得到服务器响应之后判断是否有更新信息,如果有更新信息就下载服务器端最新网页资源压缩包,下载完毕之后就计算出下载的压缩包文件的MD5然后对比从服务器获取的文件MD5值,如果不一致,那么压缩包可能在传输过程中被其他人篡改或下载的时候出现安装包损坏,此时就退出应用程序;若是一致就先将老的web资源删除掉然后解压下载的压缩包的网页资源到指定的文件夹,最后运行最新的本地的网页。(如图2)

上述两大流程的具体操作分析如下:

所述服务器Web资源更新打包的步骤如下:

步骤1:先将服务器web程序根目录下的h5app/www文件夹下的除version.json之外的文件删除;

步骤2:先将最新web资源拷贝到web应用程序的h5app/www下,

步骤3:访问服务器写好的打包接口,里面会计算h5app/www下除version.json文件夹下的所有文件的md5值,形成一个name,md5字段的列表,其中name保存了文件的相对路径,md5字段保存了每个文件的md5值,接下来在接口里执行步骤4;

步骤4:获取h5app/www下version.json文件里面的所有name,md5字段形成一个列表;

步骤5:对比步骤3、4生成的列表,如果没有差异就判断为打包结束,退出打包接口,如果有更新就执行步骤6;

步骤6:获取h5app/www下version.json里面的version字段,将这个version字段增加1,如果没有就设置为1,步骤3生成的列表保存到version.json里面。

步骤7:将h5app/www所有打包成生成名为www.zip的压缩包,放到 h5app这个文件夹下,此时打包完成,退出打包接口。

所述客户端资源APP更新步骤如下:

001:获取当前app的file文件夹下的version.json里面的version字段,如果没有获取到就默认这个字段为空。将这个version发送到服务器的版本信息获取的接口;

002:服务器获取到客户端传过来的version字段,然后获取服务器打包流程步骤6生成的version.json里面的verison字段,进行对比,如果没有更新就返回空信息APP进入应用程序;如果有更新就返回www.zip文件的下载地址给APP;

003:客户端根据002返回的下载地址下载www.zip压缩包;

004:删除获取当前app的file文件夹下的所有文件;

005:解压003下载的www.zip到获取当前app的file文件夹,此时更新完成,然后进入应用程序首页。

本发明通过比对web文件版本来更新客户端文件,从而进行app客户端核心资源版本更新。

采用上述结构后,本发明所述的一种混合型APP本地Web资源热更新机制,具有以下有益效果:

1、实现了web资源的热更新,保证服务器的最新的web资源以较小的数据量和准确的传输到客户端,以快速迭代功能、实现新的业务和老版本bug的迅速修复;

2、降低应用程序的bug可能给企业带来的损失或者不良好的体验。

3、自动化打包发布流程,整个发布流程需要少量的人工操作,极大的降低了人员手工打包发布过程可能出现的错误。

4、可以将Web的跨平台和HTML5对移动端的优化的优势充分的发挥,以解决移动原生代码面临的平台性劣势和设备的碎片化(指设备具有多种多样的版本,屏幕设备多尺寸、多分辨率等问题)的劣势。

以上所述,仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其它修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值