CN111796829B - 小程序更新方法、装置、电子设备及计算机可读存储介质 - Google Patents
小程序更新方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111796829B CN111796829B CN202010427489.6A CN202010427489A CN111796829B CN 111796829 B CN111796829 B CN 111796829B CN 202010427489 A CN202010427489 A CN 202010427489A CN 111796829 B CN111796829 B CN 111796829B
- Authority
- CN
- China
- Prior art keywords
- applet
- variable
- updating
- global
- target
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本公开的实施例提供了一种小程序更新方法及装置。所述方法包括:获取待转换的目标小程序对应的小程序文件;获取所述小程序文件中包含的所有全局变量;对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台。本公开实施例通过对小程序文件中的全局变量进行更新,以将小程序对接至业务平台,从而在小程序转化平台小程序的过程中,仅需对小程序的全局变量重新定义,从而减少了业务人员的业务量,减少了小程序的改造时间。
Description
技术领域
本公开的实施例涉及小程序处理技术领域,尤其涉及一种小程序更新方法、装置、电子设备及计算机可读存储介质。
背景技术
小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或搜一下即可打开应用。
在当前小程序开发流程中,某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包/子包(即小程序中独立的业务单元,可以独立加载,一般包含一个或多个页面),用户在使用时按需进行加载。
分包加载的用户体验要好于跳转到独立小程序,且能将流量集中在单一小程序,有利于提升用户留存。于是,就存在将现有的独立小程序转化改造为平台小程序(包含多个业务分包的小程序)分包的需求和实践。
在传统小程序开发流程中,将已有独立小程序转化为平台小程序的分包成本较高,需要改造除了页面布局之外所有的部分,并且随着业务复杂度的增加,改造时间线性增长。
发明内容
本公开的实施例提供一种小程序更新方法、装置、电子设备及计算机可读存储介质,用以节省独立小程序转化为平台小程序的时间,减少小程序的转化业务量。
根据本公开的实施例的第一方面,提供了一种小程序更新方法,包括:
获取待转换的目标小程序对应的小程序文件;
获取所述小程序文件中包含的所有全局变量;
对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台。
可选地,所述获取所述小程序文件中包含的所有全局变量,包括:
将所述小程序文件转换为抽象语法树;
对所述抽象语法树进行遍历,获取所述小程序文件中包含的所有全局变量。
可选地,所述所有全局变量包括:调用方法集变量,所述对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台,包括:
将所述调用方法集变量包含的请求方法变量更新为所述业务平台对应的代理接口;
将所述调用方法集变量包含的存储方法变量更新为所述业务平台对应的分包存储位置;
将所述调用方法集变量包含的页面跳转变量更新为所述目标小程序的分包跳转路径。
可选地,所述所有全局变量包括:应用程序变量,所述对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台,包括:
根据所述目标小程序的执行生命周期,构建分包虚拟程序实例;
将所述目标小程序的各方法对接至所述分包虚拟程序实例。
可选地,所述所有全局变量包括:应用程序获取方法变量,所述对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台,包括:
对所述应用程序获取方法变量进行更新,以在更新的应用程序获取方法被触发时返回所述分包虚拟程序实例。
根据本公开的实施例的第二方面,提供了一种小程序更新方法,包括:
小程序文件获取模块,用于获取待转换的目标小程序对应的小程序文件;
全局变量获取模块,用于获取所述小程序文件中包含的所有全局变量;
全局变量更新模块,用于对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台。
可选地,所述全局变量获取模块包括:
小程序文件转换单元,用于将所述小程序文件转换为抽象语法树;
全局变量获取单元,用于对所述抽象语法树进行遍历,获取所述小程序文件中包含的所有全局变量。
可选地,所述所有全局变量包括:调用方法集变量,所述全局变量更新模块包括:
请求方法变量更新单元,用于将所述调用方法集变量包含的请求方法变量更新为所述业务平台对应的代理接口;
存储方法变量更新单元,用于将所述调用方法集变量包含的存储方法变量更新为所述业务平台对应的分包存储位置;
页面跳转变量更新单元,用于将所述调用方法集变量包含的页面跳转变量更新为所述目标小程序的分包跳转路径。
可选地,所述所有全局变量包括:应用程序变量,所述全局变量更新模块包括:
分包虚拟实例构建单元,用于根据所述目标小程序的执行生命周期,构建分包虚拟程序实例;
分包虚拟实例对接单元,用于将所述目标小程序的各方法对接至所述分包虚拟程序实例。
可选地,所述所有全局变量包括:应用程序获取方法变量,所述全局变量更新模块包括:
程序获取方法变量更新单元,用于对所述应用程序获取方法变量进行更新,以在更新的应用程序获取方法被触发时返回所述分包虚拟程序实例。
根据本公开的实施例的第三方面,提供了一种电子设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的小程序更新方法。
根据本公开的实施例的第四方面,提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一项所述的小程序更新方法。
本公开的实施例提供了一种小程序更新方案,通过获取待转换的目标小程序对应的小程序文件,获取小程序文件中包含的所有全局变量,对所有全局变量进行更新处理,以将目标小程序对接至业务平台。本公开通过对小程序文件中的全局变量进行更新,以将小程序对接至业务平台,从而在小程序转化平台小程序的过程中,仅需对小程序的全局变量重新定义,从而减少了业务人员的业务量,减少了小程序的改造时间。
附图说明
为了更清楚地说明本公开的实施例的技术方案,下面将对本公开的实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开的实施例提供的一种小程序更新方法的步骤流程图;
图2是本公开的实施例提供的一种小程序更新方法的步骤流程图;
图3是本公开的实施例提供的一种小程序更新装置的结构示意图;
图4是本公开的实施例提供的一种小程序更新装置的结构示意图。
具体实施方式
下面将结合本公开的实施例中的附图,对本公开的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的实施例一部分实施例,而不是全部的实施例。基于本公开的实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开的实施例保护的范围。
实施例一
参照图1,示出了本公开实施例提供的一种小程序更新方法的步骤流程图,具体可以包括如下步骤:
步骤101:获取待转换的目标小程序对应的小程序文件。
本公开实施例可以应用于将独立的小程序转换为平台小程序的场景中。
小程序(Mini Program)是一种不用下载就能使用的应用,也是一项门槛非常高的创新,经过将近两年的发展,已经构造了新的小程序开发环境和开发者生态。
目标小程序是指需要向业务平台进行转换的小程序,如微信小程序:“消消乐”、“水上跑跑跑”等等。
小程序文件是指描述目标小程序的文件。
在获取到待转换的目标小程序之后,可以获取目标小程序对应的小程序文件,进而,执行步骤102。
步骤102:获取所述小程序文件中包含的所有全局变量。
全局变量是编程术语中的一种,源自于变量之分。变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
在获取到目标小程序的小程序文件之后,可以获取小程序文件中所有的全局变量。如请求方法变量(Request)、存储方法变量(Storage)等。
在获取到小程序文件中的所有全局变量之后,执行步骤103。
步骤103:对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台。
在获取到小程序文件中的所有全局变量之后,可以对所有全局变量进行更新处理,以将目标小程序对接至业务平台,具体地,重新定义独立小程序中的全部全局变量,使其兼容至平台小程序的分包环境,从而可以达到在无需修改业务代码的情况下,能够将独立小程序自动转化为业务平台的分包。
本公开的实施例对业务代码无侵入,无需修改业务代码,转化成本不会随着业务复杂度增大而增大,对小程序原生代码进行后置处理,无需变更原独立小程序框架或构建流程,从而能够减少业务人员的业务量,减少小程序向业务平台的改造时间。
本公开的实施例提供了一种小程序更新方法,通过获取待转换的目标小程序对应的小程序文件,获取小程序文件中包含的所有全局变量,对所有全局变量进行更新处理,以将目标小程序对接至业务平台。本公开通过对小程序文件中的全局变量进行更新,以将小程序对接至业务平台,从而在小程序转化平台小程序的过程中,仅需对小程序的全局变量重新定义,从而减少了业务人员的业务量,减少了小程序的改造时间。
实施例二
参照图2,示出了本公开实施例提供的一种小程序更新方法的步骤流程图,具体可以包括如下步骤:
步骤201:获取待台转换的目标小程序对应的小程序文件。
本公开实施例可以应用于将独立的小程序转换为平台小程序的场景中。
小程序(Mini Program)是一种不用下载就能使用的应用,也是一项门槛非常高的创新,经过将近两年的发展,已经构造了新的小程序开发环境和开发者生态。
目标小程序是指需要向业务平台进行转换的小程序,如微信小程序:“消消乐”、“水上跑跑跑”等等。
小程序文件是指描述目标小程序的文件。
在获取到需要向业务平台转换的目标小程序之后,可以获取目标小程序对应的小程序文件,进而,执行步骤202。
步骤202:将所述小程序文件转换为抽象语法树。
抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。之所以说语法是"抽象"的,是因为这里的语法并不会表示出真实语法中出现的每个细节。比如,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现;而类似于if-condition-then这样的条件跳转语句,可以使用带有两个分支的节点来表示。
在获取到目标小程序全部的小程序文件之后,可以将小程序文件转化为抽象语法树,从而可以进行后续对语法树的遍历过程。
在将小程序文件转换为抽象语法树之后,执行步骤203。
步骤203:对所述抽象语法树进行遍历,获取所述小程序文件中包含的所有全局变量。
全局变量是编程术语中的一种,源自于变量之分。变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
在将小程序文件转换为抽象语法树之后,可以对抽象语法树进行遍历,以获取小程序文件中所包含的全局变量。
本公开实施例通过将小程序文件转换为抽象语法树,在获取全局变量的过程中,可以对抽象语法树依次进行遍历,从而可以获取到小程序文件中包含的所有全局变量。
在获取到小程序文件中包含的所有全局变量之后,则可以执行后续的全局变量的更新操作,以将独立的目标小程序转换为业务平台的小程序。
步骤204:将所述调用方法集变量包含的请求方法变量更新为所述业务平台对应的代理接口。
在本公开实施例中,目标小程序的所有全局变量中包含有调用方法集变量(WX),即目标小程序的所有调用方法变量形成的集合。
在调用方法集变量中包含有请求方法变量(即request方法变量),在本公开中,可以对request方法变量进行更新,即重新定义request方法变量,使目标小程序的所有request方法变量都使用统一域名的代理接口进行代理,以防止独立小程序的请求域名过多,超出小程序域名数量限制。
步骤205:将所述调用方法集变量包含的存储方法变量更新为所述业务平台对应的分包存储位置。
在调用方法集变量中还包含有存储方法变量(即storage方法变量),在本公开中,可以对storage方法变量进行更新,即重新定义storage方法变量,以将目标小程序的storage方法变量更新至业务平台对应的分包存储位置,具体地,重新定义storage方法变量,使得在目标小程序storage存储的信息的key值附加上分包标识前缀,以防止分包的storage存储的信息污染主包的storage。
步骤206:将所述调用方法集变量包含的页面跳转变量更新为所述目标小程序的分包跳转路径。
在调用方法集变量中还包含页面跳转变量(即navigate方法变量),在本公开中,可以对navigate方法变量进行更新,即重新定义navigate方法变量,以将页面跳转变量更新至目标小程序的分包跳转路径,即对navigate方法变量重新定义,以改造wxml中的navigator组件,修正跳转路径,使得跳转路径附加上分包路径的前缀。
步骤207:根据所述目标小程序的执行生命周期,构建分包虚拟程序实例。
步骤208:将所述目标小程序的各方法对接至所述分包虚拟程序实例。
在本公开中,还可以在目标小程序之前,生成分包虚拟程序实例(即分包虚拟app(application,应用程序)实例),并将各方法附加到该实例上。使用wx.onAppHide及wx.onAppShow分别使得独立小程序的onShow、onHide生命周期钩子能够被平台小程序正常执行,即在目标小程序被首次出发时触发显示,而再次被触发时,隐藏目标小程序。即将目标小程序的各方法对接至分包虚拟程序实例。
步骤209:对所述应用程序获取方法变量进行更新,以在更新的应用程序获取方法被触发时返回所述分包虚拟程序实例。
全局变量还可以包括应用程序获取方法变量(即getApp方法变量),在本公开中,还可以对getApp方法变量,以在更新的应用程序获取方法被触发时返回分包虚拟程序实例,即重新定义getApp方法,使其返回上一步生成的分包虚拟app实例。
当然,在本公开实施例中,全局变量还可以包括:Component(组分方法变量)和Page(页面方法变量),在本公开中可以重新定义Component和Page构造器,在第一个构造器执行时,执行App构造函数。这么做的原因是,在Component和Page构造器执行之前,就需要构造好分包虚拟app实例,防止Component构造器执行时依赖app实例上的属性及方法。
当然,在本实施例中,还可以对getCurrentPages进行重新定义,以使得获取的页面栈具有如下能:1、仅包含分包的页面;2、页面路径去除分包页面的标识前缀,使得分包内的逻辑能够正确识别页面。
本公开实施例通过对目标小程序的全局变量重新定义,可以使得开发者在无需修改业务代码的情况下,能够将独立小程序自动转换为业务平台的分包。
本公开的实施例提供了一种小程序更新方法,通过获取待转换的目标小程序对应的小程序文件,获取小程序文件中包含的所有全局变量,对所有全局变量进行更新处理,以将目标小程序对接至业务平台。本公开通过对小程序文件中的全局变量进行更新,以将小程序对接至业务平台,从而在小程序转化平台小程序的过程中,仅需对小程序的全局变量重新定义,从而减少了业务人员的业务量,减少了小程序的改造时间。
实施例三
参照图3,示出了本公开实施例提供的一种小程序更新装置的结构示意图,具体可以包括如下模块:
小程序文件获取模块310,用于获取待转换的目标小程序对应的小程序文件;
全局变量获取模块320,用于获取所述小程序文件中的所有全局变量;
所有全局变量更新模块330,用于对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台。
本公开的实施例提供了一种小程序更新装置,通过获取待转换的目标小程序对应的小程序文件,获取小程序文件中包含的所有全局变量,对所有全局变量进行更新处理,以将目标小程序对接至业务平台。本公开通过对小程序文件中的全局变量进行更新,以将小程序对接至业务平台,从而在小程序转化平台小程序的过程中,仅需对小程序的全局变量重新定义,从而减少了业务人员的业务量,减少了小程序的改造时间。
实施例四
参照图4,示出了本公开实施例提供的一种小程序更新装置的结构示意图,具体可以包括如下模块:
小程序文件获取模块410,用于获取待转换的目标小程序对应的小程序文件;
全局变量获取模块420,用于获取所述小程序文件中的所有全局变量;
全局变量更新模块430,用于对所述所有全局变量进行更新处理,以将所述目标小程序对接至所述业务平台。
可选地,所述全局变量获取模块420包括:
小程序文件转换单元421,用于将所述小程序文件转换为抽象语法树;
全局变量获取单元422,用于对所述抽象语法树进行遍历,获取所述小程序文件中包含的所有全局变量。
可选地,所述所有全局变量包括:调用方法集变量,所述全局变量更新模块430包括:
请求方法变量更新单元431,用于将所述调用方法集变量包含的请求方法变量更新为所述业务平台对应的代理接口;
存储方法变量更新单元432,用于将所述调用方法集变量包含的存储方法变量更新为所述业务平台对应的分包存储位置;
页面跳转变量更新单元433,用于将所述调用方法集变量包含的页面跳转变量更新为所述目标小程序的分包跳转路径。
可选地,所述所有全局变量包括:应用程序变量,所述全局变量更新模块430包括:
分包虚拟实例构建单元434,用于根据所述目标小程序的执行生命周期,构建分包虚拟程序实例;
分包虚拟实例对接单元435,用于将所述目标小程序的各方法对接至所述分包虚拟程序实例。
可选地,所述所有全局变量包括:应用程序获取方法变量,所述全局变量更新模块430包括:
程序获取方法变量更新单元436,用于对所述应用程序获取方法变量进行更新,以在更新的应用程序获取方法被触发时返回所述分包虚拟程序实例。
本公开的实施例提供了一种小程序更新装置,通过获取待转换的目标小程序对应的小程序文件,获取小程序文件中包含的所有全局变量,对所有全局变量进行更新处理,以将目标小程序对接至业务平台。本公开通过对小程序文件中的全局变量进行更新,以将小程序对接至业务平台,从而在小程序转化平台小程序的过程中,仅需对小程序的全局变量重新定义,从而减少了业务人员的业务量,减少了小程序的改造时间。
本公开的实施例还提供了一种电子设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现前述实施例的小程序更新方法。
本公开的实施例还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的小程序更新方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本公开的实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的实施例的内容,并且上面对特定语言所做的描述是为了披露本公开的实施例的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开的实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的实施例的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
本公开的实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开的实施例的动态图片的生成设备中的一些或者全部部件的一些或者全部功能。本公开的实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本公开的实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本公开的实施例进行说明而不是对本公开的实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开的实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述仅为本公开的实施例的较佳实施例而已,并不用以限制本公开的实施例,凡在本公开的实施例的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本公开的实施例的保护范围之内。
以上所述,仅为本公开的实施例的具体实施方式,但本公开的实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开的实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的实施例的保护范围之内。因此,本公开的实施例的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种小程序更新方法,其特征在于,包括:
获取待转换的目标小程序对应的小程序文件;
获取所述小程序文件中包含的所有全局变量;
对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台,使所述目标小程序兼容至平台小程序的分包环境,将所述目标小程序自动转化为业务平台的分包;
其中,所述所有全局变量包括应用程序变量,对所述所有全局变量进行更新处理,包括:
根据所述目标小程序的执行生命周期,构建分包虚拟程序实例;
将所述目标小程序的各方法对接至所述分包虚拟程序实例,使用wx.onAppHide及wx.onAppShow分别使得所述目标小程序的onShow、onHide生命周期钩子能够被平台小程序正常执行。
2.根据权利要求1所述的方法,其特征在于,所述获取所述小程序文件中包含的所有全局变量,包括:
将所述小程序文件转换为抽象语法树;
对所述抽象语法树进行遍历,获取所述小程序文件中包含的所有全局变量。
3.根据权利要求1所述的方法,其特征在于,所述所有全局变量,还包括:调用方法集变量,所述对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台,包括:
将所述调用方法集变量包含的请求方法变量更新为所述业务平台对应的代理接口;
将所述调用方法集变量包含的存储方法变量更新为所述业务平台对应的分包存储位置;
将所述调用方法集变量包含的页面跳转变量更新为所述目标小程序的分包跳转路径。
4.根据权利要求1所述的方法,其特征在于,所述所有全局变量包括:应用程序获取方法变量,所述对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台,包括:
对所述应用程序获取方法变量进行更新,以在更新的应用程序获取方法被触发时返回所述分包虚拟程序实例。
5.一种小程序更新装置,其特征在于,包括:
小程序文件获取模块,用于获取待转换的目标小程序对应的小程序文件;
全局变量获取模块,用于获取所述小程序文件中包含的所有全局变量;
全局变量更新模块,用于对所述所有全局变量进行更新处理,以将所述目标小程序对接至业务平台,使所述目标小程序兼容至平台小程序的分包环境,将所述目标小程序自动转化为业务平台的分包;
所述所有全局变量包括应用程序变量,所述全局变量更新模块包括:
分包虚拟实例构建单元,用于根据所述目标小程序的执行生命周期,构建分包虚拟程序实例;
分包虚拟实例对接单元,用于将所述目标小程序的各方法对接至所述分包虚拟程序实例,使用wx.onAppHide及wx.onAppShow分别使得所述目标小程序的onShow、onHide生命周期钩子能够被平台小程序正常执行。
6.根据权利要求5所述的装置,其特征在于,所述全局变量获取模块包括:
小程序文件转换单元,用于将所述小程序文件转换为抽象语法树;
全局变量获取单元,用于对所述抽象语法树进行遍历,获取所述小程序文件中包含的所有全局变量。
7.根据权利要求5所述的装置,其特征在于,所述所有全局变量包括:调用方法集变量,所述全局变量更新模块包括:
请求方法变量更新单元,用于将所述调用方法集变量包含的请求方法变量更新为所述业务平台对应的代理接口;
存储方法变量更新单元,用于将所述调用方法集变量包含的存储方法变量更新为所述业务平台对应的分包存储位置;
页面跳转变量更新单元,用于将所述调用方法集变量包含的页面跳转变量更新为所述目标小程序的分包跳转路径。
8.根据权利要求5所述的装置,其特征在于,所述所有全局变量包括:应用程序获取方法变量,所述全局变量更新模块包括:
程序获取方法变量更新单元,用于对所述应用程序获取方法变量进行更新,以在更新的应用程序获取方法被触发时返回所述分包虚拟程序实例。
9.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4中任一项所述的小程序更新方法。
10.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如方法权利要求1-4中任一项所述的小程序更新方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010427489.6A CN111796829B (zh) | 2020-05-19 | 2020-05-19 | 小程序更新方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010427489.6A CN111796829B (zh) | 2020-05-19 | 2020-05-19 | 小程序更新方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111796829A CN111796829A (zh) | 2020-10-20 |
| CN111796829B true CN111796829B (zh) | 2024-06-07 |
Family
ID=72806503
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010427489.6A Active CN111796829B (zh) | 2020-05-19 | 2020-05-19 | 小程序更新方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111796829B (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112506582B (zh) * | 2020-12-18 | 2024-04-09 | 北京百度网讯科技有限公司 | 小程序数据包处理方法、装置、设备及介质 |
| CN112527415A (zh) * | 2020-12-23 | 2021-03-19 | 深圳尚米网络技术有限公司 | 小程序跨平台迁移方法、装置、设备和介质 |
| CN112764836B (zh) * | 2021-01-28 | 2024-08-09 | 深圳市欢太科技有限公司 | 运行快应用的方法、装置及电子设备 |
| CN114546639B (zh) * | 2022-02-14 | 2024-05-31 | 支付宝(杭州)信息技术有限公司 | 服务调用处理方法及装置 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108182069A (zh) * | 2017-12-28 | 2018-06-19 | 深圳市创梦天地科技股份有限公司 | 程序语言转换方法、终端设备及计算机可读介质 |
| CN109947433A (zh) * | 2019-03-28 | 2019-06-28 | 优信拍(北京)信息科技有限公司 | 一种小程序的生成方法、更新方法及装置 |
| CN110532029A (zh) * | 2019-09-04 | 2019-12-03 | 深圳前海微众银行股份有限公司 | 小程序生成方法、装置、设备及计算机可读存储介质 |
| CN110888645A (zh) * | 2019-10-12 | 2020-03-17 | 贝壳技术有限公司 | 一种转换为小程序的方法、装置和存储介质 |
| CN110968325A (zh) * | 2019-10-28 | 2020-04-07 | 苏宁云计算有限公司 | 一种小程序转换方法及装置 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9239710B2 (en) * | 2013-03-15 | 2016-01-19 | ArtinSoft Corporation | Programming language transformations with abstract syntax tree extensions |
-
2020
- 2020-05-19 CN CN202010427489.6A patent/CN111796829B/zh active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108182069A (zh) * | 2017-12-28 | 2018-06-19 | 深圳市创梦天地科技股份有限公司 | 程序语言转换方法、终端设备及计算机可读介质 |
| CN109947433A (zh) * | 2019-03-28 | 2019-06-28 | 优信拍(北京)信息科技有限公司 | 一种小程序的生成方法、更新方法及装置 |
| CN110532029A (zh) * | 2019-09-04 | 2019-12-03 | 深圳前海微众银行股份有限公司 | 小程序生成方法、装置、设备及计算机可读存储介质 |
| CN110888645A (zh) * | 2019-10-12 | 2020-03-17 | 贝壳技术有限公司 | 一种转换为小程序的方法、装置和存储介质 |
| CN110968325A (zh) * | 2019-10-28 | 2020-04-07 | 苏宁云计算有限公司 | 一种小程序转换方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111796829A (zh) | 2020-10-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111796829B (zh) | 小程序更新方法、装置、电子设备及计算机可读存储介质 | |
| CN109710428B (zh) | 一种实现类的动态调用方法及装置 | |
| WO2019237701A1 (zh) | 跨语言编程 | |
| CN106933610B (zh) | 一种应用程序安装包生成方法、装置及电子设备 | |
| CN110149800A (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
| CN106547527B (zh) | 一种JavaScript文件构建方法及装置 | |
| CN109739508B (zh) | 源代码编译方法、装置、系统及存储介质 | |
| CN110069259B (zh) | 基于idl文件的解析方法、装置、电子设备和存储介质 | |
| CN111427583A (zh) | 组件的编译方法、装置和电子设备及计算机可读存储介质 | |
| CN109032881A (zh) | 一种日志级别动态调整方法及装置 | |
| CN110020370B (zh) | 在客户端应用中实现动画的方法、装置及动画脚本的框架 | |
| CN112783568B (zh) | 应用程序的初始化方法、装置、设备和存储介质 | |
| WO2016162075A1 (en) | Removing library objects from a static library | |
| CN111966357A (zh) | 一种操作系统应用编译方法、装置及电子设备 | |
| CN115756433A (zh) | 代码平台的迁移方法、装置、电子设备及可读存储介质 | |
| CN106598662B (zh) | 基于android的应用加载方法及装置 | |
| CN108846264A (zh) | 代码加固方法、装置、智能终端和计算机可读存储介质 | |
| CN114115884A (zh) | 一种编程服务的管理方法以及相关装置 | |
| CN114443052B (zh) | 一种il指令运行时的动态特例化方法和装置 | |
| CN111078309A (zh) | 一种获取Unity3D资源引用关系的方法及系统 | |
| CN110489124B (zh) | 源代码执行方法、装置、存储介质及计算机设备 | |
| US9026985B2 (en) | Dynamically configurable model-to-model transformation engine | |
| CN116400927B (zh) | 一种代码块转译方法、装置、电子设备及存储介质 | |
| CN109542447B (zh) | 一种otx程序文件执行方法及装置 | |
| CN114127681B (zh) | 用于实现数据流ai应用的自主加速的方法和装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant |