CN118012421A - 一种小程序转换方法、装置、设备及存储介质 - Google Patents
一种小程序转换方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN118012421A CN118012421A CN202410179983.3A CN202410179983A CN118012421A CN 118012421 A CN118012421 A CN 118012421A CN 202410179983 A CN202410179983 A CN 202410179983A CN 118012421 A CN118012421 A CN 118012421A
- Authority
- CN
- China
- Prior art keywords
- file
- type
- files
- target
- converted
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 150
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 112
- 238000012545 processing Methods 0.000 claims description 25
- 238000005259 measurement Methods 0.000 claims description 11
- 238000001914 filtration Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 241000989913 Gunnera petaloidea Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请提供一种小程序转换方法、装置、设备及存储介质。该方法包括:获取小程序中的目标项目,目标项目为从第一即时通信APP待转换至第二即时通信APP的项目;通过JavaScript读取并遍历目标项目,得到待处理的目标文件和其它文件;确定目标文件的待处理文件类型,文件类型包括acss类型的文件、axml类型的文件、js类型的文件、以及json类型的文件;根据目标文件的待处理文件类型,调用JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,得到转换后的目标文件;根据转换后的目标文件以及其它文件,得到转换后的项目。本申请的方法,提高了使用原生代码在不同的即时通信APP中的转换效率。
Description
技术领域
本申请涉及计算机软件技术领域,尤其涉及一种小程序转换方法、装置、设备及存储介质。
背景技术
根据项目需求开发挂载于即时通信APP的各类小程序第三方应用,因涉及到代码交付,故须使用即时通信APP官方原生语言及api进行开发,而现有技术中主流多端代码转换主要有unicloud,apicloud等等,都是按照该产品的特定要求编写代码,来转换成h5、可加载的小程序等应用程序,并且这几个应用之间不存在相互转换的方法。针对需要使用即时通信APP官方原生语言及api进行开发的项目,本身这类代码在展现的效果上是相同的,如果不考虑进行原生代码的转换,则需要进行代码重写,会花费大量的时间开发已经开发过的功能。
因此,采用现有的方法存在使用原生代码在不同的即时通信APP中转换效率低的问题。
发明内容
本申请提供一种小程序转换方法、装置、设备及存储介质,用以解决使用原生代码在不同的即时通信APP中转换效率低的技术问题。
第一方面,本申请提供一种小程序转换方法,包括:
获取小程序中的目标项目,目标项目为从第一即时通信APP待转换至第二即时通信APP的项目;
通过JavaScript读取并遍历目标项目,得到待处理的目标文件和其它文件;
确定目标文件的待处理文件类型,文件类型包括acss类型的文件、axml类型的文件、js类型的文件、以及json类型的文件;
根据目标文件的待处理文件类型,调用JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,得到转换后的目标文件;
根据转换后的目标文件以及其它文件,得到转换后的项目。
在本申请实施例中,在获取小程序中的目标项目之前,方法还包括:
配置methods文件、util文件、config文件、index.js文件;
将methods文件中的文件转换方法、util文件中的文件转换方法、config文件中的文件转换方法、以及JavaScript中的fs模块和path模块引入index.js文件中。
在本申请实施例中,通过JavaScript读取并遍历目标项目,得到待处理的目标文件和其它文件,包括:
通过JavaScript中的fs模块和path模块读取目标项目;
利用JavaScript中的node.js遍历目标项目,当目标项目中的文件属于jumpNames文件和whiteNames文件,则确定为其它文件,当目标项目中的文件不属于jumpNames文件和whiteNames文件,则确定为待处理的目标文件。
在本申请实施例中,确定目标文件的待处理文件类型,包括:
判断目标文件为文件夹或者文件;
若目标文件为文件夹,则创建同级文件夹,并确定文件夹中文件的文件类型;
若目标文件为文件,则确定文件的文件类型。
在本申请实施例中,当文件类型为acss类型,调用JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,包括:
按同级同名创建wxss后缀的文件;
将acss类型的文件代码中的.acss转换为.wxss;
将rem单位前面的数值乘以第一设定系数再拼接rpx单位、或者将rem单位前面的数值乘以第二设定系数再拼接rem单位,第一设定系数和第二设定系数为不同即时通信APP的计量单位的转换系数,第一设定系数与第二设定系数为不同的数值。
在本申请实施例中,当文件类型为axml类型,调用JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,包括:
按同级同名创建wxml后缀的文件;
将axml类型的文件代码中的.axml替换为.wxml,onTap替换为bindtap,onBlur替换为bindblur,formType替换为form-type,a:替换为wx:,onSubmit替换为bindsubmit,`替换为引号,${}替换为字符串拼接。
在本申请实施例中,当文件类型为js类型,调用JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,包括:
按同级同名创建js后缀的文件;
对于js类型的文件中的app.js文件,向app.js文件中引入planB.js的代码,planB.js为引入index.js文件中的util文件中的文件转换方法;
对于js类型的文件中的非app.js文件,将dd.替换为wx.,dataset后面部分变成小写再拼接dataset前面部分。
在本申请实施例中,当文件类型为json类型,调用JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,包括:
按同级同名创建json后缀的文件;
对于json文件类型中的app.json文件,遍历并替换app.json文件中的key;
对于json文件类型中的非app.json文件,将defaultTitle替换为navigationBarTitleText。
9、根据权利要求1的方法,其特征在于,根据转换后的文件以及其它文件,得到转换后的项目,包括:
对其它文件中的jumpNames文件进行过滤处理,得到初始文件;
对初始文件中的whiteNames文件进行复制处理,得到处理后的其它文件;
结合转换后的目标文件和处理后的其它文件,得到转换后的项目。
第二方面,本申请提供一种小程序转换装置,包括:
获取模块,用于获取小程序中的目标项目,目标项目为从第一即时通信APP待转换至第二即时通信APP的项目;
读取模块,用于通过JavaScript读取并遍历目标项目,得到目标文件和其它文件;
判断模块,用于通过JavaScript读取并遍历目标项目,得到待处理的目标文件和其它文件;
转换模块,用于确定目标文件的待处理文件类型,文件类型包括acss类型的文件、axml类型的文件、js类型的文件、以及json类型的文件;
生成模块,用于根据转换后的目标文件以及其它文件,得到转换后的项目。
第三方面,本申请提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以执行本申请的小程序转换方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现本申请的小程序转换方法。
本申请提供的一种小程序转换方法,通过JavaScript读取并遍历目标项目,确定目标项目中的待处理的目标文件以及其它文件,根据目标文件中的acss类型的文件、axml类型的文件、js类型的文件、以及json类型的文件,从index.js文件中调用不同文件类型对应的转换方法,得到转换后的目标文件,实现了代码的正则动态匹配、替换和修改,针对其它文件中的jumpNames文件进行过滤处理、whiteNames文件进行复制处理,得到处理后的其它文件,最后结合转换后的目标文件和其它文件得到转换后的项目,提升了小程序在不同即时通信APP之间转换的效率,大大节约了人工成本以及时间成本。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的小程序转换方法的场景示意图;
图2为本申请实施例提供的小程序转换方法的流程示意图;
图3为本申请实施例提供的另一种小程序转换方法的流程示意图;
图4为本申请实施例提供的小程序转换装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
现有技术中,根据项目需求开发挂载于即时通信APP的各类小程序第三方应用,因涉及到实现小程序的代码交付,故须使用即时通信APP的原生语言及api进行开发,而即时通信APP的第三方应用使用场景相对固定,当如果想要加载到其他即时通信APP时,该小程序则无法使用,需要转换该小程序的代码至适应其他即时通信APP。现有技术中主流多端代码转换主要有unicloud,apicloud等等,都是按照该产品的特定要求编写代码,来转换成h5、可加载的小程序等应用程序。由于需要按照unicloud,apicloud产品本身的要求编写特定代码,并且这几个应用之间不存在相互转换的方法,因此,对于已经一种即时通信APP开发完的项目,想要将原生代码转换为另一种即时通信APP的项目,尚且没有可实现方案。
为了解决上述问题,本申请实施例提供一种小程序转换方法,该方法通过将加载到不同的即时通信APP的小程序进行归类,采用JavaScript编程语言,调用JavaScript中methods文件、util文件、config文件、index.js文件的处理方法,将目标项目进行归类处理,包括过滤不需要的文件、复制不需要修改的文件、替换需要的文件后缀再重新生成,以及全局的配置文件进行主文件的写入等,实现在不同的即时通信APP之间小程序的目标项目转换。
本申请提供的一种小程序转换方法,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的小程序转换方法的场景示意图。如图1所示,本申请实施例提供的小程序转换方法的执行主体为小程序开发设备,例如电脑等,采用JavaScript编程语言。
图2为本申请实施例提供的小程序转换方法的流程示意图。如图2所示,一种小程序转换方法,包括:
S201、获取小程序中的目标项目,目标项目为从第一即时通信APP待转换至第二即时通信APP的项目。
其中,JavaScript为一种具有函数优先的轻量级,解释型或即时编译型的编程语言。
其中,目标项目指的是在第一即时通信APP中已经开发完成的项目,需要采用原生语言及api(ApplicationProgrammingInterface,应用程序接口)进行转换到第二即时通信APP中的项目。
在获取小程序中的目标项目之前,可以先进行文件配置,这些文件用于实现小程序的运行,配置的文件包括methods文件、util文件、config文件、以及index.js文件。
其中,methods文件指的是用于存储一些可以响应事件或者直接调用的代码块或者函数,在本申请实施例中,methods文件包含不同类型文件的转换方法,例如,acss类型的文件转换方法、axml类型的文件转换方法、js类型的文件转换方法、json类型的文件转换方法。
其中,util文件指的是提供常用函数的集合,用于弥补JavaScript的功能的不足,在本申请实施例中,util文件主要包含两类,一类是根据不同的即时通信APP区别设计的planB.js文件,装有需要重写的方法,包括参数的key的修改,返回值的修改,另一类是用于处理各类型文件所共用的一些公共方法。
其中,config文件指的是应用程序的所有配置信息,用于管理实例、环境、调试信息和其他的一些参数,在本申请实施例中,config文件包含whiteNames文件、jumpNames文件、以及默认的输入项目名称前缀等。
其中,index.js文件,即主逻辑文件,指的是负责定义和导出模块中的各个函数、类和变量,以及处理其它模块所需要调用的功能。
为了实现开发的小程序能够在不同的即时通信软件中转换,可以将methods文件中的文件转换方法、util文件中的文件转换方法、config文件中的文件转换方法、以及JavaScript中的fs模块和path模块引入index.js文件中。
S202、通过JavaScript读取并遍历目标项目,得到待处理的目标文件和其它文件。
其中,目标文件指的是目标项目中需要进行转换的文件,其它文件指的是目标项目中不需要进行转换的文件。
在本申请实施例中,由于不同的即时通信APP之间的原生语言以及api有很多相似之处,通过总结目标项目的相似之处和不同之处,将目标项目中的文件分为需要进行转换的文件和不需要进行转换的文件,对需要进行转换的文件进行分类,分析总结出各类文件的不同之处适用的转换方法,包括对象的替换、方法的重写、以及采用正则动态匹配特定的代码进行替换和修改等,实现了直接通过即时通信APP的原生语言以及api对目标文件进行处理,相对于花费大量时间重写代码去开发已经开发过的功能,大大提高了不同即时通信APP之间的转换效率。
在本申请实施例中还提供了通过JavaScript读取并遍历目标项目的方式,可以包括:
通过JavaScript中的fs模块和path模块读取目标项目;
利用JavaScript中的node.js遍历目标项目,当目标项目中的文件属于jumpNames文件和whiteNames文件,则确定为其它文件,当目标项目中的文件不属于jumpNames文件和whiteNames文件,则确定为待处理的目标文件。
其中,fs模块(filesystem模块)指的是node.js中常用的模块之一,用于对文件***进行操作,该模块提供的函数和方法,可以进行文件的读取、写入、复制、删除等操作,同时也支持目录的创建、遍历和修改等操作。
其中,path模块指的是node.js中常用的模块之一,用于提供一系列的方法和属性,以满足用户对路径的处理需求。
在本申请实施例中,利用node.js根据文件路径遍历递归目标项目,确定目标项目中的目标文件为非jumpNames和whiteNames里的文件,转换方法为调用index.js文件中的转换方法进行转换;确定目标项目中的其它文件为jumpNames和whiteNames里的文件,由于在不同即时通信APP之间此类文件存在相似之处,则直接对jumpNames里的文件进行过滤处理,对whiteNames里的文件进行复制处理即可。
S203、确定目标文件的待处理文件类型,文件类型包括acss类型的文件、axml类型的文件、js类型的文件、以及json类型的文件。
其中,目标文件的待处理文件类型指的是目标项目中需要进行转换的文件的文件类型;文件类型通常可以由文件扩展名和与文件关联的应用程序标识。
需要说明的是,如果目标文件为文件夹,则可以创建同级文件夹并确定文件夹中的文件的文件类型;如果目标文件为文件,则可以直接确定文件的文件类型。
其中,当目标文件为文件夹时,则根据第一即时通信APP中的目标文件的规律去创建第二即时通信APP中的目标文件的同级文件夹,并继续判断文件夹中的文件的文件类型,再根据不同文件类型对应的转换方法进行转换;当目标文件为文件时,则直接判断文件的文件类型,再根据文件类型对应的转换方法进行转换,文件类型主要分为acss类型的文件、axml类型的文件、js类型的文件、以及json类型的文件。
S204、根据目标文件的待处理文件类型,调用JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,得到转换后的目标文件。
其中,考虑到目标项目存在多层级以及文件类型的多重复杂性,首先将不同类型的文件的转换方法和模块引入到index.js主逻辑中,以使后续目标项目中的目标文件根据文件类型使用对应方法的进行转换,其中,转换方法包括methods文件中的文件的转换方法、util文件中文件的转换方法、以及config文件中文件的转换方法。
对于不同类型的文件,可以采用不同的转换方式进行处理,例如:如果文件类型为acss类型,可以调用JavaScript中的index.js文件中的acss类型对应的转换方法进行处理;如果文件类型为json类型,则可以调用JavaScript中的index.js文件中的json类型对应的转换方法进行处理。因此,通过精准的匹配不同文件类型对应的转换方法,对目标文件分类进行处理,进一步提高了在不同即时通信APP之间代码转换的效率。
S205、根据转换后的目标文件以及其它文件,得到转换后的项目。
其中,根据文件类型以及文件类型对应的处理方法,对目标文件进行转换,得到转换后的文件;再将其它文件的复制文件、目标文件的转换文件添加至目标目录,得到转换后的项目,其中,目标目录指的是在第一即时通信APP小程序中需要进行转换的文件中的目录;最后,结合转换后的文件和其它文件得到转换后的项目,实现了目标项目在不同即时通信APP之间的重新编译,生成符合不同即时通信APP的项目结构和文件类型的新项目。
综上,本申请提供的一种小程序转换方法,通过总结归纳出目标文件中的acss类型的文件、axml类型的文件、js类型的文件、json类型的文件的转换方法,对目标项目的目标文件采用不同文件类型对应的转换方法,再对不需要处理的文件进行过滤、不需要修改的文件进行复制、全局的配置文件进行主文件的写入,实现了基于原生语言在不同的即时通信APP之间的小程序转换。
在上述实施例的基础上,本实施例进一步提供了根据目标文件的待处理文件类型,调用JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理的实施方式。
图3为本申请实施例提供的另一种小程序转换方法的流程示意图。如图3所示,该方法包括以下步骤:
S301、当文件类型为acss类型,调用JavaScript中的index.js文件中的acss类型的文件对应的转换方法进行处理,包括:
按同级同名创建wxss后缀的文件;
将acss类型的文件代码中的.acss转换为.wxss;
将rem单位前面的数值乘以第一设定系数再拼接rpx单位、或者将rem单位前面的数值乘以第二设定系数再拼接rem单位,第一设定系数和第二设定系数为不同即时通信APP的计量单位的转换系数,第一设定系数与第二设定系数为不同的数值。
其中,由于在不同的即时通信APP中存在计量单位有差异的情况,当对acss类型的文件进行转换时,则需要分析出不同计量单位的转换系数,例如,在第一即时通信APP中css的计量单位为rem(fontsizeoftherootelement),而在第二即时通信APP中css的计量单位为rpx(responsivepixel)时,则需要进行代码转换,其中,计量单位rem定义为相对于根元素的字体大小的单位,计量单位rpx可以根据屏幕宽度进行自适应。
在采用不同的计量单位时,所对应的转换系数也不同,当第一即时通信APP的单位rem,转换为第二即时通信APP的单位rpx时,需要将rem单位前面的数值乘以第一设定系数100再拼接单位rpx,例如,第一即时通信APP中的代码为2rem,则第二即时通信APP中的代码为200rpx;当保留第一即时通信APP的单位rem,则需要将第一即时通信APP中的rem单位前面数值乘以第二设定系数100/32再拼接rem单位,即3.125,例如,第一即时通信APP中的代码为2rem,则第二即时通信APP中的代码为6.25rem。
S302、当文件类型为axml类型,调用JavaScript中的index.js文件中的axml类型对应的转换方法进行处理,包括:
按同级同名创建wxml后缀的文件;
将axml类型的文件代码中的.axml替换为.wxml,onTap替换为bindtap,onBlur替换为bindblur,formType替换为form-type,a:替换为wx:,onSubmit替换为bindsubmit,`替换为引号,${}替换为字符串拼接。
其中,将`替换为引号,例如,如果第一即时通信APP中为`2131`,则第二即时通信APP中替换为‘2131’,如果第一即时通信APP中为`‘2131’`,为了避免单引号重复,实现准确的识别,则需要在第二即时通信APP中增加返回值,因此第二即时通信APP中替换为‘\‘2131\”;将${}替换为字符串拼接,例如,第一即时通信APP中为`gao${mingzi}'haha'`,则第二即时通信APP中替换为'gao'+mingzi+'\'haha\”。
S303、当文件类型为js类型,调用JavaScript中的index.js文件中的js类型对应的转换方法进行处理,包括:
按同级同名创建js后缀的文件;
对于js类型的文件中的app.js文件,向app.js文件中引入planB.js的代码,planB.js为引入index.js文件中的util文件中的文件转换方法;
对于js类型的文件中的非app.js文件,将dd.替换为wx.,dataset后面部分变成小写再拼接dataset前面部分。
其中,首先,在转换后的目标文件中按照第一即时通信APP中文件的同级同名去创建js后缀的文件。其次,若js类型中的文件为app.js文件,则在该文件里面添加引入planB.js的代码,例如,将第一即时通信APP中getStorageSync替换成$getStorageSync时,需要进行参数和返回值的转换,即重写getStorageSync去掉参数内的key,再包裹date层;若js类型中的文件为非app.js文件,一方面将第一即时通信APP中的dd.在第二即时通信APP中替换为wx.,另一方面将getStorageSync,getStorage,chooseImage,uploadFile,showToast,showLading替换为带有特殊符号的etStorageSync,getStorage,chooseImage,uploadFile,showToast,showLading,例如,将第一即时通信APP中的getStorageSync在第二即时通信APP中替换成$getStorageSync,通过一些特殊符号来保证不会与项目中的已有方法产生冲突。最后,考虑到不同的即时通信APP内对dataset内的属性的大小写要求不严格程度不同,例如,当第二即时通信APP中的dataset必须为小写,而在第一即时通信APP中的dataset大小写不做要求时,则在第二即时通信APP内将dataset后面部分变成小写再拼接dataset前面部分。
S304、当文件类型为json类型,调用JavaScript中的index.js文件中的json类型对应的转换方法进行处理,包括:
按同级同名创建json后缀的文件;
对于json文件类型中的app.json文件,遍历并替换app.json文件中的key;
对于json文件类型中的非app.json文件,将defaultTitle替换为navigationBarTitleText。
其中,在转换后的目标文件中按照第一即时通信APP中文件的同级同名去创建json后缀的文件,若json类型中的文件为非app.json的文件,将defaultTitle改为navigationBarTitleText;若json类型中的文件为app.json文件,对于第一即时通信APP转换到第二即时通信APP时,由于app.json文件内的功能基本相同,只是代码上有差别,因此通过changeKey4Json方法将key进行替换。
其中,changeKey4Json方法指的是遍历json文件类型中的app.json文件的所有key,将key一一进行替换。
在上述实施例的基础上,根据不同文件类型对应的转换方法对目标文件进行处理,得到转换后的目标文件之后,本实施例还包括:
对其它文件中的jumpNames文件进行过滤处理,得到初始文件。
对初始文件中的whiteNames文件进行复制处理,得到处理后的其它文件。
结合转换后的目标文件和处理后的其它文件,得到转换后的项目。
综上,本申请提供的另一种小程序转换方法,通过对整个项目的递归循环,将一些不需要的文件进行过滤,一些不需要修改的文件进行复制,一些需要替换文件后缀进行重新生成,一些全局配置文件进行planB.js文件的写入,一些无法简单替换的方法通过重新编写的方法,对参数、默认值、返回值等细节进行修改,实现了重新编译成新的符合不同即时通信APP的项目,相对于人工修改,节约了时间成本,提高了不同即时通信APP之间项目的转换效率。图4为本申请实施例提供的小程序转换装置结构示意图,如图4所示,该小程序转换400包括:获取模块401、读取模块402、判断模块403、转换模块404、生成模块405。
获取模块401,用于获取小程序中的目标项目,目标项目为从第一即时通信APP待转换至第二即时通信APP的项目。
读取模块402,用于通过JavaScript读取并遍历目标项目,得到目标文件和其它文件。
判断模块403,用于通过JavaScript读取并遍历目标项目,得到待处理的目标文件和其它文件。
转换模块404,用于确定目标文件的待处理文件类型,文件类型包括acss类型的文件、axml类型的文件、js类型的文件、以及json类型的文件。
生成模块405,用于根据转换后的目标文件以及其它文件,得到转换后的项目。
其中,在本申请实施例中,获取模块401还包括:
配置methods文件、util文件、config文件、index.js文件;
将methods文件中的文件转换方法、util文件中的文件转换方法、config文件中的文件转换方法、以及JavaScript中的fs模块和path模块引入index.js文件中。
其中,在本申请实施例中,读取模块402还包括:
通过JavaScript中的fs模块和path模块读取目标项目;
利用JavaScript中的node.js遍历目标项目,当目标项目中的文件属于jumpNames文件和whiteNames文件,则确定为其它文件,当目标项目中的文件不属于jumpNames文件和whiteNames文件,则确定为待处理的目标文件。
其中,在本申请实施例中,判断模块403还包括:
判断目标文件为文件夹或者文件;
若目标文件为文件夹,则创建同级文件夹,并确定文件夹中文件的文件类型;
若目标文件为文件,则确定文件的文件类型。
其中,在本申请实施例中,转换模块404还包括:
按同级同名创建wxss后缀的文件;
将acss类型的文件代码中的.acss转换为.wxss;
将rem单位前面的数值乘以第一设定系数再拼接rpx单位、或者将rem单位前面的数值乘以第二设定系数再拼接rem单位,第一设定系数和第二设定系数为不同即时通信APP的计量单位的转换系数,第一设定系数与第二设定系数为不同的数值。
其中,在本申请实施例中,转换模块404还包括:
按同级同名创建wxml后缀的文件;
将axml类型的文件代码中的.axml替换为.wxml,onTap替换为bindtap,onBlur替换为bindblur,formType替换为form-type,a:替换为wx:,onSubmit替换为bindsubmit,`替换为引号,${}替换为字符串拼接。
其中,在本申请实施例中,转换模块404还包括:
按同级同名创建js后缀的文件;
对于js类型的文件中的app.js文件,向app.js文件中引入planB.js的代码,planB.js为引入index.js文件中的util文件中的文件转换方法;
对于js类型的文件中的非app.js文件,将dd.替换为wx.,dataset后面部分变成小写再拼接dataset前面部分。
其中,在本申请实施例中,转换模块404还包括:
按同级同名创建json后缀的文件;
对于json文件类型中的app.json文件,遍历并替换app.json文件中的key;
对于json文件类型中的非app.json文件,将defaultTitle替换为navigationBarTitleText。
其中,在本申请实施例中,生成模块405还包括:
对其它文件中的jumpNames文件进行过滤处理,得到初始文件;
对初始文件中的whiteNames文件进行复制处理,得到处理后的其它文件;
结合转换后的目标文件和处理后的其它文件,得到转换后的项目。
本申请实施例提供的小程序转换装置,通过获取模块401获取目标项目,读取模块402读取、遍历目标项目,得到目标文件以及其它文件并且做相应处理,对于目标文件根据判断模块403确定文件类型,再由转换模块404采用不同文件类型对应的转换方法进行代码转换,对于其它文件则进行过滤、复制处理,进而通过生成模块405根据转换后的目标文件和其它文件得到转换后的项目,实现了在不同的即时通信APP之间通过原生代码进行项目转换,并且,提高了不同的即时通信APP之间的转换效率,节约了人工和时间成本。
图5为本申请实施例提供的电子设备的结构示意图。如图5所示,该电子设备500包括:
该电子设备500可以包括一个或者一个以上处理核心的处理器501、一个或一个以上计算机可读存储介质的存储器502、通信部件503等部件。其中,处理器501、存储器502以及通信部件503通过总线504连接。
在具体实现过程中,至少一个处理器501执行存储器502存储的计算机执行指令,使得至少一个处理器501执行如上的消息处理方法。
处理器501的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图5所示的实施例中,应理解,处理器可以是中央处理单元(英文:CentralProcessingUnit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignalProcessor,简称:DSP)、专用集成电路(英文:ApplicationSpecificIntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速存储器(RandomAccessMemory,RAM),也可能还包括非易失性存储器(Non-volatileMemory,NVM),例如至少一个磁盘存储器。
总线可以是工业标准体系结构(IndustryStandardArchitecture,ISA)总线、外部设备互连(PeripheralComponent,PCI)总线或扩展工业标准体系结构(ExtendedIndustryStandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (12)
1.一种小程序转换方法,其特征在于,包括:
获取小程序中的目标项目,所述目标项目为从第一即时通信APP待转换至第二即时通信APP的项目;
通过JavaScript读取并遍历所述目标项目,得到待处理的目标文件和其它文件;
确定所述目标文件的待处理文件类型,所述文件类型包括acss类型的文件、axml类型的文件、js类型的文件、以及json类型的文件;
根据所述目标文件的待处理文件类型,调用所述JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,得到转换后的目标文件;
根据所述转换后的目标文件以及所述其它文件,得到转换后的项目。
2.根据权利要求1所述的方法,其特征在于,在所述获取小程序中的目标项目之前,所述方法还包括:
配置methods文件、util文件、config文件、index.js文件;
将所述methods文件中的文件转换方法、所述util文件中的文件转换方法、所述config文件中的文件转换方法、以及所述JavaScript中的fs模块和path模块引入所述index.js文件中。
3.根据权利要求1或2所述的方法,其特征在于,所述通过所述JavaScript读取并遍历所述目标项目,得到待处理的目标文件和其它文件,包括:
通过所述JavaScript中的fs模块和path模块读取所述目标项目;
利用所述JavaScript中的node.js遍历所述目标项目,当所述目标项目中的文件属于jumpNames文件和whiteNames文件,则确定为所述其它文件,当所述目标项目中的文件不属于jumpNames文件和whiteNames文件,则确定为所述待处理的目标文件。
4.根据权利要求3所述的方法,其特征在于,所述确定所述目标文件的待处理文件类型,包括:
判断所述目标文件为文件夹或者文件;
若所述目标文件为文件夹,则创建同级文件夹,并确定所述文件夹中文件的文件类型;
若所述目标文件为文件,则确定文件的文件类型。
5.根据权利要求1所述的方法,其特征在于,当所述文件类型为所述acss类型,调用所述JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,包括:
按同级同名创建wxss后缀的文件;
将所述acss类型的文件代码中的.acss转换为.wxss;
将rem单位前面的数值乘以第一设定系数再拼接rpx单位、或者将rem单位前面的数值乘以第二设定系数再拼接rem单位,所述第一设定系数和第二设定系数为不同即时通信APP的计量单位的转换系数,所述第一设定系数与所述第二设定系数为不同的数值。
6.根据权利要求1所述的方法,其特征在于,当所述文件类型为所述axml类型,调用所述JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,包括:
按同级同名创建wxml后缀的文件;
将所述axml类型的文件代码中的.axml替换为.wxml,onTap替换为bindtap,onBlur替换为bindblur,formType替换为form-type,a:替换为wx:,onSubmit替换为bindsubmit,`替换为引号,${}替换为字符串拼接。
7.根据权利要求1所述的方法,其特征在于,当所述文件类型为js类型,调用所述JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,包括:
按同级同名创建js后缀的文件;
对于所述js类型的文件中的app.js文件,向所述app.js文件中引入planB.js的代码,所述planB.js为引入index.js文件中的util文件中的文件转换方法;
对于所述js类型的文件中的非app.js文件,将dd.替换为wx.,dataset后面部分变成小写再拼接dataset前面部分。
8.根据权利要求1所述的方法,其特征在于,当所述文件类型为所述json类型,调用所述JavaScript中的index.js文件中的不同文件类型对应的转换方法进行处理,包括:
按同级同名创建json后缀的文件;
对于所述json文件类型中的app.json文件,遍历并替换所述app.json文件中的key;
对于所述json文件类型中的非app.json文件,将defaultTitle替换为navigationBarTitleText。
9.根据权利要求1所述的方法,其特征在于,所述根据所述转换后的文件以及所述其它文件,得到转换后的项目,包括:
对所述其它文件中的jumpNames文件进行过滤处理,得到初始文件;
对所述初始文件中的whiteNames文件进行复制处理,得到处理后的所述其它文件;
结合所述转换后的目标文件和所述处理后的其它文件,得到转换后的项目。
10.一种小程序转换装置,其特征在于,包括:
获取模块,用于获取小程序中的目标项目,所述目标项目为从第一即时通信APP待转换至第二即时通信APP的项目;
读取模块,用于通过JavaScript读取并遍历所述目标项目,得到目标文件和其它文件;
判断模块,用于通过JavaScript读取并遍历所述目标项目,得到待处理的目标文件和其它文件;
转换模块,用于确定所述目标文件的待处理文件类型,所述文件类型包括acss类型的文件、axml类型的文件、js类型的文件、以及json类型的文件;
生成模块,用于根据所述转换后的目标文件以及其它文件,得到转换后的项目。
11.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至9任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410179983.3A CN118012421A (zh) | 2024-02-18 | 2024-02-18 | 一种小程序转换方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410179983.3A CN118012421A (zh) | 2024-02-18 | 2024-02-18 | 一种小程序转换方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118012421A true CN118012421A (zh) | 2024-05-10 |
Family
ID=90945976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410179983.3A Pending CN118012421A (zh) | 2024-02-18 | 2024-02-18 | 一种小程序转换方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118012421A (zh) |
-
2024
- 2024-02-18 CN CN202410179983.3A patent/CN118012421A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021037050A1 (zh) | 一种代码变更方法及装置 | |
CN110262783B (zh) | 一种接口生成方法、装置及终端设备 | |
CN111176717B (zh) | 生成安装包的方法、装置及电子设备 | |
CN111124382A (zh) | Java中的属性赋值方法、装置及服务器 | |
CN111736884A (zh) | 组件化方法和*** | |
CN112328241B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
CN110941443B (zh) | 修改sdk中文件名的方法、装置及电子设备 | |
CN117234582A (zh) | 一种项目代码处理方法、装置、电子设备及存储介质 | |
CN112631644A (zh) | Flutter构造函数初始化式的修改方法及装置 | |
CN109840078B (zh) | 一种协作编辑分层元数据的方法及装置 | |
CN118012421A (zh) | 一种小程序转换方法、装置、设备及存储介质 | |
CN111444456B (zh) | 一种样式编辑方法、装置及电子设备 | |
CN114911541A (zh) | 配置信息的处理方法、装置、电子设备及存储介质 | |
CN114449063A (zh) | 一种报文处理方法、装置及设备 | |
CN111552510B (zh) | 文件构建方法及装置、电子设备、计算机可读存储介质 | |
CN114237407A (zh) | 一种字体图标处理方法、装置及计算机可读存储介质 | |
CN113760237A (zh) | 编译地址的更新方法、装置、终端设备及可读存储介质 | |
CN112925523A (zh) | 对象比较方法、装置、设备及计算机可读介质 | |
CN110825450B (zh) | App配置修改方法、装置、电子设备及存储介质 | |
CN113792247B (zh) | 基于代码特征生成功能流程图的方法、装置、设备和介质 | |
CN114579135B (zh) | 一种安装包生成方法及装置 | |
CN116483324A (zh) | 低代码平台多端并行开发方法、装置、设备、介质及产品 | |
CN117271004A (zh) | 文档报告生成方法、装置、设备及存储介质 | |
CN109214760B (zh) | 一种邮件中的图表处理方法和装置 | |
CN110795076B (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 |