基于Flutter的小程序动态更新方法、装置及介质制造方法及图纸

技术编号:35097429 阅读:10 留言:0更新日期:2022-10-01 17:01
本发明专利技术是关于一种基于Flutter的小程序动态更新方法、装置及介质,方法包括:构建基于Flutter的小程序框架;在接收到目标小程序建立请求时,通过所述小程序框架的编译工具将所述目标小程序的业务代码编译成JS文件;将所述JS文件和所述目标小程序所使用的图片资源打包成资源包;将所述资源包上传至小程序资源管理平台。通过该技术方案,可以实现基于Flutter的小程序框架,让Flutter这个跨平台技术方案能服务于小程序且依托于小程序实现动态更新能力。能力。能力。

【技术实现步骤摘要】
基于Flutter的小程序动态更新方法、装置及介质


[0001]本专利技术涉及计算机
,尤其涉及一种基于Flutter的小程序动态更新方法、装置及介质。

技术介绍

[0002]动态更新可以拓展软件的更新方式,减少触达用户的成本,不需要用户到应用市场升级App(Application,应用程序)。动态更新使得软件内容的变化更简单,可以满足部分内容快速投放市场的需求。
[0003]Flutter作为一个新兴的移动UI框架,可以构建适用于移动端的高质量的用户界面。但是,相关技术中的实现方案,Flutter不支持代码动态更新,相较于传统的跨平台技术方案,如:Web技术,没办法做到随时发布新的业务功能。并且Flutter本身专注于应用级别的业务开发,不服务于小程序技术栈,没办法直接在小程序开发中享受Flutter组件的便捷。

技术实现思路

[0004]为克服相关技术中存在的问题,本专利技术提供一种基于Flutter的小程序动态更新方法、装置及存储介质,实现基于Flutter的小程序框架,让Flutter这个跨平台技术方案能服务于小程序且依托于小程序实现动态更新能力。
[0005]根据本专利技术实施例的第一方面,提供一种基于Flutter的小程序动态更新方法,所述方法包括:
[0006]构建基于Flutter的小程序框架;
[0007]在接收到目标小程序建立请求时,通过所述小程序框架的编译工具将所述目标小程序的业务代码编译成JS文件;
[0008]将所述JS文件和所述目标小程序所使用的图片资源打包成资源包;
[0009]将所述资源包上传至小程序资源管理平台。
[0010]在一个实施例中,优选地,所述小程序框架包括:
[0011]Engine层、Framework层、胶水层和业务层。
[0012]Engine层是小程序框架背后底层能力的支撑,包括平台的能力(如:网络请求能力、文字输入能力等),CanvasKit Binding是模拟CanvasKit的API实现,其背后依赖于Skia和V8/JSCore,以及部分标准的Web API协议。
[0013]Framework层是把Flutter通过dart2js工具编译成framework.js,相当于将Flutter变成了小程序的UI框架。
[0014]胶水层是面向开发者提供TypeScript版本的Flutter组件,并背后关联上framework.js。
[0015]小程序业务层基于胶水层编译的npm package进行开发,最终通过编译工具打包成资源包。
[0016]在一个实施例中,优选地,所述方法还包括:
[0017]当接收到所述目标小程序的程序更新请求时,通过所述小程序框架的编译工具将所述目标小程序的更新后的业务代码编译成更新后的JS文件;
[0018]将所述更新后的JS文件和所述目标小程序所使用的图片资源打包成更新后的资源包;
[0019]将所述更新后的资源包上传至小程序资源管理平台。
[0020]根据本专利技术实施例的第二方面,提供一种基于Flutter的小程序动态更新方法,用于移动终端,移动终端中内置基于Flutter的小程序框架,所述方法包括:
[0021]在接收到基于Flutter的目标小程序的启动请求时,发送目标小程序获取请求至小程序资源管理平台,以从所述小程序资源管理平台获取所述目标小程序的资源包;
[0022]通过所述基于Flutter的小程序框架解析所述目标小程序的资源包,分离出所述资源包中的JS文件和图片资源;
[0023]通过所述基于Flutter的小程序框架执行所述JS文件中的业务代码,并通过所述业务代码驱动Flutter组件加载所述资源文件,并渲染所述目标小程序的界面;
[0024]展示所述目标小程序的界面。
[0025]在一个实施例中,优选地,所述方法还包括:
[0026]当获取到所述目标小程序的资源包后,判断所述移动终端中是否已经存储有所述目标小程序的初始资源包;
[0027]当所述移动终端中已经存储有所述目标小程序的初始资源包时,确定是否更新所述目标小程序的初始资源包;
[0028]当确定更新所述目标小程序的初始资源包时,下载并存储所述目标小程序的资源包;
[0029]当确定不更新所述目标小程序的初始资源包,直接通过所述基于Flutter的小程序框架解析所述目标小程序的初始资源包。
[0030]根据本专利技术实施例的第三方面,提供一种基于Flutter的小程序动态更新装置,所述装置包括:
[0031]构建模块,用于构建基于Flutter的小程序框架;
[0032]编译模块,用于在接收到目标小程序建立请求时,通过所述小程序框架的编译工具将所述目标小程序的业务代码编译成JS文件;
[0033]打包模块,用于将所述JS文件和所述目标小程序所使用的图片资源打包成资源包;
[0034]上传模块,用于将所述资源包上传至小程序资源管理平台。
[0035]在一个实施例中,优选地,所述编译模块还用于:
[0036]当接收到所述目标小程序的程序更新请求时,通过所述小程序框架的编译工具将所述目标小程序的更新后的业务代码编译成更新后的JS文件;
[0037]所述打包模块还用于:
[0038]将所述更新后的JS文件和所述目标小程序所使用的图片资源打包成更新后的资源包;
[0039]所述上传模块还用于:
[0040]将所述更新后的资源包上传至小程序资源管理平台。
[0041]根据本专利技术实施例的第四方面,提供一种基于Flutter的小程序动态更新装置,用于移动终端,移动终端中内置基于Flutter的小程序框架,所述装置包括:
[0042]发送模块,用于在接收到基于Flutter的目标小程序的启动请求时,发送目标小程序获取请求至小程序资源管理平台,以从所述小程序资源管理平台获取所述目标小程序的资源包;
[0043]解析模块,用于通过所述基于Flutter的小程序框架解析所述目标小程序的资源包,分离出所述资源包中的JS文件和图片资源;
[0044]处理模块,用于通过所述基于Flutter的小程序框架执行所述JS文件中的业务代码,并通过所述业务代码驱动Flutter组件加载所述资源文件,并渲染所述目标小程序的界面;
[0045]展示模块,用于展示所述目标小程序的界面。
[0046]在一个实施例中,优选地,所述装置还包括:
[0047]判断模块,用于当获取到所述目标小程序的资源包后,判断所述移动终端中是否已经存储有所述目标小程序的初始资源包;
[0048]确定模块,用于当所述移动终端中已经存储有所述目标小程序的初始资源包时,确定是否更新所述目标小程序的初始资源包;
[0049]下载模块,用于当确定更新所述目标小程序的初始资源包时,下载并存储所述目标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Flutter的小程序动态更新方法,其特征在于,所述方法包括:构建基于Flutter的小程序框架;在接收到目标小程序建立请求时,通过所述小程序框架的编译工具将所述目标小程序的业务代码编译成JS文件;将所述JS文件和所述目标小程序所使用的图片资源打包成资源包;将所述资源包上传至小程序资源管理平台。2.根据权利要求1所述的方法,其特征在于,所述小程序框架包括:Engine层、Framework层、胶水层和业务层。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:当接收到所述目标小程序的程序更新请求时,通过所述小程序框架的编译工具将所述目标小程序的更新后的业务代码编译成更新后的JS文件;将所述更新后的JS文件和所述目标小程序所使用的图片资源打包成更新后的资源包;将所述更新后的资源包上传至小程序资源管理平台。4.一种基于Flutter的小程序动态更新方法,其特征在于,用于移动终端,所述移动终端中内置基于Flutter的小程序框架,所述方法包括:在接收到基于Flutter的目标小程序的启动请求时,发送目标小程序获取请求至小程序资源管理平台,以从所述小程序资源管理平台获取所述目标小程序的资源包;通过所述基于Flutter的小程序框架解析所述目标小程序的资源包,分离出所述资源包中的JS文件和图片资源;通过所述基于Flutter的小程序框架执行所述JS文件中的业务代码,并通过所述业务代码驱动Flutter组件加载所述资源文件,并渲染所述目标小程序的界面;展示所述目标小程序的界面。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当获取到所述目标小程序的资源包后,判断所述移动终端中是否已经存储有所述目标小程序的初始资源包;当所述移动终端中已经存储有所述目标小程序的初始资源包时,确定是否更新所述目标小程序的初始资源包;当确定更新所述目标小程序的初始资源包时,下载并存储所述目标小程序的资源包;当确定不更新所述目标小程序的初始资源包,直接通过所述基于Flutter的小程序框架解析所述目标小程序的初始资源包。6.一种基于Flutter的小程序动态更新装置,其特征在于,所述装置包括:构建模块,用于构建基于Flutter的小程序框架;编译模块,用于在接收到目标小程序建立请求时,通过所述小程序框架的编译工具将所述目标小程序的业务代码编译成JS文...

【专利技术属性】
技术研发人员:刘剑杨春柳
申请(专利权)人:北京小川在线网络技术有限公司
类型:发明
国别省市:

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

1