基于Flutter的应用动态更新方法、装置、存储介质及电子设备制造方法及图纸

技术编号:24798843 阅读:32 留言:0更新日期:2020-07-07 20:56
本发明专利技术提供一种基于Flutter的应用动态更新方法、装置、存储介质及电子设备,所述方法包括:通过云管理平台获取目标资源文件包,所述目标资源文件包包含待更新的第一语言脚本;加载并解析所述目标资源文件包,以将所述第一语言脚本转成可供Flutter执行的Dart代码;执行所述Dart代码并渲染目标页面。本发明专利技术可以使应用实现跨平台动态更新,突破APP应用市场的版本发布周期限制、快速修复线上问题,以满足业务快速迭代需求。

【技术实现步骤摘要】
基于Flutter的应用动态更新方法、装置、存储介质及电子设备
本专利技术涉及计算机
,尤其涉及一种基于Flutter的应用动态更新方法、装置、存储介质及电子设备。
技术介绍
目前在大部分移动端业务需求中,都要求业务能快速上线试错迭代、快速修复线上问题以及突破APP应用市场的版本发布周期限制,避免消耗过多的人力和物力。因此,应用动态更新的重要性显而易见,于是市场上出现了多种应用动态更新方案。例如Android端的插件化更新、移动端的ReactNative(开源的跨平台移动应用开发框架)、小程序等等,但是这些动态化更新方案要么支持一端,要么系统兼容性差或用户体验性能存在问题,无法良好的平衡跨平台和体验性能。
技术实现思路
针对现有技术中的问题,本专利技术的目的在于提供一种基于Flutter的应用动态更新方法、装置、存储介质及电子设备,以使应用可以实现跨平台动态更新。根据本专利技术的一方面提供一种基于Flutter的应用动态更新方法,它包括如下步骤:通过云管理平台获取目标资源文件包,所述目标资源文件包包含待更新的第一语言脚本;加载并解析所述目标资源文件包,以将所述第一语言脚本转成可供Flutter执行的Dart代码;执行所述Dart代码并渲染目标页面。在本专利技术的一实施方式中,所述第一语言脚本为JS脚本;所述加载并解析所述目标资源文件包之前还包括:建立JS与Flutter的通信机制。在本专利技术的一实施方式中,所述建立JS与Flutter的通信机制的步骤包括;注册JS方法,用于JS调用native方法,以及用于JS通过native方法调用Flutter页面;注册方法通道,用于native与Flutter通信。在本专利技术的一实施方式中,所述加载并解析所述目标资源文件,以将所述第一语言脚本转成可供Flutter执行的Dart代码的步骤包括:通过JS引擎加载所述目标资源文件包,并将待更新的JS脚本转成文档对象模型;将所述文档对象模型转换成Flutter的基础组件树。在本专利技术的一实施方式中,所述执行所述Dart代码并渲染目标页面包括:确定目标页面;将所述基础组件树转为模型树;缓存所述模型树,以限定所述目标页面的页面数据。根据本专利技术的另一方面,提供一种基于Flutter的应用动态更新系统,它包括:获取模块,用以通过云管理平台获取目标资源文件包,所述目标资源文件包包含待更新的第一语言脚本;处理模块,用以加载并解析所述目标资源文件包,以将所述第一语言脚本转成可供Flutter执行的Dart代码;以及执行模块,用以执行所述Dart代码并渲染目标页面。根据本专利技术的另一方面,提供一种资源文件包的动态更新方法,应用于云管理平台,它包括:获取并解压指定模式的资源文件包;判断所述资源文件包的类型;若所述资源文件包的类型为bundle,则直接将其保存到本地;若所述资源文件包的类型为patch,则将其合并到已有bundle类资源文件包后保存到本地。根据本专利技术的又一方面,提供一种资源文件包的动态更新系统,它包括:第一获取模块,用以获取指定模式的资源文件包;解压模块,用以解压所述资源文件包;判断模块及存储模块,所述判断模块用以判断所述资源文件包的类型;若所述资源文件包的类型为bundle,则通过存储模块直接将所述资源文件包保存到本地。若所述资源文件包的类型为patch,则将所述资源文件包合并到已有bundle类资源文件包后再通过所述存储模块保存到本地。根据本专利技术的又一方面,提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述应用动态更新方法的步骤,或者,所述计算机程序被处理器运行时执行如上所述资源文件包的动态更新方法的步骤。根据本专利技术的又一方面,提供一种电子设备,所述电子设备包括:处理器和存储介质。所述存储介质上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述应用动态更新方法的步骤,或者,所述计算机程序被处理器运行时执行如上所述资源文件包的动态更新方法的步骤。本专利技术可以使应用实现跨平台动态更新,突破APP应用市场的版本发布周期限制、快速修复线上问题,以满足业务快速迭代需求。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显。图1是本专利技术基于Flutter的应用动态更新方法的流程图。图2是本专利技术一具体实施例中基于Flutter的应用动态更新方法的流程图。图3是本专利技术一实施例中基于Flutter的应用动态更新方法的部分流程图。图4是本专利技术另一实施例中基于Flutter的应用动态更新方法的部分流程图。图5是本专利技术基于Flutter的应用动态更新系统的结构示意图。图6是本专利技术资源文件包的动态更新方法的流程图。图7是本专利技术资源文件包的动态更新系统的结构示意图。图8是本专利技术基于Flutter的应用动态更新方法的总体架构图。图9是本专利技术一实施例中计算机可读存储介质的结构示意图。以及图10是本专利技术一实施例中电子设备的结构示意图。具体实施方式现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。本专利技术提供一种基于Flutter的应用动态更新方法、装置、电子设备及存储介质,图1为本专利技术一实施例中基于Flutter的应用动态更新方法的流程图。如图1所示,所述基于Flutter的应用动态更新方法包括如下步骤:S100,通过云管理平台获取目标资源文件包,所述目标资源文件包包含待更新的第一语言脚本。具体地,客户端接收云管理平台通过服务器和内容分发网络下发的目标资源文件包,所述目标资源文件包包含待更新的前端第一语言脚本。需要说明的是,Flutter是Google开发的一套全新的跨平台、开源UI框架,Flutter的目标是使同一套代码同时运行在Android和iOS系统上,并且拥有媲美原生应用的性能。在Flutter中,所有功能都可以通过组合多个Widget(即组件)来实现,包括对齐方式、按行排列、按列排列、网格排列甚至事件处理等等。Flut本文档来自技高网...

