本发明涉及程序开发领域,具体涉及一种基于web的代码转化方法及系统。
背景技术:
目前,在程序开发过程中,往往会遇到针对同一个开发事件分别开发多种平台类型的代码的问题,目前主流的平台类型包括android平台、ios平台和pc平台,其中android平台和ios平台按照架构的类型分别包括原生架构(使用相应平台的原生api开发的应用)和混合架构(是基于webview开发的应用,应用的界面是通过html5完成,终端通过webview加载本地或者远程web界面,界面和相应平台的通信是通过将方法绑定到webview上完成的),分别针对不同的平台类型进行程序开发需要储备相应平台的开发人员,并且需要配备专业的设备,造成开发成本高、管理难度大的问题。
技术实现要素:
本发明的目的在于针对目前程序开发过程中面临的上述技术问题,提供一种基于web的代码转化方法及系统。
本发明解决上述技术问题的技术方案如下:一种基于web的代码转化方法,包括以下步骤:
将web界面上的每个事件分别配置为一个标签;
当接收到转化请求时,根据每个所述标签和所述转化请求中携带的平台类型的参数,将所有标签转化成所述平台类型的代码并封装。
本发明的有益效果是:只需要配置一次标签,再启动不同的转化流程即可得到多个平台类型的代码,大大简化了事件代码开发,从而节省了开发时间,降低了开发成本和管理难度。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述根据每个所述标签和所述转化请求中携带的平台类型的参数,将所有标签转化成所述平台类型的代码并封装,具体包括:
按照标签的类型、方法名和参数个数设置不同的分支,每个分支按照不同的平台类型设置相应的翻译脚本;
获取每个所述标签中参数的个数,将每个所述标签中包含的标签的类型、方法名和参数的个数与分支匹配,并按照转化请求中携带的平台类型的参数匹配相应的翻译脚本;
根据每个所述标签中包含的标签的类型、方法名和参数将所述翻译脚本转化为所述平台类型的代码;
根据转化请求中携带的平台类型的参数获取所述平台类型的封装函数;
按照所述封装函数封装所述平台类型的代码。
进一步,所述标签为velocity标签。
进一步,所述平台类型包括android原生架构平台、ios原生架构平台、android混合架构平台、ios混合架构平台和pc平台。
为实现上述发明目的,本发明还提供一种基于web的代码转化系统,包括:
配置模块,用于将web界面上的每个事件分别配置为一个标签;
转化模块,用于当接收到转化请求时,根据每个所述标签和所述转化请求中携带的平台类型的参数,将所有标签转化成所述平台类型的代码并封装。
本发明的有益效果是:只需要配置一次标签,再启动不同的转化流程即可得到多个平台类型的代码,大大简化了事件代码开发,从而节省了开发时间,降低了开发成本和管理难度。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述转化模块具体包括:
设置单元,用于按照标签的类型、方法名和参数个数设置不同的分支,每个分支按照不同的平台类型设置相应的翻译脚本;
匹配单元,用于获取每个所述标签中参数的个数,将每个所述标签中包含的标签的类型、方法名和参数的个数与分支匹配,并按照转化请求中携带的平台类型的参数匹配相应的翻译脚本;
转化单元,用于根据每个所述标签中包含的标签的类型、方法名和参数将所述翻译脚本转化为所述平台类型的代码;
获取单元,用于根据转化请求中携带的平台类型的参数获取所述平台类型的封装函数;
封装单元,用于按照所述封装函数封装所述平台类型的代码。
进一步,所述标签为velocity标签。
进一步,所述平台类型包括android原生架构平台、ios原生架构平台、android混合架构平台、ios混合架构平台和pc平台。
附图说明
图1为本发明实施例提供的一种基于web平台的代码转化方法的流程图;
图2为本发明实施例提供的步骤102的流程图;
图3为本发明实施例提供的一种基于web平台的代码转化系统的结构示意图;
图4为本发明实施例提供的转化模块的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
图1为本发明实施例提供的一种基于web平台的代码转化方法的流程图,如图1所示,该方法包括以下步骤:
步骤101,将web界面上的每个事件分别配置为一个标签。
步骤102,当接收到转化请求时,根据每个所述标签和所述转化请求中携带的平台类型的参数,将所有标签转化成所述平台类型的代码并封装。
具体的,例如,在web界面上配置如下标签:#init("string",$t_gnumber)$session.setitem("g_gnumber",$t_gnumber),另外,在开发者界面上设置转化的平台类型按钮,开发者点击想要转化的平台类型按钮,即可发送转化请求,转化请求中携带平台类型的参数,之后即可将配置的标签转化为想要转化的平台类型的代码,从而大大简化了事件代码开发,从而节省了开发时间,降低了开发成本和管理难度。
可选地,作为本发明的一个实施例中,如图2所示,步骤102具体包括:
步骤201,按照标签的类型、方法名和参数个数设置不同的分支,每个分支按照不同的平台类型设置相应的翻译脚本;
具体的,相关代码如下:
这里,<tooltype="session"method="setitem"paramcnt="2">,为一个分支,该分支中:标签的类型为session,方法名为setitem,参数个数为2,下面的五个平台类型android、ios、pc、androidmix和iosmix分别设置相应的翻译脚本。
步骤202,获取每个所述标签中参数的个数,将每个所述标签中包含的标签的类型、方法名和参数的个数与分支匹配,并按照转化请求中携带的平台类型的参数匹配相应的翻译脚本;
步骤203,根据每个所述标签中包含的标签的类型、方法名和参数将所述翻译脚本转化为所述平台类型的代码;
具体的,标签#init("string",$t_gnumber)$session.setitem("g_gnumber",
$t_gnumber),其中标签的类型为session,方法名为setitem,参数为g_gnumber和t_gnumber,个数为两个,与上述的分支匹配,假设转化为安卓原生类型android,则根据分支中android的翻译脚本匹配,用标签中的参数替换翻译脚本中的占位符“?”,得到翻译脚本:“newsessionstorage(mcontext).setitem("g_gnumber",t_gnumber);”。
步骤204,根据转化请求中携带的平台类型的参数获取所述平台类型的封装函数;
步骤205,按照所述封装函数封装所述平台类型的代码。
具体的,在上述实施例中,开发者预先按照标签的类型、方法名和参数设置分支,并在每个分支下按照每个平台类型的语法设置相应的翻译脚本,在转化时,开发者仅需要配置一次标签,再根据需要转化的平台类型发送转化请求,即可将配置的标签转化为想要转化的平台类型的代码,从而大大简化了事件代码开发,从而节省了开发时间,降低了开发成本和管理难度。
可选地,在该实施例中,所述标签为velocity标签。
具体的,velocity是一个基于java的模板引擎(templateengine)。它允许任何人仅仅使用简单的模板语言(templatelanguage)来引用由java代码定义的对象。
进一步,所述平台类型包括android原生架构平台、ios原生架构平台、android混合架构平台、ios混合架构平台和pc平台。
相应的,本发明还提供一种基于web的代码转化系统,图3为本发明实施例提供的一种基于web的代码转化系统的结构示意图,如图3所示,该系统包括:
配置模块301,用于将web界面上的每个事件分别配置为一个标签;
转化模块302,用于当接收到转化请求时,根据每个所述标签和所述转化请求中携带的平台类型的参数,将所有标签转化成所述平台类型的代码并封装。
具体的,例如,在web界面上配置如下标签:#init("string",$t_gnumber)$session.setitem("g_gnumber",$t_gnumber),另外,在开发者界面上设置转化的平台类型按钮,开发者点击想要转化的平台类型按钮,即可发送转化请求,转化请求中携带平台类型的参数,之后即可将配置的标签转化为想要转化的平台类型的代码,从而大大简化了事件代码开发,从而节省了开发时间,降低了开发成本和管理难度。
可选地,如图4所示,转化模块302具体包括:
设置单元401,用于按照标签的类型、方法名和参数个数设置不同的分支,每个分支按照不同的平台类型设置相应的翻译脚本;
匹配单元402,用于获取每个所述标签中参数的个数,将每个所述标签中包含的标签的类型、方法名和参数的个数与分支匹配,并按照转化请求中携带的平台类型的参数匹配相应的翻译脚本;
转化单元403,用于根据每个所述标签中包含的标签的类型、方法名和参数将所述翻译脚本转化为所述平台类型的代码;
获取单元404,用于根据转化请求中携带的平台类型的参数获取所述平台类型的封装函数;
封装单元405,用于按照所述封装函数封装所述平台类型的代码。
具体的,在上述实施例中,开发者预先按照标签的类型、方法名和参数设置分支,并在每个分支下按照每个平台类型的语法设置相应的翻译脚本,在转化时,开发者仅需要配置一次标签,再根据需要转化的平台类型发送转化请求,即可将配置的标签转化为想要转化的平台类型的代码,从而大大简化了事件代码开发,从而节省了开发时间,降低了开发成本和管理难度。
可选地,在该实施例中,所述标签为velocity标签。
可选地,在该实施例中,所述平台类型包括android原生架构平台、ios原生架构平台、android混合架构平台、ios混合架构平台和pc平台。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。