CN115390828A - 前端功能的生成方法、装置、设备及可读存储介质 - Google Patents
前端功能的生成方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN115390828A CN115390828A CN202210974732.5A CN202210974732A CN115390828A CN 115390828 A CN115390828 A CN 115390828A CN 202210974732 A CN202210974732 A CN 202210974732A CN 115390828 A CN115390828 A CN 115390828A
- Authority
- CN
- China
- Prior art keywords
- information
- native
- application program
- generating
- bridge object
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及计算机技术领域,公开了一种应用程序的前端功能的生成方法、装置、设备及可读存储介质。其中,该方法包括:读取应用程序对应的桥对象信息;当桥对象信息中存在新增桥对象时,获取新增桥对象的配置信息;基于配置信息生成对应于新增桥对象的调用指令,并验证调用指令是否成功回调应用程序的原生信息;当调用指令回调原生信息验证成功时,基于调用指令生成对应于新增桥对象的前端功能,以通过前端功能调用应用程序的原生信息。通过实施本公开,无需手动添加新增桥对象的原生代码信息,减少了人为引入错误的可能性,降低了开发过程中的人工协作成本,前端功能可随时部署,不再受限于客户端的发版,实现了前端功能的热更新,提高了更新效率。
Description
技术领域
本公开涉及计算机技术领域,具体涉及一种前端功能的生成方法、装置、设备及可读存储介质。
背景技术
目前应用程序(Application,APP)的开发过程包括客户端开发以及前端开发,客户端开发通常采用原生开发方式,而前端开发通常采用非原生开发方式,例如以web页面的方式开发,再嵌入至APP中予以展现。
但是前端开发人员以非原生开发方式(例如H5)实现APP功能时,其需要在用于管理JS Bridge的平台上注册新的JS Bridge,并与客户端开发人员进行沟通,以在客户端中手动添加新增JS Bridge的原生代码,而且新增JS Bridge所对应新增功能的生效依赖客户端的发版,由此导致应用程序前端新增功能的开发协作成本较大、功能更新效率较慢。
发明内容
有鉴于此,本公开实施例提供了一种前端功能的生成方法、装置、设备及可读存储介质,以解决现有技术中前端新增功能的开发成本较大、功能更新效率较慢的问题。
根据第一方面,本公开实施例提供了一种前端功能的生成方法,包括:读取应用程序对应的桥对象信息;当所述桥对象信息中存在新增桥对象时,获取所述新增桥对象的配置信息;基于所述配置信息生成对应于所述新增桥对象的调用指令,并验证所述调用指令是否成功回调所述应用程序的原生信息;当所述调用指令成功回调所述原生信息时,生成对应于所述新增桥对象的前端功能,以通过所述前端功能调用所述应用程序的原生信息。
本公开实施例提供的前端功能的生成方法,通过读取应用程序对应的桥对象信息,当检测到桥对象信息中存在新增桥对象时,则自动读取新增桥对象的配置信息,并根据该新增桥对象的配置信息自动生成调用指令,通过该调用指令调取应用程序的原生功能,由此实现了对新增桥对象的配置信息的自动读取,无需手动添加新增桥对象的原生代码信息,减少了人为引入错误的可能性,降低了开发过程中的人工协作成本。同时,对调用指令是否成功回调应用程序的原生信息进行验证,当验证成功时,在应用程序的前端页面生成对应于该新增桥对象的前端功能,以便通过该前端功能调用应用程序的原生信息,由此前端功能可随时部署,不再受限于客户端的发版,实现了前端功能的热更新,提高了更新效率。
结合第一方面,在第一方面的第一实施方式中,所述配置信息包括参数信息与调用信息,所述调用指令包括参数定义指令与信息调用指令,所述基于所述配置信息生成对应于所述新增桥对象的调用指令,包括:采用动态字节码的方式生成对应于所述参数信息的参数定义指令;采用动态字节码的方式生成对应于所述调用信息的信息调用指令。
本公开实施例提供的前端功能的生成方法,通过动态字节码的方式生成新增桥对象的参数定义指令,实现了新增桥对象的参数定义的自动生成,降低了人为引入参数错误的可能性;通过动态字节码的方式生成信息调用指令,以便实现新增桥对象对原生信息的调用,无需在应用程序的客户端开发相应的原生代码。
结合第一方面第一实施方式,在第一方面的第二实施方式中,所述验证所述调用指令是否成功回调所述应用程序的原生信息,包括:验证所述应用程序是否存在与所述调用信息对应的原生参数,所述原生参数包括包名、类名以及方法名;当所述应用程序存在与所述调用信息对应的原生参数时,判定所述调用指令回调所述应用程序的原生信息验证成功。
结合第一方面第二实施方式,在第一方面的第三实施方式中,所述验证所述调用指令是否成功回调所述应用程序的原生信息,还包括:当所述应用程序不存在与所述调用信息对应的原生参数时,判定所述调用指令回调所述应用程序的原生信息验证失败,并生成调用异常信息。
本公开实施例提供的前端功能的生成方法,通过验证应用程序是否存在相应的原生参数,以判定新增桥对象的调用指令是否能够成功回调原生信息,避免出现调用错误,以保证后续调用指令的有效执行。
结合第一方面第二实施方式,在第一方面的第四实施方式中,在判定所述调用指令回调所述应用程序的原生信息验证成功之后,所述方法还包括:基于所述原生功能的包名、类名以及方法名,通过反射方式对所述应用程序的原生信息进行调用,得到回调成功的所述应用程序的原生信息。
本公开实施例提供的前端功能的生成方法,通过反射方式对应用程序的原生信息进行调用,实现了原生信息的灵活调用,由此前端功能的上线不再依赖应用程序的发版,提高了前端功能的更新效率。
结合第一方面,在第一方面的第五实施方式中,所述应用程序包括本地配置文件,所述本地配置文件用于存储所述桥对象的配置信息;在所述获取所述新增桥对象的配置信息之后,还包括:将所述新增桥对象的配置信息写入所述本地配置文件。
本公开实施例提供的前端功能的生成方法,将新增桥对象的配置信息写入应用程序的本地配置文件中,以实现对新增桥对象的配置信息自动读取和自动写入,由此前端功能的部署不再受限于应用程序的版本,能够灵活支持各个历史版本。
结合第一方面,在第一方面的第六实施方式中,所述生成对应于所述新增桥对象的前端功能,包括:对所述调用指令进行功能注册,生成所述调用指令对应的前端功能,并将所述前端功能展示在所述应用程序的前端页面上。
本公开实施例提供的前端功能的生成方法,在调用指令验证成功后对其进行功能注册,由此实现了新增桥对象所对应的前端功能,便于用户通过前端页面进行功能操作,提升了用户体验。
根据第二方面,本公开实施例提供了一种前端功能的生成装置,包括:读取模块,用于读取应用程序对应的桥对象信息;获取模块,用于当所述桥对象信息中存在新增桥对象时,获取所述新增桥对象的配置信息;第一生成模块,用于基于所述配置信息生成对应于所述新增桥对象的调用指令,并验证所述调用指令是否成功回调所述应用程序的原生信息;第二生成模块,用于当所述调用指令回调所述原生信息验证成功时,生成对应于所述新增桥对象的前端功能,以通过所述前端功能调用所述应用程序的原生信息。
根据第三方面,本公开实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或第一方面任一实施方式所述的前端功能的生成方法。
根据第四方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面或第一方面任一实施方式所述的前端功能的生成方法。
需要说明的是,本公开实施例提供的前端功能的生成装置、电子设备以及计算机可读存储介质的相应有益效果,请参见前端功能的生成方法中相应内容的描述,在此不再赘述。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本公开一些实施例的前端功能的生成方法的流程图;
图2是根据本公开一些实施例的前端功能的生成方法的另一流程图;
图3是根据本公开一些实施例的前端功能的生成方法的另一流程图;
图4是根据本公开一些实施例的前端功能的生成装置的结构框图;
图5是根据本公开一些实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
目前,前端开发人员以非原生开发方式(例如H5)开发APP前端功能时,其需要在桥对象管理平台上注册新的JS Bridge,并对该JS Bridge的功能和传参等进行定义。同时,前端开发人员需要与客户端开发人员进行沟通和协作,以使客户端开发人员在客户端中手动添加新增JS Bridge的原生代码。而手动开发容易引起错误,例如前端和客户端对JSBridge上的定义不一致,这就会发生前端功能无法使用的错误,即难以避免人为引入错误的可能性。
而且,当前端开发人员完成新增JS Bridge所对应前端功能的开发后,尽管前端可以随时部署上线,但是其仍要依赖客户端完成JS Bridge的定义和实现,在客户端进一步发布后,新增JS Bridge所对应前端功能才会生效,对于历史版本的应用程序而言,其仍无法使用新增JS Bridge所对应前端功能。
基于此,本公开技术方案通过自动读取桥对象管理平台上针对于JS Bridge的配置信息,并自动生成针对于JS Bridge的代码,由此无需手动开发,降低了人为引入错误的可能性。同时,根据JS Bridge的配置信息生成调用原生信息的调用指令,由此减少了开发过程中的人工协作成本。在调用指令已成功回调应用程序的原生信息时,即可对该调用指令进行功能注册以在应用程序的前端页面生成对应于新增桥对象的前端功能,继而通过该前端功能即可调用应用程序的原生信息,由此前端功能可随时部署,不再受限于客户端的发版。而且,对于各个版本的应用程序而言,其均可以通过自动读取桥对象管理平台上针对于JS Bridge的配置信息,以实现对前端功能的使用。
根据本公开实施例,提供了一种前端功能的生成方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种前端功能的生成方法,可用于电子设备,如手机、平板电脑、电脑等,图1是根据本公开一些实施例的前端功能的生成方法的流程图,如图1所示,该流程包括如下步骤:
S11,读取应用程序对应的桥对象信息。
应用程序(Application,以下简称APP)为安装在电子设备中的应用软件。桥对象为桥接APP非原生信息与原生信息的中间对象,即JS Bridge。采用非原生开发方式在APP前端实现业务页面时需要调用原生信息,此时页面中的每个功能的实现均需要JS Bridge作为“中间桥梁”以桥接非原生信息与原生信息。
桥对象信息用于表征JS Bridge的相关信息,该桥对象信息可以包括JS Bridge的标识以及配置信息等。其中,标识用于表征JS Bridge的唯一性,不同的JS Bridge具有不同的标识;配置信息用于表征JS Bridge所需调用的原生信息以及自身定义。
APP所对应的各个桥对象需要前端开发人员预先在用于管理JS Bridge的平台上进行JS Bridge的注册,并对JS Bridge的调用功能与传参等信息进行配置。针对于配置完成的JS Bridge,管理JS Bridge的平台可以以索引的形式存储,也可以以键值对的形式存储,此处不作具体限定。
APP与管理JS Bridge的平台通信连接,其每次启动均会从对该管理平台上所定义的JS Bridge信息进行读取,并将其读取到的JS Bridge信息与本地存在的JS Bridge信息进行对比,以确定是否存在新增JS Bridge。
S12,当桥对象信息中存在新增桥对象时,获取新增桥对象的配置信息。
新增桥对象为前端开发人员开发新功能时所定义的新的JSBridge。当检测到桥对象信息中存在新增桥对象时,进一步,APP可以根据该新增JSBridge所对应的标识定位为新增JSBridge的位置,以获取新增JSBridge的配置信息。其中,配置信息包括:JS Bridge的名称、传入参数、返回值、原生能力调用定义等。具体地,对于原生能力调用定义而言,其可以包括原生功能的包名、类名与方法名等,以保证新增JS Bridge能够正确调用原生信息。
在一个具体的实施方式中,APP在启动时读取管理JS Bridge的平台上所存在的JSBridge的标识,并将其与本地已有的JS Bridge的标识进行对比,以确定是否存在新增的JSBridge标识。通过对比JS Bridge的标识确定该平台上存在新增的JS Bridge标识时,可以判定该平台上当前存在新增JS Bridge,此时,APP可以根据该新增的JS Bridge标识,索引至新增JS Bridge在该平台上的位置,继而对该新增JS Bridge的配置信息进行读取。例如,新增了一个获取mac地址的JS Bridge,APP则可以读取该用于获取mac地址的JS Bridge的配置信息。
S13,基于配置信息生成对应于新增桥对象的调用指令,并验证调用指令是否成功回调应用程序的原生信息。
调用指令是用于调取APP原生信息的程序或代码。APP通过预先设定的代码模板,根据其读取到的针对于新增JS Bridge的配置信息自动生成相应的调用指令。其中,预先设定的代码模板为自定义的程序生成模板或代码生成模板,例如基于index.js代码模板、package.json代码模板、基于plop自定义的基础文件模板等,通过预先设定的指令生成模板即可根据JS Bridge配置信息的动态新增生成相应的调用指令。
原生信息用于表征APP客户端的原生代码信息。只有调用指令能成功回调APP的原生信息,才能保证其功能的实现。在生成对应于新增JS Bridge的调用指令时,APP执行该调用指令以对其原生信息进行调用,通过检测是否返回原生信息以验证调用指令是否能够成功回调应用程序的原生信息。当调用指令成功回调原生信息时,执行步骤S14,否则发出异常提醒。
S14,当调用指令成功回调原生信息时,生成对应于新增桥对象的前端功能,以通过前端功能调用应用程序的原生信息。
若执行调用指令能够接收到APP客户端所返回的原生信息,表示调用指令回调原生信息验证成功。此时,APP则可以为该新增JS Bridge注册相应的前端功能,后续通过该前端功能即可调用APP的原生信息,由此无需在APP客户端中添加针对于新增JS Bridge的原生代码即可实现其所对应功能的生效,继而实现了前端功能的热更新。
本实施例提供的前端功能的生成方法,通过读取应用程序对应的桥对象信息,当检测到桥对象信息中存在新增桥对象时,则自动读取新增桥对象的配置信息,并根据该新增桥对象的配置信息自动生成调用指令,通过该调用指令调取应用程序的原生功能,由此实现了对新增桥对象的配置信息的自动读取,无需手动添加新增桥对象的原生代码信息,减少了人为引入错误的可能性,降低了开发过程中的人工协作成本。同时,对调用指令是否成功回调应用程序的原生信息进行验证,当验证成功时,在应用程序的前端页面生成对应于该新增桥对象的前端功能,以便通过该前端功能调用应用程序的原生信息,由此前端功能可随时部署,不再受限于客户端的发版,实现了前端功能的热更新,提高了更新效率。
在本实施例中提供了一种前端功能的生成方法,可用于电子设备,如手机、平板电脑、电脑等,图2是根据本公开一些实施例的前端功能的生成方法的流程图,如图2所示,该流程包括如下步骤:
S21,读取应用程序对应的桥对象信息。
详细说明参见上述实施例对应的相关描述,此处不再赘述。
S22,当桥对象信息中存在新增桥对象时,获取新增桥对象的配置信息。
详细说明参见上述实施例对应的相关描述,此处不再赘述。
S23,基于配置信息生成对应于新增桥对象的调用指令,并验证调用指令是否成功回调应用程序的原生信息。
具体地,配置信息包括参数信息与调用信息,调用指令包括参数定义指令与信息调用指令,相应地,上述步骤S23可以包括:
S231,采用动态字节码的方式生成对应于参数信息的参数定义指令。
参数定义指令表示定义新增JS Bridge的代码。新增JS Bridge的参数信息可以包括名称、传入参数以及返回值等。APP调用JS Bridge的定义方法,通过动态字节码的方式,根据新增JS Bridge的参数信息生成相应的参数定义指令。例如,根据新增JS Bridge的名称,通过动态字节码的方式动态生成与其相对应的定义代码。
S232,采用动态字节码的方式生成对应于调用信息的信息调用指令。
信息调用指令表示新增JS Bridge调用APP原生信息的代码。新增JS Bridge的调用信息包括其所需调用的原生信息的包名、类名与方法名等。APP调用JS Bridge的定义方法,通过动态字节码的方式,根据新增JS Bridge所需调用的原生能力的包名、类名与方法名自动生成相应的代码。
S233,验证应用程序是否存在与调用信息对应的原生参数。
其中,原生参数包括:包名、类名以及方法名。
对于不同的原生信息而言,其原生参数是不同的,即包名、类名以及方法名是不同的,因此通过原生参数即可确定出当前新增JS Bridge所需调用的原生信息。APP在生成调用指令之后,通过该调用指令尝试调用APP的原生信息。若APP中存在与该原生信息相应的原生参数,则新增JS Bridge即可成功回调该原生信息。
APP通过验证APP的原生信息中是否存在与调用信息所对应的原生参数,即APP的原生信息中是否存在新增JS Bridge所需调用的包名、类名以及方法名,以此来确定新增JSBridge是否能够成功回调APP的原生信息。当应用程序存在与调用信息对应的原生参数时,执行步骤S234,否则执行步骤S235。
S234,判定调用指令回调应用程序的原生信息验证成功。
当应用程序存在与调用信息对应的原生参数时,表示调用指令回调APP的原生信息验证成功,即通过该调用指令能够成功回调APP的原生信息。
S235,判定调用指令回调应用程序的原生信息验证失败,并生成调用异常信息。
当应用程序不存在与调用信息对应的原生参数时,表示调用指令回调APP的原生信息验证失败,即通过该调用指令无法回调APP的原生信息。此时,APP可以生成调用异常信息以提醒前端开发人员进行异常处理。
作为一个可选的实施方式,在步骤S234之后,上述方法还可以包括:基于包名、类名以及方法名,通过反射方式对应用程序的原生信息进行调用,得到回调成功的应用程序的原生信息。
在回调APP的原生信息时,根据信息调用指令中所包含的包名、类名以及方法名,通过反射方式确定与其相对应的原生信息,APP客户端则可以返回相应的原生信息,由此即可进一步确定调用指令能够成功回调APP的原生信息。
通过反射方式对应用程序的原生信息进行调用,实现了原生信息的灵活调用,由此前端功能的上线不再依赖于应用程序的发版,提高了前端功能的更新效率。
S24,当调用指令回调原生信息验证成功时,生成对应于新增桥对象的前端功能,以通过前端功能调用应用程序的原生信息。
详细说明参见上述实施例对应的相关描述,此处不再赘述。
本实施例提供的前端功能的生成方法,通过动态字节码的方式生成新增桥对象的参数定义指令,实现了新增桥对象的参数定义的自动生成,降低了人为引入参数错误的可能性;通过动态字节码的方式生成信息调用指令,以便实现新增桥对象对原生信息的调用,无需在应用程序的客户端开发相应的原生代码。通过验证应用程序是否存在相应的原生参数,以判定新增桥对象的调用指令是否能够成功回调原生信息,避免出现调用错误,保证后续调用指令的有效执行。
在本实施例中提供了一种前端功能的生成方法,可用于电子设备,如手机、平板电脑、电脑等,图3是根据本公开一些实施例的前端功能的生成方法的流程图,如图3所示,该流程包括如下步骤:
S31,读取应用程序对应的桥对象信息。
详细说明参见上述实施例对应的相关描述,此处不再赘述。
S32,当桥对象信息中存在新增桥对象时,获取新增桥对象的配置信息。
详细说明参见上述实施例对应的相关描述,此处不再赘述。
S33,将新增桥对象的配置信息写入本地配置文件。
应用程序中包括有本地配置文件,该本地配置文件用于存储桥对象的配置信息。具体地,本地配置文件为技术人员预先设置在应用程序工程下的文件。APP可以将其读取到的针对于新增JS Bridge的配置文件写入本地配置文件,后续从本地配置文件中提取新增JS Bridge的配置信息,以实现对新增JS Bridge的自动开发。例如,新增JS Bridge所要实现的功能为获取mac地址,则APP可以获取该新增JS Bridge的名称,如"name":"app.getMacInfo";传入参数,如"param":"Void";返回值,如"return":"Int";原生能力调用定义,如包名"native_package":"com.xxx.common.utility"、类名"native_class":"NetworkUtils"、方法名"native_method":"getMacAddress",并将JS Bridge的名称、传入参数、返回值、原生能力调用定义等配置信息写入本地配置文件。
S34,基于配置信息生成对应于新增桥对象的调用指令,并验证调用指令是否成功回调应用程序的原生信息。
详细说明参见上述实施例对应的相关描述,此处不再赘述。
S35,当调用指令回调原生信息验证成功时,生成对应于新增桥对象的前端功能,以通过前端功能调用应用程序的原生信息。
具体地,上述步骤S35可以包括:
S351,对新增桥对象进行注册,得到新增桥对象对应的注册信息。
注册信息用于声明JS Bridge所注册的功能,例如获取mac地址。具体地,APP可以通过调用JS Bridge Manager的注册方法,在APP所对应的JS库中为该新增JS Bridge注册相应的功能,得到针对于该新增桥对象的注册信息。
S352,在应用程序的前端页面上部署对应于注册信息的前端功能。
根据新增JS Bridge所声明的功能将其部署在APP的前端页面上,以生成前端功能,后续用户通过该前端功能即可获取相应的信息,便于用户通过前端页面进行功能操作,由此实现了前端功能的热更新,前端功能的发布无需等待APP客户端的发布,提升了用户体验。
本实施例提供的前端功能的生成方法,将新增桥对象的配置信息写入应用程序的本地配置文件中,以实现对新增桥对象的配置信息自动读取和自动写入,由此前端功能的部署不再受限于应用程序的版本,能够灵活支持各个历史版本。在调用指令验证成功后对其进行功能注册,由此实现了新增桥对象所对应的前端功能,便于用户通过前端页面进行功能操作,提升了用户体验。
在本实施例中还提供了一种前端功能的生成装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种前端功能的生成装置,如图4所示,包括:
读取模块41,用于读取应用程序对应的桥对象信息。
获取模块42,用于当桥对象信息中存在新增桥对象时,获取新增桥对象的配置信息。
第一生成模块43,用于基于配置信息生成对应于新增桥对象的调用指令,并验证调用指令是否成功回调应用程序的原生信息。
第二生成模块44,用于当调用指令成功回调原生信息时,生成对应于新增桥对象的前端功能,以通过前端功能调用应用程序的原生信息。
作为一个可选的实施方式,配置信息包括参数信息与调用信息,调用指令包括参数定义指令与信息调用指令,相应地,上述第一生成模块43可以包括:
第一生成子模块,用于采用动态字节码的方式生成对应于参数信息的参数定义指令。
第二生成子模块,用于采用动态字节码的方式生成对应于调用信息的信息调用指令。
验证子模块,用于验证应用程序是否存在与调用信息对应的原生参数。其中,原生参数包括包名、类名以及方法名。
第一判定子模块,用于当应用程序存在与调用信息对应的原生参数时,判定调用指令回调应用程序的原生信息验证成功。
第二判定子模块,用于当应用程序不存在与调用信息对应的原生参数时,判定调用指令回调应用程序的原生信息验证失败,并生成调用异常信息。
作为一个可选的实施方式,上述第一生成模块43还可以包括:
调用子模块,用于基于原生功能的包名、类名以及方法名,通过反射方式对应用程序的原生信息进行调用,得到回调成功的应用程序的原生信息。
作为一个可选的实施方式,上述前端功能的生成装置还可以包括:
写模块,用于将新增桥对象的配置信息写入本地配置文件。
作为一个可选的实施方式,上述第二生成模块44可以包括:
注册子模块,用于对调用指令进行功能注册,生成调用指令对应的前端功能,并将前端功能展示在应用程序的前端页面上。
本实施例中的前端功能的生成装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例提供的前端功能的生成装置,实现了对新增桥对象的配置信息的自动读取,无需手动添加新增桥对象的原生代码信息,减少了人为引入错误的可能性,降低了开发过程中的人工协作成本。同时,当调用指令成功回调应用程序的原生信息验证成功时,在应用程序的前端页面生成对应于该新增桥对象的前端功能,以便通过该前端功能调用应用程序的原生信息,由此前端功能可随时部署,不再受限于客户端的发版,实现了前端功能的热更新,提高了更新效率。
本公开实施例还提供一种电子设备,具有图4所示的前端功能的生成装置。
请参阅图5,图5是本公开可选实施例提供的一种电子设备的结构示意图,如图5所示,该电子设备可以包括:至少一个处理器501,例如中央处理器(Central ProcessingUnit,CPU),至少一个通信接口503,存储器504,至少一个通信总线502。其中,通信总线502用于实现这些组件之间的连接通信。其中,通信接口503可以包括显示屏(Display)、键盘(Keyboard),可选通信接口503还可以包括标准的有线接口、无线接口。存储器504可以是高速易挥发性随机存取存储器(Random Access Memory,RAM),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器504可选的还可以是至少一个位于远离前述处理器501的存储装置。其中处理器501可以结合图4所描述的装置,存储器504中存储应用程序,且处理器501调用存储器504中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线502可以是外设部件互连标准(peripheral componentinterconnect,PCI)总线或扩展工业标准结构(extended industry standardarchitecture,EISA)总线等。通信总线502可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器504可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器504还可以包括上述种类的存储器的组合。
其中,处理器501可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
其中,处理器501还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
可选地,存储器504还用于存储程序指令。处理器501可以调用程序指令,实现如本申请图1至图3实施例中所示的前端功能的生成方法。
本公开实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的前端功能的生成方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本公开的实施例,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种前端功能的生成方法,其特征在于,包括:
读取应用程序对应的桥对象信息;
当所述桥对象信息中存在新增桥对象时,获取所述新增桥对象的配置信息;
基于所述配置信息生成对应于所述新增桥对象的调用指令,并验证所述调用指令是否成功回调所述应用程序的原生信息;
当所述调用指令成功回调所述原生信息时,生成对应于所述新增桥对象的前端功能,以通过所述前端功能调用所述应用程序的原生信息。
2.根据权利要求1所述的方法,其特征在于,所述配置信息包括参数信息与调用信息,所述调用指令包括参数定义指令与信息调用指令,所述基于所述配置信息生成对应于所述新增桥对象的调用指令,包括:
采用动态字节码的方式生成对应于所述参数信息的参数定义指令;
采用动态字节码的方式生成对应于所述调用信息的信息调用指令。
3.根据权利要求2所述的方法,其特征在于,所述验证所述调用指令是否成功回调所述应用程序的原生信息,包括:
验证所述应用程序是否存在与所述调用信息对应的原生参数,所述原生参数包括包名、类名以及方法名;
当所述应用程序存在与所述调用信息对应的原生参数时,判定所述调用指令回调所述应用程序的原生信息验证成功。
4.根据权利要求3所述的方法,其特征在于,所述验证所述调用指令是否成功回调所述应用程序的原生信息,还包括:
当所述应用程序不存在与所述调用信息对应的原生参数时,判定所述调用指令回调所述应用程序的原生信息验证失败,并生成调用异常信息。
5.根据权利要求3所述的方法,其特征在于,在判定所述调用指令回调所述应用程序的原生信息验证成功之后,还包括:
基于所述包名、所述类名以及所述方法名,通过反射方式对所述应用程序的原生信息进行调用,得到回调成功的所述应用程序的原生信息。
6.根据权利要求1所述的方法,其特征在于,所述应用程序包括本地配置文件,所述本地配置文件用于存储所述桥对象的配置信息;在所述获取所述新增桥对象的配置信息之后,还包括:
将所述新增桥对象的配置信息写入所述本地配置文件。
7.根据权利要求1所述的方法,其特征在于,所述生成对应于所述新增桥对象的前端功能,包括:
对所述新增桥对象进行注册,得到所述新增桥对象对应的注册信息;
在所述应用程序的前端页面上部署对应于所述注册信息的前端功能。
8.一种前端功能的生成装置,其特征在于,包括:
读取模块,用于读取应用程序对应的桥对象信息;
获取模块,用于当所述桥对象信息中存在新增桥对象时,获取所述新增桥对象的配置信息;
第一生成模块,用于基于所述配置信息生成对应于所述新增桥对象的调用指令,并验证所述调用指令是否成功回调所述应用程序的原生信息;
第二生成模块,用于当所述调用指令回调所述原生信息验证成功时,生成对应于所述新增桥对象的前端功能,以通过所述前端功能调用所述应用程序的原生信息。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7任一项所述的前端功能的生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-7任一项所述的前端功能的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210974732.5A CN115390828A (zh) | 2022-08-15 | 2022-08-15 | 前端功能的生成方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210974732.5A CN115390828A (zh) | 2022-08-15 | 2022-08-15 | 前端功能的生成方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115390828A true CN115390828A (zh) | 2022-11-25 |
Family
ID=84119433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210974732.5A Pending CN115390828A (zh) | 2022-08-15 | 2022-08-15 | 前端功能的生成方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115390828A (zh) |
-
2022
- 2022-08-15 CN CN202210974732.5A patent/CN115390828A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3975503A1 (en) | Esim card replacement method and related device | |
CN107844306B (zh) | 应用程序的修复方法、装置、存储介质及终端 | |
CN110955409B (zh) | 在云平台上创建资源的方法和装置 | |
CN113687858B (zh) | 配置文件的检查方法、装置、电子设备及存储介质 | |
CN109032612B (zh) | 混合型应用的接口调用方法、装置及计算机可读存储介质 | |
CN112434278A (zh) | 一种裸机认证方法、装置、设备及介质 | |
CN112699027A (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
CN112632495A (zh) | 微信公众号的管理方法、装置和电子设备 | |
CN111338644A (zh) | 任务脚本部署方法及系统 | |
CN109039784B (zh) | OpenStack的节点部署方法和装置 | |
CN115390828A (zh) | 前端功能的生成方法、装置、设备及可读存储介质 | |
US20240045733A1 (en) | Method and apparatus for deploying deep learning system | |
CN115878327A (zh) | 总线预留方法、装置、服务器、电子设备和存储介质 | |
CN113867778B (zh) | 一种镜像文件的生成方法、装置、电子设备及存储介质 | |
CN114356346A (zh) | 应用程序部署方法、装置、存储介质以及电子设备 | |
CN113392026A (zh) | 接口自动化测试方法、系统、电子设备及存储介质 | |
CN109271188A (zh) | 一种cpld升级方法及相关装置 | |
CN112328288A (zh) | 一种服务器组件的更新方法、系统、设备及存储介质 | |
CN112416750A (zh) | 应用程序边界测试方法及系统 | |
CN112817623B (zh) | 应用程序的发版方法、装置、移动终端及可读存储介质 | |
CN114924940A (zh) | 性能测试方法、装置、存储介质以及电子设备 | |
CN110442471B (zh) | 一种检测网络系统中内存信息的方法、设备和介质 | |
CN115454780A (zh) | 内存健康度重置方法、装置及设备 | |
CN116483365A (zh) | 前端工程构建方法、装置、设备及存储介质 | |
CN114356332A (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 |