【技术保护点】
1.一种基于Flutter的应用动态更新方法,应用于客户端,其特征在于,包括:/n通过云管理平台获取目标资源文件包,所述目标资源文件包包含待更新的第一语言脚本;/n加载并解析所述目标资源文件包,以将所述第一语言脚本转成可供Flutter执行的Dart代码;/n执行所述Dart代码并渲染目标页面。/n

【技术特征摘要】
1.一种基于Flutter的应用动态更新方法,应用于客户端,其特征在于,包括:
通过云管理平台获取目标资源文件包,所述目标资源文件包包含待更新的第一语言脚本;
加载并解析所述目标资源文件包,以将所述第一语言脚本转成可供Flutter执行的Dart代码;
执行所述Dart代码并渲染目标页面。


2.根据权利要求1所述的基于Flutter的应用动态更新方法,其特征在于,所述第一语言脚本为JS脚本;
所述加载并解析所述目标资源文件包之前还包括:
建立JS与Flutter的通信机制。


3.根据权利要求2所述的基于Flutter的应用动态更新方法,其特征在于,所述建立JS与Flutter的通信机制的步骤包括;
注册JS方法,用于JS调用native方法,以及用于JS通过native方法调用Flutter页面;
注册方法通道,用于native与Flutter通信。


4.根据权利要求2所述的基于Flutter的应用动态更新方法,其特征在于,所述加载并解析所述目标资源文件,以将所述第一语言脚本转成可供Flutter执行的Dart代码的步骤包括:
通过JS引擎加载所述目标资源文件包,并将待更新的JS脚本转成文档对象模型;
将所述文档对象模型转换成Flutter的基础组件树。


5.根据权利要求4所述的基于Flutter的应用动态更新方法,其特征在于,所述执行所述Dart代码并渲染目标页面包括:
确定目标页面;
将所述基础组件树转为模型树;
缓存所述模型树,以限定所述目标页面的页面数据。

【专利技术属性】
技术研发人员:徐维顺章伟徐亮
申请(专利权)人:江苏满运软件科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1