H5应用的管理方法、装置、设备和存储介质与流程

文档序号:26910941发布日期:2021-10-09 15:04阅读:214来源:国知局
H5应用的管理方法、装置、设备和存储介质与流程
h5应用的管理方法、装置、设备和存储介质
技术领域
1.本发明属于app应用管理的技术领域,尤其涉及一种h5应用的管理方法、装置、设备和存储介质。


背景技术:

2.h5模块是指基于html5技术开发的功能单元。与网站不同的是,一个h5模块通常只处理一个简单的业务逻辑,并且基础数据需要依托于宿主应用。当然,这里的应用可能是一个手机的app,亦或是pc上的软件。因此,在h5模块制作完成之后需要发布h5模块至宿主应用以供用户使用。
3.通常地,当完成h5模块整体研发工作后,会部署h5模块至服务端并公开访问链接供应用加载,这种模式单次发布会影响全量用户,因此或多或少会带来故障隐患。应用h5模块发布缺乏工具层面支撑,致使应用中引用h5模块方案混乱。


技术实现要素:

4.本发明的目的是提供一种h5应用的管理方法、装置、设备和存储介质,以完整的h5模块版本管理策略,实现h5模块的灰度测试及模块数据的缓存更新,有针对性地进行h5应用的更新。
5.为解决上述问题,本发明的技术方案为:
6.一种h5应用的管理方法,包括:
7.通过版本发布平台获取待发布应用清单,所述待发布应用清单包括待更新h5模块的多个目标应用;
8.创建待更新h5模块的配置文件,所述配置文件至少包括模块标识、模块版本、对应资源的下载地址、模块在线访问地址及对应资源的md5值在内的多个字段;
9.通过版本发布平台的远程配置将创建好的待更新h5模块的配置文件投放至目标应用;
10.将所述配置文件缓存于本地,响应于目标应用加载所述配置文件,通过子线程下载配置文件中的h5模块,并更新目标应用中的相应模块。
11.根据本发明一实施例,所述通过版本发布平台获取待发布应用清单进一步包括:
12.通过版本发布平台获取到操作人员提交的目标签报,所述目标签报用于指示目标应用中待更新h5模块的目标变更项,根据所述目标变更项对所述待更新h5模块的目标应用进行修改,并根据修改后的目标应用生成待发布应用清单。
13.根据本发明一实施例,所述通过版本发布平台的远程配置将创建好的待更新h5模块的配置文件投放至目标应用进一步包括:
14.通过心跳包判断所述配置文件在投放的过程中是否出现通讯异常;
15.通过tcp协议传输远程控制命令包至本地;
16.通过udp协议传输本地状态数据及视频数据包至远程控制。
17.根据本发明一实施例,所述将所述配置文件缓存于本地进一步包括:
18.根据配置文件信息,进行资源下载;
19.对下载的资源进行md5校验,校验通过后存储至本地;若校验失败,则删除资源。
20.根据本发明一实施例,所述响应于目标应用加载所述配置文件,通过子线程下载配置文件中的h5模块进一步包括:
21.当目标应用需更新多个h5模块时,抽取该目标应用中各h5模块的公共资源,生成公共资源包,重新打包生成各h5模块私有资源包;
22.响应于目标应用加载所述配置文件时,将公共资源包与各h5模块私有资源包下发到目标应用。
23.根据本发明一实施例,所述抽取该目标应用中各h5模块的公共资源,生成公共资源包进一步包括:
24.通过打包平台抽取h5模块中包含vue、react通用库在内的公共资源;将抽取的公共资源进行第一次打包,并将公共资源依赖列表记录在打包平台上;
25.将打包后的公共资源包投放到目标应用中,触发目标应用变更配置信息,获取当前目标应用中所有的h5模块配置信息及打包平台上的公共资源依赖列表,进行合并,进行第二次打包,得到经签名及压缩后的公共资源包。
26.根据本发明一实施例,所述更新目标应用中的相应模块进一步包括:
27.加载h5模块资源后,将目标应用中h5模块的当前版本与待更新版本进行差分运算,更新增量部分。
28.一种h5应用的管理装置,包括:
29.获取模块,用于通过版本发布平台获取待发布应用清单,所述待发布应用清单包括待更新h5模块的多个目标应用;
30.配置模块,用于创建待更新h5模块的配置文件,所述配置文件至少包括模块标识、模块版本、对应资源的下载地址、模块在线访问地址及对应资源的md5值在内的多个字段;
31.投放模块,用于通过版本发布平台的远程配置将创建好的待更新h5模块的配置文件投放至目标应用;
32.加载模块,用于将所述配置文件缓存于本地,响应于目标应用加载所述配置文件,通过子线程下载配置文件中的h5模块,并更新目标应用中的相应模块。
33.一种h5应用的管理设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行计算机可读指令时,实现本发明一实施例中的h5应用的管理方法。
34.一种计算机可读介质,存储计算机程序,所述计算机程序被一个或多个处理器执行时,实现本发明一实施例中的h5应用的管理方法。
35.本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:
36.1)本发明一实施例中的h5应用的管理方法,针对现有的应用h5模块发布缺乏工具层面支撑,致使应用中引用h5模块方案混乱的问题,通过版本发布平台获取待发布应用清单,创建待更新h5模块的配置文件,通过版本发布平台的远程配置将创建好的待更新h5模块的配置文件投放至目标应用;将配置文件缓存于本地,响应于目标应用加载配置文件,通过子线程下载配置文件中的h5模块,并更新目标应用中的相应模块。以完整的h5模块版本
管理策略,实现h5模块的灰度测试及模块数据的缓存更新,有针对性地进行h5应用的更新,避免由于新版本发布影响范围广而引发应用故障。
37.2)本发明一实施例中的h5应用的管理方法,通过公共资源包机制,将h5模块的资源拆分为公共资源包与私有资源包,有效降低各h5应用下载的资源包体积,从而提高h5应用的更新率,提升用户体验。
附图说明
38.图1为本发明一实施例中的h5应用的管理方法流图;
39.图2为本发明一实施例中的h5应用的管理装置框图;
40.图3为本发明一实施例中的h5应用的管理设备的示意图。
具体实施方式
41.以下结合附图和具体实施例对本发明提出的一种h5应用的管理方法、装置、设备和存储介质作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。
42.实施例一
43.本实施例提供了一种h5应用的管理方法,请参看图1,该h5应用的管理方法包括以下步骤:
44.s1:通过版本发布平台获取待发布应用清单,所述待发布应用清单包括待更新h5模块的多个目标应用;
45.s2:创建待更新h5模块的配置文件,所述配置文件至少包括模块标识、模块版本、对应资源的下载地址、模块在线访问地址及对应资源的md5值在内的多个字段;
46.s3:通过版本发布平台的远程配置将创建好的待更新h5模块的配置文件投放至目标应用;
47.s4:将所述配置文件缓存于本地,响应于目标应用加载所述配置文件,通过子线程下载配置文件中的h5模块,并更新目标应用中的相应模块。
48.在步骤s1中,通过版本发布平台获取待发布应用清单进一步包括:
49.s21:通过版本发布平台获取到操作人员提交的目标签报,该目标签报用于指示目标应用中待更新h5模块的目标变更项,根据该目标变更项对所述待更新h5模块的目标应用进行修改,并根据修改后的目标应用生成待发布应用清单。
50.服务器通过版本发布平台获取待发布应用清单,待发布应用清单包括待更新h5模块的多个目标应用。其中版本发布平台,使用java开发,算法是根据对应阶段,通过配置定时任务的方式来管理。可以理解的是,本发明的执行主体可以为版本发布平台的管理装置,还可以是服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
51.服务器生成待发布应用清单。具体的,当通过版本发布平台获取到操作人员提交的目标签报时,服务器根据目标签报所指示的目标应用中待更新h5模块的目标变更项,对待更新h5模块的目标应用进行修改,并根据修改后的目标应用生成待发布应用清单。
52.其中,各应用的维护人员可以在版本发布平台统一入口提交生产配置项,例如:生产apollo变更配置,在版本发布平台运维服务窗口,生产apollo配置项中,填写变更项。需
要说明的是,需要明确标识修改项或新增项的具体明细,方便操作人员及时知晓变更项或新增项的具体信息。
53.在版本发布平台操作人员可以点击“投放/再次投放”按钮打开h5模块投放面板。在投放面板中,操作人可以选中需要更新的目标应用,并确定将选中的h5模块版本投放至目标应用。
54.在步骤s2中,创建待更新h5模块的配置文件,通常该配置文件包括模块标识、模块版本、对应资源的下载地址、模块在线访问地址及对应资源的md5值在内的多个字段。如下所示:
55."h5config":{
56."deletemodules";//一些h5模块的全局配置
57."apps":[
[0058]
//模块标识,公共资源包为h5_common_module
[0059]
"name":"h5demo",
[0060]
//模块版本,公共资源包取x.y格式,x为1,y为正数随发版次数递增
[0061]
"version":"1.2.0",
[0062]
//模块版本对应资源zip下载地址,生产环境放置于
[0063]
cdn"ur1":"https://acce..../1.2.0/h5demo.zip",
[0064]
//模块在线访问地址,本地缓存失效后访问,公共资源包为空字符串
[0065]
"onlineur1":"https://acce.../h5demo/1.2.0",
[0066]
//模块版本资源zip文件md5值,应用校验模块包在网络传输中是否被替换
[0067]
"md5":"albeec89d5a7a21b7434e9190af35f51",
[0068]
//模块下载优先级,公共资源包为10,h5模块后续取应用中h5模块列表排序
[0069]
"sequencenum":1,
[0070]
//模块类型,h5模块取h5,公共资源包取common
[0071]
"type":"h5";
[0072]
]
[0073]
在上述配置文件apps字段中,可包含目标应用投放使用的所有h5模块。对于已经删除的模块,可在deletemodules中维护模块的信息,告知应用清除或已删除模块的缓存数据。
[0074]
在步骤s3中,通过版本发布平台的远程配置将创建好的待更新h5模块的配置文件投放至目标应用进一步包括:
[0075]
s31:通过心跳包判断所述配置文件在投放的过程中是否出现通讯异常;
[0076]
s32:通过tcp协议传输远程控制命令包至本地;
[0077]
s33:通过udp协议传输本地状态数据及视频数据包至远程控制。
[0078]
当h5模块配置文件创建完成后,服务器可通过远程配置能力发布h5配置文件至目标应用。远程配置下发中,传输的数据包主要包括命令包、状态包、心跳包、视频包等。针对不同的数据包,分别进行不同的协议设计。根据实时性、稳定性要求,数据包的大小应尽可能的小,以减少带宽的占用,同时协议应可调节和扩展。
[0079]
在步骤s31中,心跳包用于处理通讯异常断开的情况,比如突然断电、网络设备损
坏造成的网络中断、程序运行错误导致进程异常中断等。心跳包,是一个非常小的数据包,包里只包含时间戳、包的序号等信息,并使用udp协议传输。远程控制端(如服务器)每隔一定的时间(比如1分钟)就向现场控制端(本地)发送一个心跳包。当现场控制端收到该心跳包,只需简单的将该心跳包发回,以表明收到了这个心跳包。如果远程控制端在超过一定的时间(比如3分钟)都没有收到已发送的心跳包的回包,就可以认为远程控制端和现场控制端已异常断开,从而停止发送心跳包,并立即启动紧急处理措施,执行比如操作人员发出警报,重新建立网络连接,或者重新启动远程控制平台等操作。如果现场控制端在一定的时间(比如3分钟)都没有收到从远程控制端发来的心跳包,就可以认为现场控制端和远程控制端已异常断开,从而立即启动现场控制端中的紧急处理措施,比如发出“停止”或“重启”的指令等。使用心跳包,虽然占用了少量的带宽,但是提高了数据传输的应急处理能力、增强了整个远程控制的可靠性。
[0080]
在步骤s32中,命令包采用tcp协议进行传输。命令包协议用于打包并传输从远程控制端发出的远程控制命令,包括基本控制指令,如前进、后退,还包括了智能任务控制指令。现场控制端在收到命令包后将根据命令包协议进行解包。
[0081]
在步骤s33中,状态包采用udp协议进行传输。状态包协议用于打包并传输从现场控制端发出的状态数据。远程控制端在收到状态包后将根据状态包协议进行解包。
[0082]
视频包采用udp协议进行传输。视频包协议用于打包并传输从控制端采集的视频数据。远程控制端在收到视频包后将根据视频数据包协议进行解包,以及视频的回放。
[0083]
通过远程配置能力,新的h5模块配置发布后,目标应用中对应的配置中心(如sdk)便可检测到配置变化项,并可及时拉取及更新变化后的配置。需要注意的是,上述步骤s31~s33并无先后顺序,可同时进行,也可在命令包、状态包及视频包的传输过程中,加入心跳包,以判断h5模块的配置文件在投放的过程中是否出现通讯异常。
[0084]
当h5模块配置文件已经成功加载到本地时,需要在用户无感的情况下,通过子线程下载配置中下发的h5模块,并在本地更新对应模块。当用户进去对应模块后,保证用户已经使用了新发布的h5模块版本。
[0085]
在模块加载中,本实施例主要通过3个核心点以提高用户体验:
[0086]
(1)尽可能减少用户下载数据量以提高用户流量使用体验,针对此要求,本实施例在h5模块下发逻辑中,增加了公共资源包及差分下载的逻辑。
[0087]
在一个应用中,可能包含很多的h5模块,本实施例将对各个h5模块的文件进行md5值运算,并抽离出一个公共资源包,然后重新生成各个模块包,因此用户应用下载的h5模块资源文件包含一个公共资源文件+多个模块资源文件,使用该方案便可避免用户对各个模块中公共资源的重复下载,加快h5模块的更新进度。
[0088]
针对一个h5模块,对给h5模块的当前版本与待更新的版本进行差分运算,每次在h5模块资源更新时,与h5

sdk算法对称约定只更新增量部分。
[0089]
(2)采用h5

sdk缓存机制以提高用户界面加载体验。在传统的通过url形式加载h5界面时,用户打开界面往往会出现较长的界面信息加载时间,严重影响了用户的使用体验。本实施例中,采用h5

cache机制,确保只有在新的h5版本发布后才会更新本地模块缓存数据,实现用户界面秒级加载,大大提高了用户界面操作体验。
[0090]
(3)以更加安全的模块加载逻辑以提高用户操作安全体验。通过远程配置发布的
h5配置文件中,计算了各个h5模块包的md5值,并与h5

sdk约定,只有当模块资源文件包与配置中所给的md5值一致时,才会判定该模块资源文件未经篡改,可以正常加载使用,以此来提高h5模块的安全体验。
[0091]
具体的,在步骤s4中,将配置文件缓存于本地进一步包括:
[0092]
s41:根据配置文件信息,进行资源下载;
[0093]
s42:对下载的资源进行md5校验,校验通过后存储至本地;若校验失败,则删除资源。
[0094]
即上述用以提高用户体验的第(3)点所述的以更加安全的模块加载逻辑以提高用户操作安全体验。通过远程配置发布的h5配置文件中,计算了各个h5模块包的md5值,并与h5

sdk约定,只有当模块资源文件包与配置中所给的md5值一致时,才会判定该模块资源文件未经篡改,可以正常加载使用,以此来提高h5模块的安全体验。因此,在将h5模块的配置文件缓存于本地后,根据配置文件信息,进行资源下载,对下载的资源进行md5校验,校验通过后存储至本地;若校验失败,则删除资源。
[0095]
而将h5模块资源数据缓存于本地,则对应了上述用以提高用户体验的第(2)点所述的采用h5

cache机制,确保只有在新的h5版本发布后才会更新本地模块缓存数据,实现用户界面秒级加载,大大提高了用户界面操作体验。
[0096]
在步骤s4中,响应于目标应用加载所述配置文件,通过子线程下载配置文件中的h5模块进一步包括:
[0097]
s51:当目标应用需更新多个h5模块时,抽取该目标应用中各h5模块的公共资源,生成公共资源包,重新打包生成各h5模块私有资源包;
[0098]
s52:响应于目标应用加载所述配置文件时,将公共资源包与各h5模块私有资源包下发到目标应用。
[0099]
即上述用以提高用户体验的第(1)点所述的尽可能减少用户下载数据量以提高用户流量使用体验,针对此要求,本实施例在h5模块下发逻辑中,增加了公共资源包及差分下载的逻辑。
[0100]
在步骤s51中,抽取该目标应用中各h5模块的公共资源,生成公共资源包进一步包括:
[0101]
s61:通过打包平台抽取h5模块中包含vue、react通用库在内的公共资源;将抽取的公共资源进行第一次打包,并将公共资源依赖列表记录在打包平台上;
[0102]
s62:将打包后的公共资源包投放到目标应用中,触发目标应用变更配置信息,获取当前目标应用中所有的h5模块配置信息及打包平台上的公共资源依赖列表,进行合并,进行第二次打包,得到经签名及压缩后的公共资源包。
[0103]
上述打包平台可以是webpack。webpack可以看做是一种资源打包机,用来分析项目结构,找到h5模块中的基础通用库,例如:vue、react等,并将这些基础通用库打包形成公共资源离线包。webpack视htmu、is、css、图片等文件都是一种资源,每个资源文件都是一个模块文件,webpack就是根据每个模块文件之间的依赖关系将所有的模块打包起来的。
[0104]
h5应用拥有复杂的脚本代码和大量的依赖包,由于代码和依赖包会占用大量空间,并且占用大量的计算资源,因此会令h5应用的更新效率大大降低。为了简化h5应用的更新复杂度,需要“缩减”代码与依赖包,即将h5模块资源包拆分为公共资源包与私有资源包,
有效降低各h5应用的资源包体积,从而使h5应用更新率提高,h5应用开启速度加快,增强用户的使用感。
[0105]
在实际的项目开发中,操作人员可通过打包平台进行项目的打包。利用打包平台提取h5应用中的公共依赖,并记录公共资源文件。将打包后的公共资源包投放到目标应用中,触发目标应用变更配置信息,获取当前目标应用中所有的h5模块配置信息及打包平台上的公共资源依赖列表,进行合并,进行第二次打包,得到经签名及压缩后的公共资源包。
[0106]
在步骤s4中,更新目标应用中的相应模块进一步包括:
[0107]
s71:加载h5模块资源后,将目标应用中h5模块的当前版本与待更新版本进行差分运算,更新增量部分。
[0108]
可以理解的是,该差分运算并不是数学意义上的差分运算。在这里该差分运算具体是指对目标应用中h5模块的当前版本与待更新版本中的数据项进行对比,得到新增的数据项和/或更改项,作为增量部分进行更新,从而加快更新速率,实现用户无感更新。
[0109]
实施例二
[0110]
本实施例提供了一种h5应用的管理装置,请参看图2,该h5应用的管理装置包括:
[0111]
获取模块1,用于通过版本发布平台获取待发布应用清单,所述待发布应用清单包括待更新h5模块的多个目标应用;
[0112]
配置模块2,用于创建待更新h5模块的配置文件,所述配置文件至少包括模块标识、模块版本、对应资源的下载地址、模块在线访问地址及对应资源的md5值在内的多个字段;
[0113]
投放模块3,用于通过版本发布平台的远程配置将创建好的待更新h5模块的配置文件投放至目标应用;
[0114]
加载模块4,用于将所述配置文件缓存于本地,响应于目标应用加载所述配置文件,通过子线程下载配置文件中的h5模块,并更新目标应用中的相应模块。
[0115]
上述获取模块1、配置模块2、投放模块3及加载模块4的功能及实现方式均如上述实施例一中所述,在此不再赘述。
[0116]
实施例三
[0117]
上述实施例二从模块化功能实体的角度对本发明h5应用的管理装置进行详细描述,下面从硬件处理的角度对本发明h5应用的管理设备进行详细描述。
[0118]
请参看图3,该h5应用的管理设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对h5应用的管理设备500中的一系列指令操作。
[0119]
进一步地,处理器510可以设置为与存储介质530通信,在h5应用的管理设备500上执行存储介质530中的一系列指令操作。
[0120]
h5应用的管理设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如windows serve、vista等等。
[0121]
本领域技术人员可以理解,图3示出的h5应用的管理设备结构并不构成对h5应用的管理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0122]
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质。该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行实施例一中的h5应用的管理方法中的步骤。
[0123]
实施例二中的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件的形式体现出来,该计算机软件存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0124]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置及设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0125]
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1