CN111610978B - 一种小程序转换方法、装置、设备及存储介质 - Google Patents
一种小程序转换方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111610978B CN111610978B CN202010425687.9A CN202010425687A CN111610978B CN 111610978 B CN111610978 B CN 111610978B CN 202010425687 A CN202010425687 A CN 202010425687A CN 111610978 B CN111610978 B CN 111610978B
- Authority
- CN
- China
- Prior art keywords
- file
- applet
- target
- platform
- node tree
- 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
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 141
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000011161 development Methods 0.000 claims abstract description 54
- 230000008569 process Effects 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 230000006978 adaptation Effects 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000000750 progressive effect Effects 0.000 description 3
- 238000010408 sweeping Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种小程序转换方法、装置、设备及存储介质,应用于计算机软件技术领域。具体实现方式为:获取待开发小程序的原始文件;根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件;根据待发布平台的平台需求,将所述标准态文件转换为目标文件;根据所述目标文件,生成目标小程序。本申请实施例无需针对不同的待发布平台进行小程序代码的开发,减少了小程序开发对待发布平台的依赖,从而提高了小程序在不同平台的适配性,进而提高了多平台适配的小程序代码的开发效率。
Description
技术领域
本申请实施例涉及计算机软件技术领域,尤其涉及一种小程序转换方法、装置、设备及存储介质。
背景技术
“小程序”指的是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
现有技术中的小程序开发框架,大多是微信、支付宝等第三方平台为自己的app小程序所研发的开发框架和开发工具,开发者如果想在多个平台发布自己的小程序,就必须在各个平台都开发一套代码并进行部署,这使得小程序必须依赖平台为用户所使用,且开发和学习成本较高。
因此,如何减少所开发程序对平台的依赖成为亟待解决的技术问题。
发明内容
本申请实施例提供一种小程序转换方法、装置、设备及存储介质,以减少小程序对开发平台的依赖,提高小程序代码在平台间的通用性,进而提高小程序开发效率。
第一方面,本申请实施例提供了一种小程序转换方法,包括:
获取待开发小程序的原始文件;
根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件;
根据待发布平台的平台需求,将所述标准态文件转换为目标文件;
根据所述目标文件,生成目标小程序。
第二方面,本申请实施例还提供了一种小程序转换装置,包括:
原始文件获取模块,用于获取待开发小程序的原始文件;
标准态文件得到模块,用于根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件;
目标文件得到模块,用于根据待发布平台的平台需求,将所述标准态文件转换为目标文件;
目标小程序生成模块,用于根据所述目标文件,生成目标小程序。
第三方面,本申请实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面实施例所提供的一种小程序转换方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面实施例所提供的一种小程序转换方法。
本申请实施例通过获取待开发小程序的原始文件;根据预设标准转换规则,对原始文件中的各代码段进行转换操作,得到标准态文件;根据待发布平台的平台需求,将标准态文件转换为目标文件;根据目标文件,生成目标小程序。采用上述技术方案无需针对不同的待发布平台进行小程序代码的开发,减少了小程序开发对待发布平台的依赖,从而提高了小程序在不同平台的适配性,进而提高了多平台适配的小程序代码的开发效率。
附图说明
图1是本申请实施例一中的一种小程序转换方法的流程图;
图2是本申请实施例二中的一种小程序转换方法的流程图;
图3是本申请实施例三中的一种小程序转换方法的流程图;
图4是本申请实施例四中的一种小程序转换方法的流程图;
图5是本申请实施例五中的一种小程序转换装置的结构图;
图6是本发明实施例六中的一种电子设备的结构图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
实施例一
图1是本申请实施例一中的一种小程序转换方法的流程图,本申请实施例适用于对多平台使用的小程序进行开发的情况。该方法由小程序转换装置执行,该装置采用软件和/或硬件实现,并具体配置于电子设备中。
如图1所示的一种小程序转换方法,包括:
S110、获取待开发小程序的原始文件。
其中,小程序可以理解为一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户可以通过在小程序所发布平台中,通过扫一扫或搜一下即可打开应用。其中,原始文件为小程序在开发平台中所编写的代码文件。
在本申请实施例的一种可选实施方式中,原始文件可以预先存储在电子设备本地,或与电子设备所关联的其他存储设备或云端中,相应的在需要时从电子设备本地或与电子设备所关联的其他存储设备或云端中进行待开发小程序的原始文件的获取。
在本申请实施例的另一可选实施方式中,还可以由开发人员在开发平台中,依照开发平台的平台需求采用设定语法进行小程序代码编写,生成小程序项目的原始文件,并通过开发平台的文件存储路径中,进行待开发小程序的原始文件的获取。
可选的,开发平台可以是现有的第三方平台,如微信,用户可以采用现有第三方平台中的小程序开发框架和开发工具,进行小程序代码编写。或者可选的,开发平台还可以是开发人员自定义的基于设定语法的小程序框架的自定义平台,例如基于Vue框架(用于构建用户界面的渐进式JavaScript框架)的自定义开发平台。其中,对自定义平台所使用的计算机语言不做任何限定,例如可以是HTML、Shell、make语言、ant语言、maven语言、rpm语言、dpkg语言、awk语言、正则表达式、dc计算机语言等中的至少一种。
其中,原始文件中包括用于存储不同类型内容的代码段。示例性地,原始文件可以包括如下代码文件中的至少一种:存储有层叠样式内容的代码文件、存储有脚本逻辑内容的代码文件、存储有页面配置内容的代码文件和存储有超级文本标记内容的代码文件。
S120、根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件。
其中,预设标准转换规则与开发平台的开发框架相对应,可以预先存储在电子设备本地或与电子设备所关联的存储设备中,相应的,在需要进行小程序生成时,从电子设备本地或与电子设备所关联的存储设备中,进行预设标准转换规则的获取,进而根据所获取的预设标准转换规则,对原始文件中的各代码段进行转换操作,得到标准态文件。
S130、根据待发布平台的平台需求,将所述标准态文件转换为目标文件。
可以理解的是,由于不同发布平台的平台开发者不同,导致不同发布平台对待发布的小程序的代码格式要求也不尽相同。为了使得小程序代码能够满足待发布平台的平台需求,还需要将标准态文件,根据待发布平台的平台需求,转化为目标文件。
在本申请实施例的一种可选实施方式中,还可以在电子设备本地或与电子设备关联的其他存储设备中,预先存储有不同发布平台的平台需求。相应的,根据待发布平台的平台需求,将标准态文件转换为目标文件,可以是:根据待发布平台的平台需求,确定平台转换规则;根据平台转换规则,对标准态文件进行转换操作,得到目标文件。
可以理解的是,为了进一步减少进行小程序转换时的数据运算量,还可以预先存储开发平台与各发布平台之间进行代码转换时的平台转换规则;相应的,在根据待发布平台的平台需求,将标准态文件转换为目标文件时,获取与待发布平台对应的平台转换规则,进而根据所获取的平台转换规则,对标准态文件进行转换操作,得到目标文件。其中,各平台转换规则可以存储在电子设备本地或与电子设备所关联的其他存储设备;相应的,在需要时从电子设备本地或与电子设备关联的其他存储设备中,查找获取与待发布平台对应的平台转换规则。
S140、根据所述目标文件,生成目标小程序。
示例性地,对目标文件进行编译,生成编译文件,从而将汇编语言转化为计算机可识别的二进制语言;打包编译文件,生成目标小程序,从而将目标小程序在待发布平台进行发布,以供用户使用。
本申请实施例通过获取待开发小程序的原始文件;根据预设标准转换规则,对原始文件中的各代码段进行转换操作,得到标准态文件;根据待发布平台的平台需求,将标准态文件转换为目标文件;根据目标文件,生成目标小程序。采用上述技术方案无需针对不同的待发布平台进行小程序代码的开发,减少了小程序开发对待发布平台的依赖,从而提高了小程序在不同平台的适配性,进而提高了多平台适配的小程序代码的开发效率。
实施例二
图2是本申请实施例二中的一种小程序转换方法的流程图,本申请实施例在上述各实施例的技术方案的基础上,进行了优化改进。
进一步地,将操作“根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件”,细化为“根据所述原始文件中所包含各代码段的代码类型,确定各代码段的标准转换规则;根据所述标准转换规则,对所述原始文件中的代码段进行转换操作,得到标准态文件”,以完善标准态文件的得到机制。
如图2所示的一种小程序转换方法,包括:
S210、获取待开发小程序的原始文件。
S220、根据所述原始文件中所包含各代码段的代码类型,确定各代码段的标准转换规则。
其中,代码类型可以包括样式类型、脚本逻辑类型、页面配置类型以及文本标记类型中的至少一种。
可以理解的是,由于不同类型的代码文件所存储的内容不同,开发平台针对不同存储内容所需的标准态文件的格式要求也不同,因此,需要针对不同代码类型设置相应的标准转换规则,并在需要生成标准态文件之前,根据代码类型进行标准转换规则的选取。
S230、根据所述标准转换规则,对所述原始文件中的代码段进行转换操作,得到标准态文件。
由于不同类型的代码文件所存储的内容不同,开发平台对不同存储内容所需的标准态文件的格式要求也不同,因此,在根据各代码类型对应的标准转换规则,对原始文件中的代码段进行转换操作时,所执行的转换操作也可能存在差异。
可选的,转换操作包括节点编辑操作和/或属性编辑操作。
示例性地,样式类型、脚本逻辑类型和文本标记类型的代码段中的至少一种,所对应的转换操作为节点编辑操作;示例性地,页面配置类型的代码段所对应的转换操作为属性编辑操作。
在本申请实施例中的一种可选实施方式中,若所述转换操作包括节点编辑,则根据所述标准转换规则,对所述原始文件中的代码段进行转换操作,得到标准态文件,可以是:根据所述原始文件中的代码段,生成至少一个节点树;根据预设语法规则,对所述节点树中的至少一个节点进行编辑,以更新所述节点树;根据更新后的节点树,生成标准态文件。
其中,树中的一个节点表征代码中的一个结构,并以树状的形式呈现汇编语言的语法结构。相应的,通过对节点树中的节点进行添加、删除和修改操作中的至少一种,即可实现对节点树的更新。示例性地,节点树可以是AST(Abstract Syntax Tree,抽象语法树)。
可选的,针对文本标记类型的代码段,生成节点树;根据标签转换规则,将节点树中的待修改标签修改为目标标签,从而实现对节点树的更新,并将更新后的节点树,根据开发平台中文本标记文件生成规则,生成文本标记类型的标准态文件。
可选的,针对脚本逻辑类型的代码段,生成节点树;确定原始文件中脚本逻辑代码段中的节点元素与开发平台的脚本逻辑文件的节点元素之间的差异;根据元素转换规则,根据节点之间的并列或递进等逻辑关系,在节点树中对差异节点元素进行节点的添加、删除或修改,从而实现对节点树的更新,并将更新后的节点树,根据开发平台中脚本逻辑文件生成规则,生成脚本逻辑类型的标准态文件。其中,节点元素可以是函数名或接口名等。
可选的,针对样式类型的代码段,生成节点树;根据描述信息转换规则,将节点树中的节点的待修改描述信息修改为目标描述信息,从而实现对节点树的更新;将更新后的节点树,根据开发平台中样式文件生成规则,生成样式标准态文件。其中,描述信息可以是样式信息中的单位。
在本申请实施例的另一可选实施方式中,若所述转换操作包括属性编辑,则根据所述标准转换规则,对所述原始文件中的代码段进行转换操作,得到标准态文件,可以是:对所述原始文件中代码的至少一个目标对象的对象属性进行编辑;根据编辑后的目标对象,生成标准态文件。
可选的,针对页面配置类型的代码段,根据原始文件中的页面配置代码段与开发平台中的对象的属性差异,确定目标对象;根据对象转换规则,将目标对象的待修改属性修改为目标属性,得到页面配置类型的标准态文件。
S240、根据待发布平台的平台需求,将所述标准态文件转换为目标文件。
S250、根据所述目标文件,生成目标小程序。
本申请实施例通过将根据预设标准转换规则,对原始文件中的各代码段进行转换操作,得到标准态文件,细化为根据原始文件中所包含各代码段的代码类型,确定各代码段的标准转换规则;根据标准转换规则,对原始文件中的代码段进行转换操作,得到标准态文件,从而完善了标准态文件的生成机制,为目标小程序的生成奠定了基础。
实施例三
图3是本申请实施例三中的一种小程序转换方法的流程图,本申请实施例在上述各实施例的技术方案的基础上,进行了优化改进。
进一步地,将操作“根据待发布平台的平台需求,将所述标准态文件转换为目标文件”,细化为“根据待发布平台的平台需求,确定平台转换规则;根据所述平台转换规则,对所述标准态文件进行转换操作,得到目标文件”,以完善目标文件的得到机制。
如图3所示的一种小程序转换方法,包括:
S310、获取待开发小程序的原始文件。
S320、根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件。
S330、根据待发布平台的平台需求,确定平台转换规则。
由于标准态文件的文件类型和文件内容仅能够适配开发平台的使用需求,为了能够将小程序在其他待发布平台中进行使用,还需要将小程序的代码文件实现平台间转换。
示例性地,预先存储开发平台与各发布平台之间进行代码转换时的平台转换规则;相应的,在根据待发布平台的平台需求,将标准态文件转换为目标文件时,获取与待发布平台对应的平台转换规则,进而根据所获取的平台转换规则,对标准态文件进行转换操作,得到目标文件。其中,各平台转换规则可以存储在电子设备本地或与电子设备所关联的其他存储设备;相应的,在需要时从电子设备本地或与电子设备关联的其他存储设备中,查找获取与待发布平台对应的平台转换规则。
S340、根据所述平台转换规则,对所述标准态文件进行转换操作,得到目标文件。
由于不同平台间针对不同类型的代码文件的格式要求不同,所存储的内容也不同(如逻辑判断或循环语法等的差异等),因此需要针对不同代码类型对标准态文件进行转换操作,得到目标文件。可选的,转换操作包括节点编辑操作和/或属性编辑操作。
示例性地,样式类型、脚本逻辑类型和文本标记类型的代码段中的至少一种,所对应的转换操作为节点编辑操作;示例性地,页面配置类型的代码段所对应的转换操作为属性编辑操作。
在本申请实施例中的一种可选实施方式中,若所述转换操作包括节点编辑,则根据平台转换规则,对标准态文件进行转换操作,得到目标文件,可以是:根据标准态文件中的代码段,生成至少一个节点树;根据平台转化规则,对节点树中的至少一个节点进行编辑,以更新节点树;根据更新后的节点树,生成目标文件。
其中,树中的一个节点表征代码中的一个结构,并以树状的形式呈现汇编语言的语法结构。相应的,通过对节点树中的节点进行添加、删除和修改操作中的至少一种,即可实现对节点树的更新。示例性地,节点树可以是AST树。
可选的,针对文本标记类型的标准态文件,生成节点树;根据平台标签转换规则,将节点树中的待修改标签修改为目标标签,从而实现对节点树的更新,并将更新后的节点树,根据待发布平台中的文本标记文件生成规则,生成文本标记类型的目标文件。
例如,开发平台中的文本标记类型的标准态文件为.swan文件,而待发布平台中的文本标记类型的目标文件为.wxml文件,两者均属于平台的标签语言,用于结合基础组件、事件***进行页面构建,但两个文件的文件类型不同,文件中内容的存在形式也存在一定差异,因此需要将.swan文件借助节点树,转化为.wxml文件。
可选的,针对脚本逻辑类型的标准态文件,生成节点树;确定开发平台的脚本逻辑文件与开发待发布平台的脚本逻辑文件的节点元素之间的差异;根据平台元素转换规则,根据节点之间的并列或递进等逻辑关系,在节点树中对差异节点元素进行节点的添加、删除或修改,从而实现对节点树的更新,并将更新后的节点树,根据待发布平台中脚本逻辑文件生成规则,生成脚本逻辑类型的目标文件。其中,节点元素可以是函数名或接口名等。
例如,开发平台中的脚本逻辑文件和待发布平台中的脚本逻辑文件,监听并处理小程序的生命周期和声明全局变量的函数不同,因此需要借助节点树,实现脚本逻辑的跨平台转换。
可选的,针对样式类型的标准态文件,生成节点树;根据平台描述信息转换规则,将节点树中的节点的待修改描述信息修改为目标描述信息,从而实现对节点树的更新;将更新后的节点树,根据待发布平台中样式文件生成规则,生成样式类型的目标文件。其中,描述信息可以是样式信息中的单位。
例如,开发平台中的样式类型的标准态文件为.css文件,而待发布平台中的样式类型的目标文件为.wxss文件,两者均属于平台的样式文件,用于描述组件样式,从而实现平台所显示组件的显示方式。但是,两个文件的文件类型不同,针对同一属性所采用的单位机制也可能存在一定差异,因此需要将.css文件借助节点树,转换为.wxss文件。
在本申请实施例的另一可选实施方式中,若所述转换操作包括属性编辑,则根据平台转换规则,对标准态文件进行转换操作,得到目标文件,可以是:对标准态文件中代码的至少一个目标对象的对象属性进行编辑;根据编辑后的目标对象,生成目标文件。
可选的,针对页面配置类型的标准态文件,根据标准态文件中的页面配置代码段与待发布平台中的对象的属性差异,确定目标对象;根据对象转换规则,将目标对象的待修改属性修改为目标属性,得到页面配置类型的目标文件。
例如,开发平台中的页面配置文件和待发布平台中页面配置文件,针对同一页面配置的对象所使用的参数不同,因此需要通过修改对象属性的方式,实现页面配置的跨平台转换。
S350、根据所述目标文件,生成目标小程序。
本申请实施例通过将根据待发布平台的平台需求,将标准态文件转换为目标文件,细化为根据待发布平台的平台需求,确定平台转换规则;根据平台转换规则,对标准态文件进行转换操作,得到目标文件,从而完善了目标文件的生成机制,为目标小程序的生成奠定了基础。
实施例四
图4是本申请实施例四中的一种小程序转换方法的流程图,本申请实施例在上述各实施例的技术方案的基础上,进行了优化改进。
进一步地,将目标小程序细化为包括小程序视图层和小程序服务层;相应的,在运行小程序过程中,追加如下操作“在所述目标小程序运行过程中,若检测到服务层更新指令,则通过所述小程序视图层向平台发起服务层更新事件,并经由平台服务层发送至所述小程序服务层,以对所述小程序服务层进行数据更新;和/或,在所述目标小程序运行过程中,若检测到视图层更新指令,则通过所述小程序服务层向平台发起视图层更新事件,并经由平台视图层发送至小程序视图层,以对所述小程序视图层进行数据更新”,以实现对小程序视图层和服务层的更新。
如图4所示的一种小程序转换方法,包括:
S410、获取待开发小程序的原始文件。
S420、根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件。
S430、根据待发布平台的平台需求,将所述标准态文件转换为目标文件。
S440、根据所述目标文件,生成目标小程序。
S450、在所述目标小程序运行过程中,若检测到服务层更新指令,则通过所述小程序视图层向平台发起服务层更新事件,并经由平台服务层发送至所述小程序服务层,以对所述小程序服务层进行数据更新。
S460、在所述目标小程序运行过程中,若检测到视图层更新指令,则通过所述小程序服务层向平台发起视图层更新事件,并经由平台视图层发送至小程序视图层,以对所述小程序视图层进行数据更新。
在目标小程序的运行过程中,目标小程序将被编译为小程序视图层和小程序服务层两部分。其中,小程序视图层主要用于渲染页面结构;小程序服务层主要用力逻辑处理、数据请求以及接口调用等。
当两层数据独立管理时,将会出现不能直接更新对象数据的情况,因此需要构建视图层和服务层之间的数据更新机制。
当目标小程序接收到用户针对某一组件的触发操作时,将会生成服务层更新指令,进而触发视图层对服务层数据的更新操作。示例性地,小程序视图层桥接(bridge)模块发起服务层更新事件和该事件的关联数据,目标小程序的发布平台的平台视图层的操作(handler)模块接收服务层更新事件和该事件的关联数据,并通知发布平台的平台服务层;发布平台的平台服务层将服务层更新事件和该事件的关联数据发送给目标小程序的小程序服务层;目标小程序的小程序服务层的桥接(bridge)模块接收到服务层更新事件和该事件的关联数据之后,根据关联数据对小程序服务层的数据进行更新,从而保证目标小程序的小程序视图层和小程序服务层的数据一致。
当目标小程序的小程序服务层由于执行某一逻辑操作或进行接口调用后,需要小程序视图层配合进行页面调整时,将会生成视图层更新指令,进而触发小程序服务层对小程序视图层数据的更新操作。示例性地,小程序服务层的桥接(bridge)模块发起视图层更新事件和该事件的关联数据,目标小程序的发布平台的平台服务层的操作(handler)模块接收视图层更新事件和该事件的关联数据,并通知发布平台的平台视图层;发布平台的平台视图层将视图层更新事件和该事件的关联数据发送给目标小程序的小程序视图层;目标小程序的小程序视图层的桥接(bridge)模块接收到视图层更新事件和该事件的关联数据之后,根据关联数据小程序视图层的数据进行更新,从而保证目标小程序的小程序视图层和小程序服务层的数据一致。
需要说明的是S450和S460可以同时执行,也可以先后执行,还可以根据需要择一执行,本申请实施例对此不做任何限定。
本申请实施例通过将目标小程序的小程序视图层和小程序服务层分开设置,能够提高目标小程序的运行时效率,避免了响应延时情况的发生,从而提高了用户的使用体验。同时,通过小程序视图层和小程序服务层的更新机制,实现目标小程序的小程序视图层和小程序服务层的数据同步更新,保证了目标小程序内部的数据一致性,减少提高了运行结果准确度。
实施例五
图5是本申请实施例五中的一种小程序转换装置的结构图,本申请实施例适用于对多平台使用的小程序进行开发的情况。该装置采用软件和/或硬件实现,并具体配置于电子设备中。
如图5所示的一种小程序转换装置,包括:原始文件获取模块510、标准态文件得到模块520、目标文件得到模块530和目标小程序生成模块540。其中,
原始文件获取模块510,用于获取待开发小程序的原始文件;
标准态文件得到模块520,用于根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件;
目标文件得到模块530,用于根据待发布平台的平台需求,将所述标准态文件转换为目标文件;
目标小程序生成模块540,用于根据所述目标文件,生成目标小程序。
本申请实施例通过原始文件获取模块获取待开发小程序的原始文件;通过标准态文件得到模块根据预设标准转换规则,对原始文件中的各代码段进行转换操作,得到标准态文件;通过目标文件得到模块根据待发布平台的平台需求,将标准态文件转换为目标文件;通过目标小程序生成模块根据目标文件,生成目标小程序。采用上述技术方案无需针对不同的待发布平台进行小程序代码的开发,减少了小程序开发对待发布平台的依赖,从而提高了小程序在不同平台的适配性,进而提高了多平台适配的小程序代码的开发效率。
进一步地,所述标准态文件得到模块520,包括:
标准转换规则确定单元,用于根据所述原始文件中所包含各代码段的代码类型,确定各代码段的标准转换规则;
标准态文件得到单元,用于根据所述标准转换规则,对所述原始文件中的代码段进行转换操作,得到标准态文件。
进一步地,所述转换操作包括节点编辑和/或属性编辑。
进一步地,若所述转换操作包括节点编辑,则所述标准态文件得到单元,包括:
节点树生成子单元,用于根据所述原始文件中的代码段,生成至少一个节点树;
节点树更新子单元,用于根据预设语法规则,对所述节点树中的至少一个节点进行编辑,以更新所述节点树;
标准态文件生成子单元,用于根据更新后的节点树,生成标准态文件。
进一步地,若所述转换操作包括属性编辑,则所述标准态文件得到单元,包括:
对象属性编辑子单元,用于对所述原始文件中代码的至少一个目标对象的对象属性进行编辑;
标准态文件生成子单元,用于根据编辑后的目标对象,生成标准态文件。
进一步地,所述目标文件得到模块530,包括:
平台转换规则确定单元,用于根据待发布平台的平台需求,确定平台转换规则;
目标文件得到单元,用于根据所述平台转换规则,对所述标准态文件进行转换操作,得到目标文件。
进一步地,其特征在于,所述目标小程序生成模块540,包括:
编译单元,用于对所述目标文件进行编译,生成编译文件;
打包单元,用于打包所述编译文件,生成所述目标小程序。
进一步地,所述目标小程序包括小程序视图层和小程序服务层。
进一步地,所述装置还包括:
服务层更新模块,用于在所述目标小程序运行过程中,若检测到服务层更新指令,则通过所述小程序视图层向平台发起服务层更新事件,并经由平台服务层发送至所述小程序服务层,以对所述小程序服务层进行数据更新;和/或,
视图层更新模块,用于在所述目标小程序运行过程中,若检测到视图层更新指令,则通过所述小程序服务层向平台发起视图层更新事件,并经由平台视图层发送至小程序视图层,以对所述小程序视图层进行数据更新。
上述小程序转换装置可执行本申请任意实施例所提供的小程序转换方法,具备执行小程序转换方法相应的功能模块和有益效果。
实施例六
图6是本发明实施例六中的一种电子设备的结构图。如图6所示的电子设备,包括:输入装置610、输出装置620、处理器630以及存储装置640。
其中,输入装置610,用于获取待开发小程序的原始文件;
输出装置620,用于展示目标小程序;
一个或多个处理器630;
存储装置640,用于存储一个或多个程序。
图6中以一个处理器630为例,该电子设备中的输入装置610可以通过总线或其他方式与输出装置620、处理器630以及存储装置640相连,且处理器630和存储装置640也通过总线或其他方式连接,图6中以通过总线连接为例。
在本实施例中,电子设备中的处理器630可以控制输入装置610获取待开发小程序的原始文件;还可以根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件;还可以根据待发布平台的平台需求,将所述标准态文件转换为目标文件;还可以根据所述目标文件,生成目标小程序;还可以控制输出装置620展示所生成的目标小程序。
该电子设备中的存储装置640作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例中小程序转换方法对应的程序指令/模块(例如,附图5所示的原始文件获取模块510、标准态文件得到模块520、目标文件得到模块530和目标小程序生成模块540)。处理器630通过运行存储在存储装置640中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例中的小程序转换方法。
存储装置640可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储数据等(如上述实施例中的原始文件、预设标准转换规则、标准态文件、目标文件和目标小程序等)。此外,存储装置640可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置640可进一步包括相对于处理器630远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例七
本发明实施例七还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被小程序转换装置执行时,实现本发明实施提供的小程序转换方法,该方法包括:获取待开发小程序的原始文件;根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件;根据待发布平台的平台需求,将所述标准态文件转换为目标文件;根据所述目标文件,生成目标小程序。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (7)
1.一种小程序转换方法,其特征在于,包括:
获取待开发小程序的原始文件;
根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件;
根据待发布平台的平台需求,将所述标准态文件转换为目标文件;
根据所述目标文件,生成目标小程序;
其中,所述根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件,包括下述至少一种:
针对文本标记类型的代码段,生成节点树;根据标签转换规则,将该节点树中的待修改标签修改为目标标签,以更新该节点树;将更新后的节点树,根据开发平台中文本标记文件生成规则,生成文本标记类型的标准态文件;
针对脚本逻辑类型的代码段,生成节点树;确定所述原始文件中脚本逻辑代码段中的节点元素与开发平台的脚本逻辑文件的节点元素之间的差异;根据元素转换规则,根据节点之间的逻辑关系,在该节点树中对差异节点元素进行节点的增加、删除或修改,以更新该节点树;将更新后的节点树,根据开发平台中脚本逻辑文件生成规则,生成脚本逻辑类型的标准态文件;
针对样式类型的代码段,生成节点树;根据描述信息转换规则,将该节点树中的节点的待修改描述信息修改为目标描述信息,以更新该节点树;将更新后的节点树,根据开发平台中样式文件生成规则,生成样式类型的标准态文件;
针对页面配置类型的代码段,根据所述原始文件中的页面配置代码段与开发平台中的对象的属性差异,确定目标对象;根据对象转换规则,将目标对象的待修改属性修改为目标属性,得到页面配置类型的标准态文件;
其中,所述根据所述目标文件,生成目标小程序,包括:
对所述目标文件进行编译,生成编译文件;打包所述编译文件,生成所述目标小程序。
2.根据权利要求1所述的方法,其特征在于,根据待发布平台的平台需求,将所述标准态文件转换为目标文件,包括:
根据待发布平台的平台需求,确定平台转换规则;
根据所述平台转换规则,对所述标准态文件进行转换操作,得到目标文件。
3.根据权利要求1或2所述的方法,其特征在于,所述目标小程序包括小程序视图层和小程序服务层。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述目标小程序运行过程中,若检测到服务层更新指令,则通过所述小程序视图层向平台发起服务层更新事件,并经由平台服务层发送至所述小程序服务层,以对所述小程序服务层进行数据更新;和/或,
在所述目标小程序运行过程中,若检测到视图层更新指令,则通过所述小程序服务层向平台发起视图层更新事件,并经由平台视图层发送至小程序视图层,以对所述小程序视图层进行数据更新。
5.一种小程序转换装置,其特征在于,包括:
原始文件获取模块,用于获取待开发小程序的原始文件;
标准态文件得到模块,用于根据预设标准转换规则,对所述原始文件中的各代码段进行转换操作,得到标准态文件;
目标文件得到模块,用于根据待发布平台的平台需求,将所述标准态文件转换为目标文件;
目标小程序生成模块,用于根据所述目标文件,生成目标小程序;
其中,所述标准态文件得到模块,具体用于执行以下操作的至少一种:
针对文本标记类型的代码段,生成节点树;根据标签转换规则,将该节点树中的待修改标签修改为目标标签,以更新该节点树;将更新后的节点树,根据开发平台中文本标记文件生成规则,生成文本标记类型的标准态文件;
针对脚本逻辑类型的代码段,生成节点树;确定所述原始文件中脚本逻辑代码段中的节点元素与开发平台的脚本逻辑文件的节点元素之间的差异;根据元素转换规则,根据节点之间的逻辑关系,在该节点树中对差异节点元素进行节点的增加、删除或修改,以更新该节点树;将更新后的节点树,根据开发平台中脚本逻辑文件生成规则,生成脚本逻辑类型的标准态文件;
针对样式类型的代码段,生成节点树;根据描述信息转换规则,将该节点树中的节点的待修改描述信息修改为目标描述信息,以更新该节点树;将更新后的节点树,根据开发平台中样式文件生成规则,生成样式类型的标准态文件;
针对页面配置类型的代码段,根据所述原始文件中的页面配置代码段与开发平台中的对象的属性差异,确定目标对象;根据对象转换规则,将目标对象的待修改属性修改为目标属性,得到页面配置类型的标准态文件;
其中,所述目标小程序生成模块,具体用于:
对所述目标文件进行编译,生成编译文件;打包所述编译文件,生成所述目标小程序。
6.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4任一项所述的一种小程序转换方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4任一项所述的一种小程序转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010425687.9A CN111610978B (zh) | 2020-05-19 | 2020-05-19 | 一种小程序转换方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010425687.9A CN111610978B (zh) | 2020-05-19 | 2020-05-19 | 一种小程序转换方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111610978A CN111610978A (zh) | 2020-09-01 |
CN111610978B true CN111610978B (zh) | 2023-06-20 |
Family
ID=72196036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010425687.9A Active CN111610978B (zh) | 2020-05-19 | 2020-05-19 | 一种小程序转换方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111610978B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930382B (zh) * | 2020-09-21 | 2021-02-09 | 浙江口碑网络技术有限公司 | 应用页面的接入方法、装置及设备 |
CN112416426A (zh) * | 2020-11-30 | 2021-02-26 | 北京有竹居网络技术有限公司 | 应用程序的功能发布方法、装置、设备及存储介质 |
CN112527415A (zh) * | 2020-12-23 | 2021-03-19 | 深圳尚米网络技术有限公司 | 小程序跨平台迁移方法、装置、设备和介质 |
CN113312055B (zh) * | 2021-05-28 | 2023-02-24 | 支付宝(中国)网络技术有限公司 | 一种小程序投放方法、装置以及设备 |
CN113805890A (zh) * | 2021-09-10 | 2021-12-17 | ***股份有限公司 | 小程序跨应用迁移方法、设备、终端、***及存储介质 |
CN114416218B (zh) * | 2021-12-31 | 2022-11-01 | 北京五八信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN114185551B (zh) * | 2022-02-17 | 2022-06-21 | 浙江口碑网络技术有限公司 | 小程序的编译方法、小程序的运行方法及装置、存储介质 |
CN114661483A (zh) * | 2022-03-23 | 2022-06-24 | 支付宝(杭州)信息技术有限公司 | 子程序同步处理方法及装置 |
CN114756319A (zh) * | 2022-04-25 | 2022-07-15 | 中国建设银行股份有限公司 | 小程序页面显示方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968325A (zh) * | 2019-10-28 | 2020-04-07 | 苏宁云计算有限公司 | 一种小程序转换方法及装置 |
-
2020
- 2020-05-19 CN CN202010425687.9A patent/CN111610978B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968325A (zh) * | 2019-10-28 | 2020-04-07 | 苏宁云计算有限公司 | 一种小程序转换方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111610978A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111610978B (zh) | 一种小程序转换方法、装置、设备及存储介质 | |
CN111209005B (zh) | 程序文件的编译方法、装置和计算机可读存储介质 | |
EP3011444B1 (en) | Method and apparatus for code virtualization and remote process call generation | |
EP2990942B1 (en) | Service extraction and application composition | |
JP2017062767A5 (zh) | ||
CN112329945A (zh) | 一种模型部署及推理的方法和装置 | |
Bellucci et al. | Engineering JavaScript state persistence of web applications migrating across multiple devices | |
KR20080053293A (ko) | 클라이언트 스크립트 웹 페이지에 대한 서버측 초기 콘텐츠렌더링 | |
US20180198839A1 (en) | Automatic Discovery of Management Nodes and Generation of CLI Using HA Module | |
CN104317591A (zh) | 一种基于OSGi的web界面框架***及web业务处理方法 | |
CN110389755B (zh) | 代码处理方法及装置、电子设备和计算机可读存储介质 | |
US20190370028A1 (en) | Managing discovery and selection of service interface specifications | |
CN111124379A (zh) | 页面生成方法、装置、电子设备及存储介质 | |
CN111475161A (zh) | 一种访问组件的方法、装置及设备 | |
US20240146650A1 (en) | Creating endpoints | |
CN115268879A (zh) | 代码处理方法、装置、电子设备及存储介质 | |
CN110058849A (zh) | 流程图的生成方法、装置、计算机设备以及存储介质 | |
CN113934425A (zh) | 页面处理方法、装置、计算机设备及存储介质 | |
CN113360156A (zh) | 一种ios编译方法及相关设备 | |
CN110782040A (zh) | 一种pytorch任务训练方法、装置、设备及介质 | |
CN115291933A (zh) | 小程序数据包构建方法、装置、设备及存储介质 | |
CN113708971A (zh) | 一种Openstack云平台的部署方法及相关装置 | |
CN111400060A (zh) | 设备联动方法、装置、服务器和介质 | |
US11017032B1 (en) | Document recovery utilizing serialized data | |
CN116820555B (zh) | 应用程序的分包方法、装置、电子设备及可读存储介质 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220913 Address after: 12 / F, 15 / F, 99 Yincheng Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 200120 Applicant after: Jianxin Financial Science and Technology Co.,Ltd. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |