CN111736922A - 插件调用方法、装置、电子设备及存储介质 - Google Patents
插件调用方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111736922A CN111736922A CN202010713774.4A CN202010713774A CN111736922A CN 111736922 A CN111736922 A CN 111736922A CN 202010713774 A CN202010713774 A CN 202010713774A CN 111736922 A CN111736922 A CN 111736922A
- Authority
- CN
- China
- Prior art keywords
- plug
- target
- core
- component
- calling
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种插件调用方法,所述插件调用方法包括:获取目标插件;将所述目标插件导入至第一预设目录中;加载预设的插件核心,其中,所述插件核心的功能通过依赖注入的方式动态拓展;根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息;通过所述插件核心,对所述目标插件进行配置,获得配置信息;根据所述插件注册信息以及所述配置信息,调用所述目标插件。本发明还提供一种插件调用装置、电子设备及存储介质。本发明能提高插件的可用性。此外,本申请还涉及区块链技术,所述目标插件可存储于区块链中。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种插件调用方法、装置、电子设备及存储介质。
背景技术
目前,可以将一些经常使用到的功能封装成插件,比如轮播功能插件、评论功能插件等。但在实践中发现,一个完整的功能插件可能封装了多个细小的功能,导致了若不需要某个插件中的一些细小功能,比如评论功能插件中的点赞功能,往往需要对插件进行修改或者重新封装一个插件,降低了插件的可用性。
因此,如何提高插件的可用性是一个亟需解决的技术问题。
发明内容
鉴于以上内容,有必要提供一种插件调用方法、装置、电子设备及存储介质,能够提高插件的可用性。
本发明的第一方面提供一种插件调用方法,所述插件调用方法包括:
获取目标插件;
将所述目标插件导入至第一预设目录中;
加载预设的插件核心,其中,所述插件核心的功能通过依赖注入的方式动态拓展;
根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息;
通过所述插件核心,对所述目标插件进行配置,获得配置信息;
根据所述插件注册信息以及所述配置信息,调用所述目标插件。
在一种可能的实现方式中,所述根据所述插件注册信息以及所述配置信息,调用所述目标插件包括:
根据所述插件注册信息,加载所述目标插件;
确定所述目标插件中与所述配置信息对应的;
确定所述目标插件中与所述配置信息对应的目标组件;
调用所述目标组件。
在一种可能的实现方式中,所述通过所述插件核心,对所述目标插件进行配置,获得配置信息包括:
通过所述插件核心,调用所述目标插件的预设接口,确定组成所述目标插件的多个组件;
输出所述多个组件对应的选项框;
接收针对所述选项框的选择指令;
将所述选择指令所指示的组件确定为配置信息。
在一种可能的实现方式中,所述根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息包括:
根据所述第一预设目录,确定所述目标插件的存储路径;
获取所述目标插件的插件标识;
并将所述存储路径以及插件标识记录在所述插件核心中的注册信息表中,以构成插件注册信息。
在一种可能的实现方式中,所述插件调用方法还包括:
获取目标组件;
将所述目标组件导入至第二预设目录中;
若所述插件核心未被加载,加载所述插件核心;
根据所述第二预设目录,在所述插件核心中对所述目标组件进行注册,获得组件注册信息;
根据所述组件注册信息调用所述目标组件。
在一种可能的实现方式中,所述插件调用方法还包括:
当接收到插件/组件查询指令时,根据所述插件/组件查询指令所携带的关键字,从插件/组件库中进行查询,获得查询结果,其中,所述查询结果包括与所述关键字匹配的插件/组件以及预览图像;
将所述查询结果输出至查询页面中。
在一种可能的实现方式中,所述插件调用方法还包括:
当接收到插件/组件创建指令时,创建空白页面;
获取预设的插件/组件示范代码;
将所述示范代码输出至所述空白页面。
本发明的第二方面提供一种插件调用装置,所述插件调用装置包括:
获取模块,用于获取目标插件;
导入模块,用于将所述目标插件导入至第一预设目录中;
加载模块,用于加载预设的插件核心,其中,所述插件核心的功能通过依赖注入的方式动态拓展;
注册模块,用于根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息;
配置模块,用于通过所述插件核心,对所述目标插件进行配置,获得配置信息;
调用模块,用于根据所述插件注册信息以及所述配置信息,调用所述目标插件。
本发明的第三方面提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的插件调用方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的插件调用方法。
由以上技术方案,本发明中,在插件进行注册后,可以随时通过插件核心加载插件,提高了插件使用的便利性,插件核心的各个功能可以通过依赖注入的方式拓展,即所述插件核心的功能可以在所述插件核心外部实现,减少了插件核心的体积,提高了插件核心的可拓展性,同时,可以对插件进行配置从而可以调用插件中的不同组件,提高了插件的可用性。
附图说明
图1是本发明公开的一种插件调用方法的较佳实施例的流程图。
图2是本发明公开的一种插件调用装置的较佳实施例的功能模块图。
图3是本发明实现插件调用方法的较佳实施例的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明实施例的插件调用方法应用在电子设备中,也可以应用在电子设备和通过网络与所述电子设备进行连接的服务器所构成的硬件环境中,由服务器和电子设备共同执行。网络包括但不限于:广域网、城域网或局域网。
其中,服务器可以是指能对网络中其它设备(如电子设备)提供服务的计算机系统。如果一个个人电脑能够对外提供文件传输协议(File Transfer Protocol,简称FTP)服务,也可以叫服务器。从狭义范围上讲,服务器专指某些高性能计算机,能通过网络,对外提供服务,其相对于普通的个人电脑来说,稳定性、安全性、性能等方面都要求更高,因此在CPU、芯片组、内存、磁盘系统、网络等硬件和普通的个人电脑有所不同。
所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述电子设备还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络设备、多个网络设备组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络设备构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。所述用户设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理PDA等。
请参见图1,图1是本发明公开的一种插件调用方法的较佳实施例的流程图。其中,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11、获取目标插件。
其中,插件是一种遵循一定规范的应用程序接口编写出来的程序,插件可以包括多个组件以及完整的逻辑实现过程,并提供有应用程序接口以供调用。
S12、将所述目标插件导入至第一预设目录中。
本发明实施例中,可以通过命令行工具(command-line interface,CLI)生成系统开发目录,并将该系统开发目录作为所述第一预设目录,用来存放系统的各种插件以及组件。可以通过命令行工具,将插件或者组件导入至预设目录中。
其中,所述命令行工具是一种通过键盘输入指令,让计算机执行指令的用户界面,可以通过导入CLI工具包来调用命令行工具或者自行编写命令行工具的相关代码数据。
S13、加载预设的插件核心,其中,所述插件核心的功能通过依赖注入的方式动态拓展。
其中,所述依赖注入,可以是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入,把有依赖关系的类放到容器中,解析出这些类的实例。
其中,所述插件核心的各个功能可以分离出去,通过依赖注入的方式加载至所述插件核心中,可以根据实际需求动态加载需要的功能,能够减少插件核心的体积,也更利于插件核心的功能拓展,比如新增一个功能时(例如增加字符转换服务),可以在外部实现,通过依赖注入,使得所述插件核心具有该功能。同时,所述插件核心可以封装有逻辑代码,用于调用插件/组件,并提供一些基础服务,比如HTTP(HyperTextTransferProtocol,超文本传输协议)服务、插件/组件调度服务等。通过在外部重写所述插件核心内部封装的一些重要功能,通过依赖注入替换所述插件核心内部封装的功能。所述插件核心类似于linux内核,插件/组件类似于应用程序,通过所述插件核心可以随时加载调用插件/组件,所述插件/组件基于所述插件核心开发的,只能通过所述插件核心进行调用。当系统调用某个插件/组件时,该插件/组件的代码才会被加载至系统中,如果系统没有调用该插件/组件,那么该插件/组件的代码将不会被加载到系统中。
S14、根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息。
具体的,所述根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息包括:
根据所述第一预设目录,确定所述目标插件的存储路径;
获取所述目标插件的插件标识;
将所述存储路径以及插件标识记录在所述插件核心中的注册信息表中,以构成插件注册信息。
其中,所述插件标识用于作为所述目标插件的身份信息,具有唯一性,可以使用不重复的字符串作为所述插件标识。
其中,所述目标插件的存储路径可以为绝对路径或者相对路径。
在该可选的实施方式中,可以根据所述预设目录,确定所述目标插件的存储路径。将所述目标插件的存储路径以及插件标识保存至所述插件核心的注册信息表中,完成注册后,可以通过所述插件中心随时加载所述目标插件,如果系统没有调用所述目标插件,那么所述目标插件的代码不会被加载至系统中,减少系统的代码体积,提高系统的性能。
S15、通过所述插件核心,对所述目标插件进行配置,获得配置信息。
具体的,所述通过所述插件核心,对所述目标插件进行配置,获得配置信息包括:
通过所述插件核心,调用所述目标插件的预设接口,确定组成所述目标插件的多个组件;
输出所述多个组件对应的选项框;
接收针对所述选项框的选择指令;
将所述选择指令所指示的组件确定为配置信息。
在该可选的实施方式中,可以通过所述插件核心对所述目标插件进行配置,比如:一个评论功能插件中包含有评论框组件、提交按钮组件、点赞功能组件等,可以对一个插件的所有组件进行选择,将选择的组件确定为配置信息。
S16、根据所述插件注册信息以及所述配置信息,调用所述目标插件。
具体的,所述根据所述插件注册信息以及所述配置信息,调用所述目标插件包括:
根据所述插件注册信息,加载所述目标插件;
确定所述目标插件中与所述配置信息对应的;
确定所述目标插件中与所述配置信息对应的目标组件;
调用所述目标组件。
在该可选的实施方式中,所述插件核心中包含有所述目标插件对应的插件注册信息,可以根据所述目标插件的唯一标识,确定所述目标插件的所在路径,从而能够加载所述目标插件,如果所述目标插件没被调用,则所述目标插件不会被加载至系统中。加载所述目标插件后,可以根据所述配置信息只调用所述目标插件中与所述配置信息对应的目标组件。
作为一种可选的实施方式,所述方法还包括:
获取目标组件;
将所述目标组件导入至第二预设目录中;
若所述插件核心未被加载,加载所述插件核心;
在所述插件核心中对所述目标组件进行注册,获得组件注册信息;
根据所述组件注册信息调用所述目标组件。
其中,所述组件可以是实现单一功能程序代码的封装。
在该可选的实施方式中,获取到所述目标组件后,需要将所述目标组件导入至所述第二预设目录中,并在所述插件核心中对所述目标组件进行注册,可以根据所述预设目录,确定所述目标组件的存储路径。将所述目标组件的存储路径以及插件标识保存至所述插件核心的注册信息表中,完成注册后,可以通过所述插件中心随时加载所述目标组件,如果系统没有调用所述目标组件,那么所述目标组件的代码不会被加载至系统中,减少系统的代码体积。
作为一种可选的实施方式,所述方法还包括:
当接收到插件/组件创建指令时,创建空白页面;
获取预设的插件/组件示范代码;
将所述示范代码输出至所述空白页面。
其中,所述示范代码(demonstration,通常缩写为DEMO),可以是一个插件/组件的完整代码或者示例代码,用于指示如何编写一个插件/组件。
在该可选的实施方式中,可以预先设置插件/组件示范代码,当需要创建插件/组件,创建一个空白页面,然后获取预设的插件/组件示范代码,并将所述示范代码输出至所述空白页面,完成插件/组件创建的初始化,提高插件/组件的开发效率。
作为一种可选的实施方式,所述方法还包括:
当接收到插件/组件查询指令时,根据所述插件/组件查询指令所携带的关键字,从插件/组件库中进行查询,获得查询结果,其中,所述查询结果包括与所述关键字匹配的插件/组件以及预览图像;
将所述查询结果输出至查询页面中。
其中,所述插件/组件库可以是保存有插件/组件的NPM(Node Package Manager,NodeJS包管理和分发工具)私有仓库。
在该可选的实施方式中,可以将插件/组件以及对应的预览图像等信息保存在数据库或其他用于保存数据的仓库中,当接收到插件/组件查询指令时,根据所述插件/组件查询指令所携带的关键字,从插件/组件库中进行查询,将查询到的插件/组件以及预览图像输出至查询页面中。
在图1所描述的方法流程中,在插件进行注册后,可以随时通过插件核心加载插件,提高了插件使用的便利性,插件核心的各个功能可以通过依赖注入的方式拓展,即所述插件核心的功能可以在所述插件核心外部实现,减少了插件核心的体积,提高了插件核心的可拓展性,同时,可以对插件进行配置从而可以调用插件中的不同组件,提高了插件的可用性。
图2是本发明公开的一种插件调用装置的较佳实施例的功能模块图。
请参见图2,所述插件调用装置20可运行于电子设备中。所述插件调用装置20可以包括多个由程序代码段所组成的功能模块。所述插件调用装置20中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图1所描述的插件调用方法中的部分或全部步骤。
本实施例中,所述插件调用装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:获取模块201、导入模块202、加载模块203、注册模块204、配置模块205及调用模块206。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。
获取模块201,用于获取目标插件。
其中,插件是一种遵循一定规范的应用程序接口编写出来的程序,插件可以包括多个组件以及完整的逻辑实现过程,并提供有应用程序接口以供调用。
导入模块202,用于将所述目标插件导入至第一预设目录中。
本发明实施例中,可以通过命令行工具(command-line interface,CLI)生成系统开发目录,并将该系统开发目录作为所述第一预设目录,用来存放系统的各种插件以及组件。可以通过命令行工具,将插件或者组件导入至预设目录中。
其中,所述命令行工具是一种通过键盘输入指令,让计算机执行指令的用户界面,可以通过导入CLI工具包来调用命令行工具或者自行编写命令行工具的相关代码数据。
加载模块203,用于加载预设的插件核心,其中,所述插件核心的功能通过依赖注入的方式动态拓展。
其中,所述依赖注入,可以是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入,把有依赖关系的类放到容器中,解析出这些类的实例。
其中,所述插件核心的各个功能可以分离出去,通过依赖注入的方式加载至所述插件核心中,可以根据实际需求动态加载需要的功能,能够减少插件核心的体积,也更利于插件核心的功能拓展,比如新增一个功能时(例如增加字符转换服务),可以在外部实现,通过依赖注入,使得所述插件核心具有该功能。同时,所述插件核心可以封装有逻辑代码,用于调用插件/组件,并提供一些基础服务,比如HTTP(HyperTextTransferProtocol,超文本传输协议)服务、插件/组件调度服务等。通过在外部重写所述插件核心内部封装的一些重要功能,通过依赖注入替换所述插件核心内部封装的功能。所述插件核心类似于linux内核,插件/组件类似于应用程序,通过所述插件核心可以随时加载调用插件/组件,所述插件/组件基于所述插件核心开发的,只能通过所述插件核心进行调用。当系统调用某个插件/组件时,该插件/组件的代码才会被加载至系统中,如果系统没有调用该插件/组件,那么该插件/组件的代码将不会被加载到系统中。
注册模块204,用于根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息。
配置模块205,用于通过所述插件核心,对所述目标插件进行配置,获得配置信息。
调用模块206,用于根据所述插件注册信息以及所述配置信息,调用所述目标插件。
作为一种可选的实施方式,所述调用模块206根据所述插件注册信息以及所述配置信息,调用所述目标插件的方式具体为:
根据所述插件注册信息,加载所述目标插件;
确定所述目标插件中与所述配置信息对应的;
确定所述目标插件中与所述配置信息对应的目标组件;
调用所述目标组件。
在该可选的实施方式中,所述插件核心中包含有所述目标插件对应的插件注册信息,可以根据所述目标插件的唯一标识,确定所述目标插件的所在路径,从而能够加载所述目标插件,如果所述目标插件没被调用,则所述目标插件不会被加载至系统中。加载所述目标插件后,可以根据所述配置信息只调用所述目标插件中与所述配置信息对应的目标组件。
需要强调的是,为进一步保证上述目标插件的私密和安全性,上述插件目标还可以存储于一区块链的节点中。
作为一种可选的实施方式,所述配置模块205通过所述插件核心,对所述目标插件进行配置,获得配置信息的方式具体为:
通过所述插件核心,调用所述目标插件的预设接口,确定组成所述目标插件的多个组件;
输出所述多个组件对应的选项框;
接收针对所述选项框的选择指令;
将所述选择指令所指示的组件确定为配置信息。
在该可选的实施方式中,可以通过所述插件核心对所述目标插件进行配置,比如:一个评论功能插件中包含有评论框组件、提交按钮组件、点赞功能组件等,可以对一个插件的所有组件进行选择,将选择的组件确定为配置信息。
作为一种可选的实施方式,所述注册模块204根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息包括:
根据所述第一预设目录,确定所述目标插件的存储路径;
获取所述目标插件的插件标识;
并将所述存储路径以及插件标识记录在所述插件核心中的注册信息表中,以构成插件注册信息。
其中,所述插件标识用于作为所述目标插件的身份信息,具有唯一性,可以使用不重复的字符串作为所述插件标识。
其中,所述目标插件的存储路径可以为绝对路径或者相对路径。
在该可选的实施方式中,可以根据所述预设目录,确定所述目标插件的存储路径。将所述目标插件的存储路径以及插件标识保存至所述插件核心的注册信息表中,完成注册后,可以通过所述插件中心随时加载所述目标插件,如果系统没有调用所述目标插件,那么所述目标插件的代码不会被加载至系统中,减少系统的代码体积,提高系统的性能。
作为一种可选的实施方式,所述获取模块201,还用于获取目标组件;
所述导入模块202,还用于将所述目标组件导入至第二预设目录中;
所述加载模块203,还用于若所述插件核心未被加载,加载所述插件核心;
所述注册模块204,用于根据所述第二预设目录,在所述插件核心中对所述目标组件进行注册,获得组件注册信息;
所述调用模块206,还用于根据所述组件注册信息调用所述目标组件。
其中,所述组件可以是实现单一功能程序代码的封装。
在该可选的实施方式中,获取到所述目标组件后,需要将所述目标组件导入至所述第二预设目录中,并在所述插件核心中对所述目标组件进行注册,可以根据所述预设目录,确定所述目标组件的存储路径。将所述目标组件的存储路径以及插件标识保存至所述插件核心的注册信息表中,完成注册后,可以通过所述插件中心随时加载所述目标组件,如果系统没有调用所述目标组件,那么所述目标组件的代码不会被加载至系统中,减少系统的代码体积。
作为一种可选的实施方式,所述插件调用装置20还可以包括:
查询模块,用于当接收到插件/组件查询指令时,根据所述插件/组件查询指令所携带的关键字,从插件/组件库中进行查询,获得查询结果,其中,所述查询结果包括与所述关键字匹配的插件/组件以及预览图像;
第一输出模块,用于将所述查询结果输出至查询页面中。
其中,所述插件/组件库可以是保存有插件/组件的NPM(Node Package Manager,NodeJS包管理和分发工具)私有仓库。
在该可选的实施方式中,可以将插件/组件以及对应的预览图像等信息保存在数据库或其他用于保存数据的仓库中,当接收到插件/组件查询指令时,根据所述插件/组件查询指令所携带的关键字,从插件/组件库中进行查询,将查询到的插件/组件以及预览图像输出至查询页面中。
作为一种可选的实施方式,所述插件调用装置20还可以包括:
创建模块,用于当接收到插件/组件创建指令时,创建空白页面;
所述获取模块201,还用于获取预设的插件/组件示范代码;
第二输出模块,用于将所述示范代码输出至所述空白页面。
其中,所述示范代码(demonstration,通常缩写为DEMO),可以是一个插件/组件的完整代码或者示例代码,用于指示如何编写一个插件/组件。
在该可选的实施方式中,可以预先设置插件/组件示范代码,当需要创建插件/组件,创建一个空白页面,然后获取预设的插件/组件示范代码,并将所述示范代码输出至所述空白页面,完成插件/组件创建的初始化,提高插件/组件的开发效率。
在图2所描述的插件调用装置20中,在插件进行注册后,可以随时通过插件核心加载插件,提高了插件使用的便利性,插件核心的各个功能可以通过依赖注入的方式拓展,即所述插件核心的功能可以在所述插件核心外部实现,减少了插件核心的体积,提高了插件核心的可拓展性,同时,可以对插件进行配置从而可以调用插件中的不同组件,提高了插件的可用性。
如图3所示,图3是本发明实现插件调用方法的较佳实施例的电子设备的结构示意图。所述电子设备3包括存储器31、至少一个处理器32、存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33及至少一条通讯总线34。
本领域技术人员可以理解,图3所示的示意图仅仅是所述电子设备3的示例,并不构成对所述电子设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备3还可以包括输入输出设备、网络接入设备等。
所述电子设备3还包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(InternetProtocol Television,IPTV)、智能式穿戴式设备等。所述电子设备3所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
所述至少一个处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、分立硬件组件等。该处理器32可以是微处理器或者该处理器32也可以是任何常规的处理器等,所述处理器32是所述电子设备3的控制中心,利用各种接口和线路连接整个电子设备3的各个部分。
所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述电子设备3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备3的使用所创建的数据等。此外,存储器31可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件等。
结合图1,所述电子设备3中的所述存储器31存储多个指令以实现一种插件调用方法,所述处理器32可执行所述多个指令从而实现:
获取目标插件;
将所述目标插件导入至第一预设目录中;
加载预设的插件核心,其中,所述插件核心的功能通过依赖注入的方式动态拓展;
根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息;
通过所述插件核心,对所述目标插件进行配置,获得配置信息;
根据所述插件注册信息以及所述配置信息,调用所述目标插件。
具体地,所述处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在图3所描述的电子设备3中,在插件进行注册后,可以随时通过插件核心加载插件,提高了插件使用的便利性,插件核心的各个功能可以通过依赖注入的方式拓展,即所述插件核心的功能可以在所述插件核心外部实现,减少了插件核心的体积,提高了插件核心的可拓展性,同时,可以对插件进行配置从而可以调用插件中的不同组件,提高了插件的可用性。
所述电子设备3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种插件调用方法,其特征在于,所述插件调用方法包括:
获取目标插件;
将所述目标插件导入至第一预设目录中;
加载预设的插件核心,其中,所述插件核心的功能通过依赖注入的方式动态拓展;
根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息;
通过所述插件核心,对所述目标插件进行配置,获得配置信息;
根据所述插件注册信息以及所述配置信息,调用所述目标插件。
2.根据权利要求1所述的插件调用方法,其特征在于,所述根据所述插件注册信息以及所述配置信息,调用所述目标插件包括:
根据所述插件注册信息,加载所述目标插件;
确定所述目标插件中与所述配置信息对应的目标组件;
调用所述目标组件。
3.根据权利要求1所述的插件调用方法,其特征在于,所述通过所述插件核心,对所述目标插件进行配置,获得配置信息包括:
通过所述插件核心,调用所述目标插件的预设接口,确定组成所述目标插件的多个组件;
输出所述多个组件对应的选项框;
接收针对所述选项框的选择指令;
将所述选择指令所指示的组件确定为配置信息。
4.根据权利要求1所述的插件调用方法,其特征在于,所述根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息包括:
根据所述第一预设目录,确定所述目标插件的存储路径;
获取所述目标插件的插件标识;
并将所述存储路径以及插件标识记录在所述插件核心中的注册信息表中,以构成插件注册信息。
5.根据权利要求1至4中任一项所述的插件调用方法,其特征在于,所述插件调用方法还包括:
获取目标组件;
将所述目标组件导入至第二预设目录中;
若所述插件核心未被加载,加载所述插件核心;
根据所述第二预设目录,在所述插件核心中对所述目标组件进行注册,获得组件注册信息;
根据所述组件注册信息调用所述目标组件。
6.根据权利要求1至4中任一项所述的插件调用方法,其特征在于,所述插件调用方法还包括:
当接收到插件/组件查询指令时,根据所述插件/组件查询指令所携带的关键字,从插件/组件库中进行查询,获得查询结果,其中,所述查询结果包括与所述关键字匹配的插件/组件以及预览图像;
将所述查询结果输出至查询页面中。
7.根据权利要求1至4中任一项所述的插件调用方法,其特征在于,所述插件调用方法还包括:
当接收到插件/组件创建指令时,创建空白页面;
获取预设的插件/组件示范代码;
将所述示范代码输出至所述空白页面。
8.一种插件调用装置,其特征在于,所述插件调用装置包括:
获取模块,用于获取目标插件;
导入模块,用于将所述目标插件导入至第一预设目录中;
加载模块,用于加载预设的插件核心,其中,所述插件核心的功能通过依赖注入的方式动态拓展;
注册模块,用于根据所述第一预设目录,在插件核心中对所述目标插件进行注册,获得插件注册信息;
配置模块,用于通过所述插件核心,对所述目标插件进行配置,获得配置信息;
调用模块,用于根据所述插件注册信息以及所述配置信息,调用所述目标插件。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至7中任意一项所述的插件调用方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至7中任意一项所述的插件调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010713774.4A CN111736922B (zh) | 2020-07-23 | 2020-07-23 | 插件调用方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010713774.4A CN111736922B (zh) | 2020-07-23 | 2020-07-23 | 插件调用方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111736922A true CN111736922A (zh) | 2020-10-02 |
CN111736922B CN111736922B (zh) | 2020-11-13 |
Family
ID=72657305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010713774.4A Active CN111736922B (zh) | 2020-07-23 | 2020-07-23 | 插件调用方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111736922B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559026A (zh) * | 2020-12-23 | 2021-03-26 | 南方电网深圳数字电网研究院有限公司 | 基于api接口的原生能力拓展方法、设备及存储介质 |
CN113110921A (zh) * | 2021-06-11 | 2021-07-13 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
CN113448698A (zh) * | 2020-12-24 | 2021-09-28 | 北京新氧科技有限公司 | 业务模块相互调用的实现方法、装置、设备及存储介质 |
CN116360779A (zh) * | 2023-06-02 | 2023-06-30 | 杭州比智科技有限公司 | 基于qiankun在Vue CLI应用构建微前端基座的方法 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710535A (zh) * | 2005-05-10 | 2005-12-21 | 上海宝信软件股份有限公司 | 一种gis应用系统及其开发方法 |
US20100293491A1 (en) * | 2009-05-12 | 2010-11-18 | Ricoh Company, Ltd. | Information Processing Apparatus, System, And Program |
CN101950255A (zh) * | 2010-09-16 | 2011-01-19 | 深圳市迎风传讯科技有限公司 | 插件管理方法、插件管理器及机顶盒 |
US20120159145A1 (en) * | 2010-12-17 | 2012-06-21 | Oracle International Corporation | Plug-in system for software applications |
CN103164239A (zh) * | 2012-12-11 | 2013-06-19 | 广东电网公司电力科学研究院 | 基于微网可视化平台的插件实现方法 |
CN103309700A (zh) * | 2012-03-16 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种插件管理控制方法及装置 |
CN105094922A (zh) * | 2015-08-17 | 2015-11-25 | 北京奇虎科技有限公司 | 应用程序免安装运行控制方法及其装置 |
CN106708547A (zh) * | 2015-11-12 | 2017-05-24 | 卓望数码技术(深圳)有限公司 | 一种服务插件管理方法和系统 |
CN107589970A (zh) * | 2016-07-08 | 2018-01-16 | 深圳联友科技有限公司 | 一种插件调用方法及装置 |
US20180063069A1 (en) * | 2015-04-21 | 2018-03-01 | Facebook, Inc. | Plug-in for extending functionality of messenger application across supplemented and unsupplemented application instances |
CN108427551A (zh) * | 2018-03-24 | 2018-08-21 | 深圳市前海安测信息技术有限公司 | Mvc组件式程序开发框架创建系统及方法 |
CN108572813A (zh) * | 2018-03-24 | 2018-09-25 | 深圳市前海安测信息技术有限公司 | 组件式程序开发框架创建应用系统及方法 |
WO2018182320A1 (en) * | 2017-03-29 | 2018-10-04 | Samsung Electronics Co., Ltd. | Method for providing payment service having plug-in service, and electronic device therefor |
US20180316777A1 (en) * | 2017-04-26 | 2018-11-01 | International Business Machines Corporation | Invoking enhanced plug-ins and creating workflows having a series of enhanced plug-ins |
WO2018203166A1 (en) * | 2017-05-05 | 2018-11-08 | Esoptra, N.V. | Plug-in function platform and methods |
CN108984224A (zh) * | 2018-06-13 | 2018-12-11 | 中国平安人寿保险股份有限公司 | 一种插件管理方法、计算机可读存储介质及终端设备 |
-
2020
- 2020-07-23 CN CN202010713774.4A patent/CN111736922B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710535A (zh) * | 2005-05-10 | 2005-12-21 | 上海宝信软件股份有限公司 | 一种gis应用系统及其开发方法 |
US20100293491A1 (en) * | 2009-05-12 | 2010-11-18 | Ricoh Company, Ltd. | Information Processing Apparatus, System, And Program |
CN101950255A (zh) * | 2010-09-16 | 2011-01-19 | 深圳市迎风传讯科技有限公司 | 插件管理方法、插件管理器及机顶盒 |
US20120159145A1 (en) * | 2010-12-17 | 2012-06-21 | Oracle International Corporation | Plug-in system for software applications |
CN103309700A (zh) * | 2012-03-16 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种插件管理控制方法及装置 |
CN103164239A (zh) * | 2012-12-11 | 2013-06-19 | 广东电网公司电力科学研究院 | 基于微网可视化平台的插件实现方法 |
US20180063069A1 (en) * | 2015-04-21 | 2018-03-01 | Facebook, Inc. | Plug-in for extending functionality of messenger application across supplemented and unsupplemented application instances |
CN105094922A (zh) * | 2015-08-17 | 2015-11-25 | 北京奇虎科技有限公司 | 应用程序免安装运行控制方法及其装置 |
CN106708547A (zh) * | 2015-11-12 | 2017-05-24 | 卓望数码技术(深圳)有限公司 | 一种服务插件管理方法和系统 |
CN107589970A (zh) * | 2016-07-08 | 2018-01-16 | 深圳联友科技有限公司 | 一种插件调用方法及装置 |
WO2018182320A1 (en) * | 2017-03-29 | 2018-10-04 | Samsung Electronics Co., Ltd. | Method for providing payment service having plug-in service, and electronic device therefor |
US20180316777A1 (en) * | 2017-04-26 | 2018-11-01 | International Business Machines Corporation | Invoking enhanced plug-ins and creating workflows having a series of enhanced plug-ins |
WO2018203166A1 (en) * | 2017-05-05 | 2018-11-08 | Esoptra, N.V. | Plug-in function platform and methods |
CN108427551A (zh) * | 2018-03-24 | 2018-08-21 | 深圳市前海安测信息技术有限公司 | Mvc组件式程序开发框架创建系统及方法 |
CN108572813A (zh) * | 2018-03-24 | 2018-09-25 | 深圳市前海安测信息技术有限公司 | 组件式程序开发框架创建应用系统及方法 |
CN108984224A (zh) * | 2018-06-13 | 2018-12-11 | 中国平安人寿保险股份有限公司 | 一种插件管理方法、计算机可读存储介质及终端设备 |
Non-Patent Citations (1)
Title |
---|
殷涛;崔佳冬: "基于Android 软件开发组件化研究", 《计算机应用与软件》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559026A (zh) * | 2020-12-23 | 2021-03-26 | 南方电网深圳数字电网研究院有限公司 | 基于api接口的原生能力拓展方法、设备及存储介质 |
CN112559026B (zh) * | 2020-12-23 | 2024-05-14 | 南方电网数字平台科技(广东)有限公司 | 基于api接口的原生能力拓展方法、设备及存储介质 |
CN113448698A (zh) * | 2020-12-24 | 2021-09-28 | 北京新氧科技有限公司 | 业务模块相互调用的实现方法、装置、设备及存储介质 |
CN113448698B (zh) * | 2020-12-24 | 2024-04-02 | 北京新氧科技有限公司 | 业务模块相互调用的实现方法、装置、设备及存储介质 |
CN113110921A (zh) * | 2021-06-11 | 2021-07-13 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
CN113110921B (zh) * | 2021-06-11 | 2021-10-22 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
US11682014B2 (en) | 2021-06-11 | 2023-06-20 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and apparatus for operating blockchain system, device and storage medium |
CN116360779A (zh) * | 2023-06-02 | 2023-06-30 | 杭州比智科技有限公司 | 基于qiankun在Vue CLI应用构建微前端基座的方法 |
CN116360779B (zh) * | 2023-06-02 | 2023-08-15 | 杭州比智科技有限公司 | 基于qiankun在Vue CLI应用构建微前端基座的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111736922B (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111736922B (zh) | 插件调用方法、装置、电子设备及存储介质 | |
WO2022078345A1 (zh) | 多设备间的数据交互方法及相关设备 | |
CN111897818B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
US11093642B2 (en) | Push down policy enforcement | |
CN108171528B (zh) | 一种归因方法及归因系统 | |
US11221850B2 (en) | Sort and merge instruction for a general-purpose processor | |
US9959135B2 (en) | Pattern design for heterogeneous environments | |
CN111142863B (zh) | 一种页面生成的方法及装置 | |
CN109542398B (zh) | 一种业务系统生成方法、装置及计算机可读存储介质 | |
US11281469B2 (en) | Saving and restoring machine state between multiple executions of an instruction | |
CN112632071A (zh) | 数据库主键id生成方法、装置、设备及存储介质 | |
JP2022522627A (ja) | セキュアなオペレーティング・システム・イメージのインクリメンタル復号および完全性検証 | |
WO2021114902A1 (zh) | 程序初始化方法、程序初始化装置、终端设备及存储介质 | |
US20200142669A1 (en) | Controlling storage accesses for merge operations | |
CN109669678A (zh) | 模板引擎整合方法、装置、电子设备及存储介质 | |
CN111651248A (zh) | 定时任务执行方法、装置、电子设备及存储介质 | |
CN112925523A (zh) | 对象比较方法、装置、设备及计算机可读介质 | |
EP3877842B1 (en) | Migration of partially completed instructions | |
CN110535724B (zh) | 应用程序网络读写限制方法、装置、电子设备及存储介质 | |
CN112733510A (zh) | 一种财务凭证生成方法、装置、设备及计算机可读存储介质 | |
CN115935380A (zh) | 用于容器中的数据的自动加密系统 | |
CN114417069A (zh) | 页面数据交互方法、装置及电子设备 | |
CN111857883A (zh) | 页面数据校验方法、装置、电子设备及存储介质 | |
US11630655B2 (en) | Merging data structure definitions | |
CN113542429B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |