CN108647041A - 一种混合型APP本地Web资源热更新机制 - Google Patents
一种混合型APP本地Web资源热更新机制 Download PDFInfo
- Publication number
- CN108647041A CN108647041A CN201810281851.6A CN201810281851A CN108647041A CN 108647041 A CN108647041 A CN 108647041A CN 201810281851 A CN201810281851 A CN 201810281851A CN 108647041 A CN108647041 A CN 108647041A
- Authority
- CN
- China
- Prior art keywords
- version
- server
- app
- update
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种混合型APP本地Web资源热更新机制,属于移动应用技术领域;它一共分为两个大的更新流程:服务器Web资源更新打包流程和APP更新流程。所述服务器Web资源更新打包流程:当有服务器端网页有更新的时候,新版本的网页资源保存到服务端的指定的文件夹中,通过访问服务器定义好的更新web应用程序接口,实现了web资源的热更新,保证服务器的最新的web资源以较小的数据量和准确的传输到客户端,以快速迭代功能、实现新的业务和老版本bug的迅速修复。
Description
技术领域
本发明涉及一种混合型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对移动端的优化的优势充分的发挥,以解决移动原生代码面临的平台性劣势和设备的碎片化(指设备具有多种多样的版本,屏幕设备多尺寸、多分辨率等问题)的劣势。
以上所述,仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其它修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。
Claims (3)
1.两个大的更新流程:服务器Web资源更新打包流程和APP更新流程;
所述服务器Web资源更新打包流程:当有服务器端网页有更新的时候,新版本的网页资源保存到服务端的指定的文件夹中,通过访问服务器定义好的更新web应用程序接口,此时服务器会算出新版本网页资源的每个文件的MD5,并取出服务端中既有的版本版本信息文件里面的所有文件的MD5值,如果对比之后发现有文件的MD5值不一样就将所有新版本网页资源MD5值存入到版本信息文件中,并计算出当前版本的字符串并写入到版本信息文件中,此时还将新版本的所有网页资源打包生成一个加密的压缩包,并计算压缩包的MD5值更新放入到版本信息文件中;
所述APP更新流程:在APP内保存有本地网页资源文件的版本信息,当APP启动的时候,将APP本地网页资源的版本信息发送至服务器,服务器获取到APP资源的版本信息之后,然后取出服务器端版本信息文件保存的版本信息,然后进行对比,如果版本信息不一致,就返回最新的网页资源压缩包的下载地址、版本信息和压缩包的MD5值给客户端;若版本信息一致则不返回最新版本信息;
客户端得到服务器响应之后判断是否有更新信息,如果有更新信息就下载服务器端最新网页资源压缩包,下载完毕之后就计算出下载的压缩包文件的MD5然后对比从服务器获取的文件MD5值,如果不一致,那么压缩包可能在传输过程中被其他人篡改或下载的时候出现安装包损坏,此时就退出应用程序;若是一致就先将老的web资源删除掉然后解压下载的压缩包的网页资源到指定的文件夹,最后运行最新的本地的网页。
2.根据权利要求1所述的一种混合型APP本地Web资源热更新机制,其特征在于:所述服务器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这个文件夹下,此时打包完成,退出打包接口。
3.根据权利要求1所述的一种混合型APP本地Web资源热更新机制,其特征在于:所述客户端资源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文件夹,此时更新完成,然后进入应用程序首页。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810281851.6A CN108647041A (zh) | 2018-04-02 | 2018-04-02 | 一种混合型APP本地Web资源热更新机制 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810281851.6A CN108647041A (zh) | 2018-04-02 | 2018-04-02 | 一种混合型APP本地Web资源热更新机制 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108647041A true CN108647041A (zh) | 2018-10-12 |
Family
ID=63745091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810281851.6A Pending CN108647041A (zh) | 2018-04-02 | 2018-04-02 | 一种混合型APP本地Web资源热更新机制 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108647041A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656595A (zh) * | 2018-12-10 | 2019-04-19 | 北京百家互联科技有限公司 | 客户端程序更新的方法、装置及*** |
CN109857425A (zh) * | 2018-12-27 | 2019-06-07 | 山东浪潮商用***有限公司 | 一种基于客户端网页应用的版本更新方法及*** |
CN110058873A (zh) * | 2019-03-12 | 2019-07-26 | 天津五八到家科技有限公司 | 应用页面更新方法、装置、设备和存储介质 |
CN110059276A (zh) * | 2019-03-12 | 2019-07-26 | 天津五八到家科技有限公司 | 页面更新方法、装置、设备和存储介质 |
CN111666564A (zh) * | 2020-05-14 | 2020-09-15 | 平安科技(深圳)有限公司 | 应用程序安全启动方法、装置、计算机设备和存储介质 |
CN111831323A (zh) * | 2020-05-29 | 2020-10-27 | 大数金科网络技术有限公司 | 容器化的增量持续交付方法 |
CN112328283A (zh) * | 2020-11-12 | 2021-02-05 | 北京字节跳动网络技术有限公司 | 一种应用程序的更新方法、装置、设备及介质 |
CN112559018A (zh) * | 2019-09-26 | 2021-03-26 | 中电万维信息技术有限责任公司 | 一种基于html5的app热更新方法 |
CN112860357A (zh) * | 2019-11-26 | 2021-05-28 | 上海哔哩哔哩科技有限公司 | 动画资源的渲染方法、装置、计算机设备和存储介质 |
CN112947981A (zh) * | 2020-04-03 | 2021-06-11 | 深圳市明源云客电子商务有限公司 | 应用程序资源更新方法、装置、终端设备及服务器 |
CN113672268A (zh) * | 2021-06-18 | 2021-11-19 | 杭州玳数科技有限公司 | 前端资源的静默更新方法、装置和计算机设备 |
CN115408047A (zh) * | 2022-08-11 | 2022-11-29 | 北京大氪信息科技有限公司 | 一种版本发布方法、装置及电子设备 |
-
2018
- 2018-04-02 CN CN201810281851.6A patent/CN108647041A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656595A (zh) * | 2018-12-10 | 2019-04-19 | 北京百家互联科技有限公司 | 客户端程序更新的方法、装置及*** |
CN109857425A (zh) * | 2018-12-27 | 2019-06-07 | 山东浪潮商用***有限公司 | 一种基于客户端网页应用的版本更新方法及*** |
CN110058873A (zh) * | 2019-03-12 | 2019-07-26 | 天津五八到家科技有限公司 | 应用页面更新方法、装置、设备和存储介质 |
CN110059276A (zh) * | 2019-03-12 | 2019-07-26 | 天津五八到家科技有限公司 | 页面更新方法、装置、设备和存储介质 |
CN110058873B (zh) * | 2019-03-12 | 2021-09-17 | 天津五八到家科技有限公司 | 应用页面更新方法、装置、设备和存储介质 |
CN112559018A (zh) * | 2019-09-26 | 2021-03-26 | 中电万维信息技术有限责任公司 | 一种基于html5的app热更新方法 |
CN112860357B (zh) * | 2019-11-26 | 2023-06-16 | 上海哔哩哔哩科技有限公司 | 动画资源的渲染方法、装置、计算机设备和存储介质 |
CN112860357A (zh) * | 2019-11-26 | 2021-05-28 | 上海哔哩哔哩科技有限公司 | 动画资源的渲染方法、装置、计算机设备和存储介质 |
CN112947981A (zh) * | 2020-04-03 | 2021-06-11 | 深圳市明源云客电子商务有限公司 | 应用程序资源更新方法、装置、终端设备及服务器 |
CN111666564A (zh) * | 2020-05-14 | 2020-09-15 | 平安科技(深圳)有限公司 | 应用程序安全启动方法、装置、计算机设备和存储介质 |
CN111666564B (zh) * | 2020-05-14 | 2024-02-02 | 平安科技(深圳)有限公司 | 应用程序安全启动方法、装置、计算机设备和存储介质 |
CN111831323A (zh) * | 2020-05-29 | 2020-10-27 | 大数金科网络技术有限公司 | 容器化的增量持续交付方法 |
CN112328283A (zh) * | 2020-11-12 | 2021-02-05 | 北京字节跳动网络技术有限公司 | 一种应用程序的更新方法、装置、设备及介质 |
CN113672268A (zh) * | 2021-06-18 | 2021-11-19 | 杭州玳数科技有限公司 | 前端资源的静默更新方法、装置和计算机设备 |
CN115408047A (zh) * | 2022-08-11 | 2022-11-29 | 北京大氪信息科技有限公司 | 一种版本发布方法、装置及电子设备 |
CN115408047B (zh) * | 2022-08-11 | 2023-07-25 | 北京大氪信息科技有限公司 | 一种版本发布方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647041A (zh) | 一种混合型APP本地Web资源热更新机制 | |
CN106528229B (zh) | 一种游戏热更新方法及装置 | |
US10742714B2 (en) | Method and system for re-deploying metadata and associated data from a source organization to a destination organization | |
CN104038520B (zh) | 一种多版本分布式资源管理方法和*** | |
CN102789317B (zh) | 一种加快文本输入的方法和装置 | |
CN110020278A (zh) | 页面数据的展示、提供方法、客户端及服务器 | |
CN105512251B (zh) | 一种页面缓存方法和装置 | |
CN105574207A (zh) | 一种wap网页开发方法 | |
US20130159892A1 (en) | Non-technical creation of mobile web applications | |
CN105260229A (zh) | 拉取虚拟机镜像文件的方法和装置 | |
CN102982106B (zh) | 预打开网页的方法和装置 | |
CN105468707A (zh) | 一种基于缓存的数据处理方法及装置 | |
CN103095840B (zh) | 一种用于移动终端的广告加载方法 | |
CN105430438B (zh) | 一种智能电视主题商店服务器端的配置方法及*** | |
CN104915257A (zh) | 一种基于Android***应用的更换主题方法和装置 | |
CN106371875B (zh) | 一种基于html5的手机应用更新方法 | |
CN108595503A (zh) | 文件处理方法及服务器 | |
CN102163197B (zh) | 一种换肤方法、***和装置 | |
CN101400167A (zh) | 移动终端的动态菜单实现方法、装置及*** | |
CN107368513A (zh) | 客户端数据库更新的方法及装置 | |
CN104468759A (zh) | PaaS平台中实现应用迁移的方法和装置 | |
CN106547486A (zh) | 一种数据迁移方法及装置 | |
CN103218425B (zh) | 浏览器扩展项的处理方法及装置 | |
CN109587232A (zh) | 基于iOS网络的文件断点续传方法 | |
CN112394932A (zh) | 浏览器网页自动换肤方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181012 |
|
WD01 | Invention patent application deemed withdrawn after publication |