CN112379943A - Electron应用程序的插件应用方法及装置、存储介质 - Google Patents

Electron应用程序的插件应用方法及装置、存储介质 Download PDF

Info

Publication number
CN112379943A
CN112379943A CN202011290908.2A CN202011290908A CN112379943A CN 112379943 A CN112379943 A CN 112379943A CN 202011290908 A CN202011290908 A CN 202011290908A CN 112379943 A CN112379943 A CN 112379943A
Authority
CN
China
Prior art keywords
plug
electron
external
application
electron application
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
Application number
CN202011290908.2A
Other languages
English (en)
Inventor
林波
雷志兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gaotu Yunji Education Technology Co Ltd
Original Assignee
Beijing Gaotu Yunji Education Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gaotu Yunji Education Technology Co Ltd filed Critical Beijing Gaotu Yunji Education Technology Co Ltd
Priority to CN202011290908.2A priority Critical patent/CN112379943A/zh
Publication of CN112379943A publication Critical patent/CN112379943A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种Electron应用程序的插件应用方法及装置、存储介质。Electron应用程序的插件应用方法,包括:在Electron应用程序启动时,通过读取所述Electron应用程序的配置文件,获取待加载的内部插件;查找所述待加载的内部插件对应的目标文件;将所述目标文件的导出方法挂载到所述Electron应用程序的进程的插件操作对象上。该方法用以实现Electron应用程序的插件应用。

Description

Electron应用程序的插件应用方法及装置、存储介质
技术领域
本申请涉及插件技术领域,具体而言,涉及一种Electron应用程序的插件应用方法及装置、存储介质。
背景技术
Electron是一种快速开发桌面应用程序的方案,它使用Node.js(运行在服务端的JavaScript)和Chromium(谷歌的开源项目)完成桌面应用程序的开发,并且Electron已经被非常多的开源项目使用,整体稳定性较好。
现有Electron并没有插件系统的官方推荐实现方案,所有关于Electron应用程序的插件都需要开发者实现。
发明内容
本申请实施例的目的在于提供一种Electron应用程序的插件应用方法及装置、存储介质,用以实现Electron应用程序的插件应用。
第一方面,本申请实施例提供一种Electron应用程序的插件应用方法,包括:在Electron应用程序启动时,通过读取所述Electron应用程序的配置文件,获取待加载的内部插件;查找所述待加载的内部插件对应的目标文件;将所述目标文件的导出方法挂载到所述Electron应用程序的进程的插件操作对象上。
在本申请实施例中,与现有技术相比,内部插件已经安装在Electron应用程序目录下,在Electron应用程序的初始化过程中,通过读取Electron应用程序的配置文件,就知道需要加载的内部插件,然后通过内部插件对应的目标文件,将目标文件的导出方法挂载到Electron应用程序的进程的插件操作对象上,完成内部插件的加载;实现Electron应用程序内部插件的应用,进而使Electron应用程序具备插件功能。
作为一种可能的实现方式,所述Electron应用程序的进程包括主进程和渲染进程。
在本申请实施例中,挂载内部插件的目标文件的进程包括主进程和渲染进程,进而实现主进程和渲染进程都可以对内部插件进行调用(使用)。
作为一种可能的实现方式,在所述将所述目标文件的导出方法挂载到所述Electron应用程序的进程的插件操作对象上后,所述方法还包括:确定加载完成的内部插件中需要进行初始化的目标插件;对所述目标插件进行初始化。
在本申请实施例中,对于内部插件来说,除了在应用程序启动时进行加载,还可以进行初始化,以使内部插件的应用更稳定。
作为一种可能的实现方式,在所述将所述目标文件的导出的方法挂载到所述Electron应用程序的进程的插件操作对象上后,所述方法还包括:接收外部插件的安装指令;从第三方插件仓库中获取所述外部插件的插件包;通过所述插件包在所述Electron应用程序中安装所述外部插件;在确定所述外部插件安装成功时,重启所述Electron应用程序;在所述Electron应用程序重启时,对所述外部插件进行加载和初始化,并将所述外部插件加入到所述Electron应用程序的配置文件中。
在本申请实施例中,除了已经安装的内部插件,利用第三方插件仓库中的插件包进行外部插件的安装,使Electron应用程序实现外部插件的应用,进而使Electron应用程序的插件功能更完善。
作为一种可能的实现方式,所述第三方插件仓库为Npm仓库,通过所述插件包在所述Electron应用程序中安装所述外部插件,包括:通过执行所述插件包中的Npm命令在所述Electron应用程序中安装所述外部插件。
在本申请实施例中,第三方插件仓库为Npm仓库,通过Npm插件包中的Npm命令,实现外部插件的快速安装。
作为一种可能的实现方式,在所述将所述目标文件的导出的方法挂载到所述Electron应用程序的进程的插件操作对象上后,所述方法还包括:接收外部插件的卸载指令;将所述外部插件从所述Electron应用程序中卸载;在确定所述外部插件卸载完成时,重启所述Electron应用程序;在所述Electron应用程序重启时,将所述外部插件从所述配置文件中删除。
在本申请实施例中,对于Electron应用程序中已经安装的外部插件,还可以进行卸载,使外部插件的应用更灵活,进而使Electron应用程序的插件功能更完善。
作为一种可能的实现方式,在所述将所述目标文件的导出的方法挂载到所述Electron应用程序的进程的插件操作对象上后,所述方法还包括:接收外部插件的升级指令;判断所述外部插件是否需要升级;在确定所述外部插件需要升级时,从所述第三方插件仓库中获取所述外部插件的升级包;通过所述升级包在所述Electron应用程序中升级所述外部插件;在确定所述外部插件升级成功时,重启所述Electron应用程序;在所述Electron应用程序重启时,对升级后的外部插件进行加载和初始化,并将升级后的外部插件同步到所述配置文件中。
在本申请实施例中,对于Electron应用程序中已经安装的外部插件,还可以进行升级,在升级时,对当前版本的插件进行检测,在需要升级时,才进行升级,使外部插件的升级更有效。
第二方面,本申请实施例提供一种Electron应用程序的插件应用方法,包括:接收外部插件的安装指令;从第三方插件仓库中获取外部插件的插件包;通过所述插件包在所述Electron应用程序中安装所述外部插件;在确定所述外部插件安装成功时,重启所述Electron应用程序;在所述Electron应用程序重启时,对所述外部插件进行加载和初始化,并将所述外部插件加入到所述Electron应用程序的配置文件中。
在本申请实施例中,与现有技术相比,利用第三方插件仓库中的插件包进行外部插件的安装,使Electron应用程序实现外部插件的应用,进而使Electron应用程序具备插件功能。
第三方面,本申请实施例提供一种Electron应用程序的插件应用装置,包括用于实现第一方面以及第一方面的任意一种可能的实现方式中所述的方法的功能模块。
第四方面,本申请实施例提供一种Electron应用程序的插件应用装置,包括用于实现第二方面中所述的方法的功能模块。
第五方面,本申请实施例提供一种电子设备,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行如第一方面以及第一方面的任意一种可能的实现方式以及第二方面中所述的方法。
第六方面,本申请实施例提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时执行如第一方面以及第一方面的任意一种可能的实现方式以及第二方面中所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的对应内部插件的Electron应用程序的插件应用方法的流程图;
图2为本申请实施例提供的对应外部插件的Electron应用程序的插件应用方法的流程图;
图3为本申请实施例提供的第一插件应用装置的功能模块框图;
图4为本申请实施例提供的第二插件应用装置的功能模块框图;
图5为本申请实施例提供的电子设备的结构示意图。
图标:300-第一插件应用装置;301-第一获取模块;302-第一加载模块;400-第二插件应用装置;401-接收模块;402-第二获取模块;403-安装模块;404-重启模块;405-第二加载模块;500-电子设备;501-存储器;502-处理器;503-显示器;504-输入输出模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请实施例所提供Electron应用程序的插件应用方法应用于Electron应用程序,Electron应用程序是通过Electron开发的桌面应用程序。Electron应用程序应用于PC(Personal Computer,个人计算机)端,该PC端可以是Windows系统,也可以是IOS系统。当Electron应用程序安装到PC端以后,用户便可以在PC端上使用Electron应用程序,因而,对于Electron应用程序的插件应用方法,所应用的硬件端为安装Electron应用程序的PC端。
在本申请实施例中,Electron应用程序所应用(使用)的插件包括内部插件和外部插件,内部插件可以理解为应用程序自带的插件,通常都随着应用程序安装包一起,当应用程序安装时,顺带将自带的插件也进行一并安装。外部插件不是应用程序自带的插件,在应用程序允许的情况下,在应用程序的使用过程中可以随时进行安装,以使应用程序的插件功能更为完善。
基于上述应用场景,接下来请参照图1,为本申请实施例提供的Electron应用程序的插件应用方法的流程图,该方法包括:
步骤101:在Electron应用程序启动时,通过读取Electron应用程序的配置文件,获取待加载的内部插件。
步骤102:查找待加载的内部插件对应的目标文件。
步骤103:将目标文件的导出方法挂载到Electron应用程序的进程的插件操作对象上。
在本申请实施例中,与现有技术相比,内部插件已经安装在Electron应用程序目录下,在Electron应用程序的初始化过程中,通过读取Electron应用程序的配置文件,就知道需要加载的内部插件,然后通过内部插件对应的目标文件,将目标文件的导出方法挂载到Electron应用程序的进程的插件操作对象上,完成内部插件的加载;实现Electron应用程序内部插件的应用,进而使Electron应用程序具备插件功能。
步骤101-步骤103中对应的是内部插件的应用过程,接下来对该应用过程的详细实施方式进行介绍。
在步骤101中,执行条件是在Electron应用程序启动时。可以理解,内部插件已经预先安装在Electron应用程序中,在Electron应用程序启动时,内部插件需要进行加载,才能进行使用,因此,每次Electron应用程序启动时,都需要进行内部插件的加载。
其中,在Electron应用程序启动的过程中,通常会依次初始化各个进程。作为一种可选的实施方式,在Electron应用程序的启动过程中,当主进程初始化完毕后执行步骤101。
此外,对于Electron应用程序的目录下安装的内部插件,作为一种可选的实施方式,在开发者对Electron应用程序进行开发时,将内部插件对应的插件包打包在Electron应用程序的安装包中,当用户利用Electron应用程序的安装包进行Electron应用程序的安装时,会同时利用插件包完成内部插件的安装,实现将内部插件安装在应用程序的目录下。其中,利用插件包进行内部插件的安装过程可理解为:先将内部插件的相关文件存储到Electron应用程序的目录下,然后再将内部插件加入到Electron应用程序的配置文件中,通常以列表的形式体现。比如:有多个内部插件,配置文件中则对应的存储有这多个内部插件的列表。
进一步地,当Electron应用程序完成安装后,内部插件也完成在Electron应用程序中的安装,不管是在第一次启动Electron应用程序,还是后续的使用过程中每次启动Electron应用程序,执行步骤101-步骤103的内部插件加载过程,便可以对内部插件进行使用。
在加载内部插件时,步骤101的作用是获取待加载的内部插件,在Electron应用程序的配置文件中,存储有内部插件列表,通过读取该内部插件列表,便可以获取到需要加载的内部插件。待加载的内部插件可以是一个或者多个,通常来说是多个,但是特殊情况下,有可能有些应用程序本身自带的内部插件就较少,在本申请实施例中不作限定。
在步骤101执行完后,执行步骤102,查找待加载的内部插件对应的目标文件。在步骤101中,所获取到待加载的内部插件不是内部插件本身,而是内部插件的信息,比如名称或者其他标识。而内部插件在安装时,其对应的相关文件存储在Electron应用程序的文件列表中,因此在步骤102中通过步骤101中获取到的内部插件的信息在文件列表中查找对应的目标文件即可。
在步骤102中查找到对应的目标文件后,执行步骤103,将目标文件的导出方法挂载到Electron应用程序的进程的插件操作对象上。其中,插件操作对象可以理解为内部插件的承载主体。当用户需要使用某个内部插件,或者应用程序自身需要调用某个内部插件时,用户可以选择用户界面的承载主体或者应用程序跳转到进程中的承载主体上,然后应用程序通过调用该承载主体,读取到目标文件的导出方法,将目标文件导出,实现内部插件的应用。插件操作对象例如可以是:用户界面上的组件(比如操作组件)、小程序等。
作为一种可选的实施方式,Electron应用程序的进程包括主进程和渲染进程,即主进程和渲染进程都可以对内部插件进行调用(使用)。
在步骤103执行完毕后,相当于完成内部插件的加载,对于某些内部插件来说,除了加载,有时还需要进行初始化,因此,作为一种可选的实施方式,在步骤103后,该方法还包括:确定加载完成的内部插件中需要进行初始化的目标插件;对目标插件进行初始化。
在这种实施方式中,目标插件可以是需要进行异步操作的异步插件,例如:内部插件功能涉及到从服务器下载文件的插件;也可以是需要进行同步操作的同步插件。以异步插件为例,可以理解,在从服务器下载文件时,为了使下载文件的效率更高,可采用异步下载文件的方式。在确定目标插件时,可以读取内部插件列表中的各个内部插件的相关信息,在相关信息中,可以存储内部插件的功能或者类型,基于内部插件的功能或者类型,便可以确定内部插件是否需要进行异步操作。除了这种实施方式,作为另一种可选的实施方式,在开发人员对Electron应用程序的内部插件进行开发时,确定内部插件是否需要进行异步操作,若需要进行异步操作,在其插件包中添加对应的标识信息,该标识信息在内部插件完成安装后一并存储在配置文件或者目录文件中,在确定目标插件时,通过读取内部插件的该标识信息,便能确定内部插件是否为需要进行初始化的目标插件。
进一步地,在对目标插件进行初始化时,作为一种可选的实施方式:在内部插件进行异步请求时,注册一个回调方法,通过主进程监听异步请求完毕后的回调来完成异步插件的初始化操作。同理,对于同步插件的初始化,也可以在内部插件进行同步请求时,注册一个回调方法,通过主进程监听同步请求完毕后的回调来完成同步插件的初始化操作。
在本申请实施例中,对于内部插件来说,除了在应用程序启动时进行加载,还可以进行初始化,以使内部插件的应用更稳定。
在前述实施例中介绍过,Electron应用程序除了可以使用内部插件,还可以使用外部插件,对于外部插件,在使用之前,需要先进行安装;在使用的过程中,可以进行升级或者卸载。接下来对外部插件在Electron应用程序中的使用方式进行介绍。
对于外部插件的安装过程,可以在步骤103后,即Electron应用程序的内部插件加载完毕后执行;也可以是独立的安装流程,即在Electron应用程序的使用过程中,随时可以进行外部插件的安装。接下来请参照图2,为本申请实施例提供的外部插件的安装流程图,该过程包括:
步骤201:接收外部插件的安装指令。
步骤202:从第三方插件仓库中获取外部插件的插件包。
步骤203:通过插件包在Electron应用程序中安装外部插件。
步骤204:在确定外部插件安装成功时,重启Electron应用程序。
步骤205:在Electron应用程序重启时,对外部插件进行加载和初始化,并将外部插件加入到Electron应用程序的配置文件中。
在本申请实施例中,与现有技术相比,利用第三方插件仓库中的插件包进行外部插件的安装,使Electron应用程序实现外部插件的应用,进而使Electron应用程序具备插件功能。
接下来对步骤201-步骤205的详细实施方式进行介绍。
对于步骤201,可以是在步骤103后执行(即应用程序启动完毕后),也可以是应用程序的使用过程中随时执行。外部插件的安装指令可以是用户发起的,作为一种可选的实施方式,在Electron应用程序中配置有可安装的外部插件列表,用户通过在可安装的外部插件列表中选择外部插件,发起外部插件的安装指令,在该安装指令中,包括外部插件的相关信息。
在步骤201后,执行步骤202,从第三方插件仓库中获取外部插件的插件包。在外部插件的相关信息中,可以包括外部插件的插件包的获取渠道,即第三方插件仓库。作为一种可选的实施方式,该第三方插件仓库可以是Npm仓库,Npm仓库是Node.js的包管理工具,用来安装各种Node.js的扩展。Npm仓库是JavaScript的包管理工具,也是世界上最大的软件注册表,有超过60万个JavaScript代码包可供下载,每周下载约30亿次。Npm让JavaScript开发人员可以轻松地使用其他开发人员共享的代码。基于Npm仓库的特点,其中含有大量的插件包,因此,从Npm仓库中可以获取到对应的外部插件的插件包,该插件包为包含有Npm命令的Npm插件包。
进一步地,在步骤202中获取到插件包后,执行步骤203,通过插件包在Electron应用程序中安装外部插件。作为一种可选的实施方式,步骤203包括:通过执行插件包中的Npm命令在Electron应用程序中安装外部插件。这种实施方式适用于第三方插件仓库为Npm仓库的实施方式。
可以理解,在Npm插件包中,存储的都是代码命令,执行这些代码命令,便可以简单、快速且便捷地完成外部插件的安装,完成后,最终外部插件的相关文件存储到应用程序的目录文件下。
在本申请实施例中,第三方插件仓库为Npm仓库,通过Npm插件包中的Npm命令,实现外部插件的快速安装。
可以理解,第三方插件仓库不限于Npm仓库,还可以是其他本领域技术人员所通用的插件库,在本申请实施例中不作限定。
进一步地,在步骤203中完成外部插件的安装后,执行步骤204,在确定外部插件安装成功时,重启Electron应用程序。可以理解,外部插件虽然已经安装成功,但是其相关信息还没有同步到Electron应用程序的配置文件中,因此,需要重启Electron应用程序,以完成外部插件的同步。
进一步地,在步骤204后,执行步骤205,在Electron应用程序重启时,对外部插件进行加载和初始化,并将外部插件加入到Electron应用程序的配置文件中。
其中,对于外部插件的加载和初始化过程,与前述实施例中所描述的内部插件的加载和初始化过程基本相同。所不同的是,由于PC端是在完成外部插件的安装后跳转的重启过程,因此,PC端可以根据该跳转命令确定需要加载的外部插件为重启前安装完成的外部插件,而不是从配置文件中确定需要加载的外部插件。当然,在通过步骤205将外部插件加入到配置文件中后,后续每次加载外部插件时,便可以按照与内部插件相同的加载方式进行。
此外,对于外部插件来说,在加载和初始化后,同样可以供Electron应用程序的主进程或者渲染进程调用。
需要注意的是,Electron应用程序中,每次通常安装一个外部插件,每次安装外部插件时的实施方式相同。
此外,在外部插件安装的各个过程中,PC端还可以输出对应的执行结果以及相应的提示信息,比如:在外部插件完成初步安装时,输出提示信息:安装完成,请重启。在重启后,外部插件加载和初始化完毕后,输出提示信息:加载完成,欢迎使用。在本申请实施例中,仅作示例性的举例,在实际应用中,可以根据不同的应用程序进行灵活设置。
在本申请实施例中,对于Electron应用程序中安装的各个外部插件,还可以进行卸载。因此,作为一种可选的实施方式,该方法还包括:接收外部插件的卸载指令;将外部插件从Electron应用程序中卸载;在确定外部插件卸载完成时,重启Electron应用程序;在Electron应用程序重启时,将外部插件从配置文件中删除。
在这种实施方式中,接收外部插件的卸载指令的时机可以是在步骤103后,也可以是在步骤205后,也可以是在Electron应用程序中的使用过程的任意时刻,在本申请实施例中不作限定。对于该卸载指令,可以是用户发起的,作为一种可选的实施方式,用户可以随时查看配置文件中的外部插件列表,然后从中选择需要卸载的外部插件。需要注意的是,用户所发起的卸载指令中包括的待卸载的外部插件可以是一个,也可以是多个,如果是一个的情况,后续的卸载过程针该一个外部插件;如果是多个的情况,后续的卸载过程针对的是该多个外部插件中的每一个外部插件。
进一步地,在卸载外部插件时,将外部插件对应的文件从应用程序的目录文件中进行删除即可。在删除完成后,重启Electron应用程序,并将对应的外部插件从配置文件中删除,完成外部插件的完全卸载。
在本申请实施例中,对于Electron应用程序中已经安装的外部插件,还可以进行卸载,使外部插件的应用更灵活,进而使Electron应用程序的插件功能更完善。
此外,对于卸载过程中产生的执行结果,PC端可以输出对应的提示信息。比如:在外部插件对应的文件删除完成后,输出提示信息:相关文件已删除,请重启。在重启完成后,输出提示信息:卸载完成。在本申请实施例中,仅作示例性的举例,在实际应用中,可以根据不同的应用程序进行灵活设置。
在本申请实施例中,对于Electron应用程序中安装的各个外部插件,还可以进行升级。因此,作为一种可选的实施方式,该方法还包括:接收外部插件的升级指令;判断外部插件是否需要升级;在确定外部插件需要升级时,从第三方插件仓库中获取外部插件的升级包;通过升级包在Electron应用程序中升级外部插件;在确定外部插件升级成功时,重启Electron应用程序;在Electron应用程序重启时,对升级后的外部插件进行加载和初始化,并将升级后的外部插件同步到配置文件中。
在这种实施方式中,接收外部插件的升级指令的时机可以是在步骤103后,也可以是在步骤205后,也可以是在Electron应用程序中的使用过程的任意时刻,在本申请实施例中不作限定。对于该升级指令,可以是用户发起的,也可以是PC端自动检测各个外部插件的版本后,生成的升级指令。
可以理解,如果是由用户发起的升级指令,在接收到该升级指令后,才需要对外部插件是否需要进行升级进行判断;如果是由PC端生成的升级指令,PC端在生成升级指令之前或者生成升级指令时,已经对外部插件是否需要进行升级进行了判断(即检测外部插件的版本的过程),则在这种实施方式中不需要判断外部插件是否需要进行升级,直接获取升级包对外部插件进行升级即可。
不管是哪种实施方式,在判断外部插件是否需要升级时,将外部插件的(本地)版本与线上版本进行对比,如果本地版本与线上版本不相同,且本地版本的发布时间在线上版本的发布时间之前,则确定外部插件需要升级。如果本地版本与线上版本相同,或者本地版本的发布时间与线上版本的发布时间相同,则确定外部插件不需要升级。
进一步地,在确定外部插件不需要升级的情况下,不执行后续的升级操作,如果是由用户发起的升级指令,还可以将不需要升级的提示信息进行反馈,比如:提示“当前版本为最新版本”。
在确定外部插件需要升级的情况下,则从第三方插件仓库中获取外部插件的升级包进行升级,对于第三方插件仓库,与前述实施例中所描述的获取外部插件的插件包的仓库相同,可以是Npm仓库,也可以是其他插件库。在升级时,同样的,执行升级包中的升级命令即可。
进一步地,在确定升级成功时,重启Electron应用程序,以及在重启时,对升级后的外部插件进行加载和初始化,并进行配置文件的同步。其中,重启时的外部插件的加载和初始化与安装外部插件后重启时的加载和初始化的实施方式相同。此外,外部插件的升级,在配置文件中的同步,由于配置文件中已有对应的外部插件,此时只需同步外部插件的版本信息即可。
在本申请实施例中,对于Electron应用程序中已经安装的外部插件,还可以进行升级,在升级时,对当前版本的插件进行检测,在需要升级时,才进行升级,使外部插件的升级更有效。
此外,在升级的过程中的各个执行结果,PC端也都可以输出对应的提示信息,比如:在升级的外部插件完成安装后,输出提示信息:升级完成,请重启。在重启完成加载和初始化后,输出提示信息:升级的外部插件加载完毕,欢迎使用。在本申请实施例中,仅作示例性的举例,在实际应用中,可以根据不同的应用程序进行灵活设置。
在本申请实施例中,安装、升级、卸载所对应的外部插件可以是同一个外部插件,即Electron应用程序中每个外部插件都可以经历从安装、到升级、再到卸载的过程。当然,安装、升级、卸载所对应的外部插件也可以是不同的外部插件,即Electron应用程序中每个外部插件都具备安装、升级和卸载的功能。
基于同一发明构思,请参照图3,本申请实施例中还提供第一插件应用装置300,与图1所示的Electron应用程序的插件应用方法对应,包括:第一获取模块301和第一加载模块302。
第一获取模块301用于在Electron应用程序启动时,通过读取所述Electron应用程序的配置文件,获取待加载的内部插件;第一加载模块302用于查找所述待加载的内部插件对应的目标文件;将所述目标文件的导出方法挂载到所述Electron应用程序的进程的插件操作对象上。
可选的,第一插件应用装置300还包括初始化模块,用于确定加载完成的内部插件中需要进行初始化的目标插件;对所述目标插件进行初始化。
可选的,第一插件应用装置300还包括插件安装模块,用于:接收外部插件的安装指令;从第三方插件仓库中获取所述外部插件的插件包;通过所述插件包在所述Electron应用程序中安装所述外部插件;在确定所述外部插件安装成功时,重启所述Electron应用程序;在所述Electron应用程序重启时,对所述外部插件进行加载和初始化,并将所述外部插件加入到所述Electron应用程序的配置文件中。
可选的,插件安装模块具体用于:通过执行所述插件包中的Npm命令在所述Electron应用程序中安装所述外部插件。
可选的,第一插件应用装置300还包括插件卸载模块,用于:接收外部插件的卸载指令;将所述外部插件从所述Electron应用程序中卸载;在确定所述外部插件卸载完成时,重启所述Electron应用程序;在所述Electron应用程序重启时,将所述外部插件从所述配置文件中删除。
可选的,第一插件应用装置300还包括插件升级模块,用于:接收外部插件的升级指令;判断所述外部插件是否需要升级;在确定所述外部插件需要升级时,从所述第三方插件仓库中获取所述外部插件的升级包;通过所述升级包在所述Electron应用程序中升级所述外部插件;在确定所述外部插件升级成功时,重启所述Electron应用程序;在所述Electron应用程序重启时,对升级后的外部插件进行加载和初始化,并将升级后的外部插件同步到所述配置文件中。
图3所示的第一插件应用装置300与图1所示的Electron应用程序的插件应用方法对应,通过前述对图1所示的Electron应用程序的插件应用方法的详细描述,本领域技术人员可以清楚地知道图3中的第一插件应用装置300的实施方法,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,请参照图4,为本申请实施例提供的第二插件应用装置400,与图2所示的Electron应用程序的插件应用方法对应,包括:接收模块401、第二获取模块402、安装模块403、重启模块404以及第二加载模块405。
接收模块401,用于接收外部插件的安装指令;第二获取模块402,用于从第三方插件仓库中获取外部插件的插件包;安装模块403,用于通过所述插件包在所述Electron应用程序中安装所述外部插件;重启模块404,用于在确定所述外部插件安装成功时,重启所述Electron应用程序;第二加载模块405,用于在所述Electron应用程序重启时,对所述外部插件进行加载和初始化,并将所述外部插件加入到所述Electron应用程序的配置文件中。
图4所示的第二插件应用装置400与图2所示的Electron应用程序的插件应用方法对应,通过前述对图2所示的外部插件的安装流程的详细描述,本领域技术人员可以清楚地知道图4中的第二插件应用装置400的实施方法,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,请参照图5,本申请实施例还提供一种电子设备500,前述实施例中所述的Electron应用程序的插件应用方法可应用于电子设备500。该电子设备500包括存储器501、处理器502以及第一插件应用装置300和/或第二插件应用装置400(由于不止一种实施方式,因此图5中未示出)。还可以包括:显示器503、输入输出模块504。该电子设备500可以是不同操作系统的PC端。
存储器501、处理器502、显示器503、输入输出模块504各元件之间直接或间接地电连接,以实现数据的传输或交互。例如,这些元件之间可以通过一条或多条通讯总线或信号总线实现电连接。第一插件应用装置300和/或第二插件应用装置400分别包括至少一个可以以软件或固件(firmware)的形式存储于存储器501中的软件功能模块,例如第一插件应用装置300包括的软件功能模块或计算机程序。
存储器501可以存储各种软件程序以及模块,如本申请实施例提供的Electron应用程序的插件应用方法及装置对应的程序指令/模块。处理器502通过运行存储在存储器501中的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现本申请实施例中的方法。此外,存储器501在处理器502运行程序的过程中,还可以存储目标文件、配置文件等数据。
存储器501可以包括但不限于RAM(Random Access Memory,随机存取存储器),ROM(Read Only Memory,只读存储器),PROM(Programmable Read-Only Memory,可编程只读存储器),EPROM(Erasable Programmable Read-Only Memory,可擦除只读存储器),EEPROM(Electric Erasable Programmable Read-Only Memory,电可擦除只读存储器)等。
处理器502可以是一种集成电路芯片,具有信号处理能力。处理器502可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
显示器503在电子设备500与用户之间提供一个交互界面(例如用户操作界面)或用于显示处理过程中产生的结果给用户参考。在本申请实施例中,显示器503可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器502进行计算和处理;比如将用户对外部插件或者内部插件的选择操作交由处理器502进行计算和处理。再比如,在本申请实施例中,显示器503可以用于显示在插件的应用过程中输出的提示信息。
输入输出模块504用于提供给用户输入数据实现用户与电子设备500的交互。输入输出模块504可以是,但不限于,鼠标和键盘等。例如,用户通过输入输出模块504输入指令,或者输入个人信息等。
可以理解,图5所示的结构仅为示意,电子设备500还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。
基于同一发明构思,本申请实施例还提供了一种可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被计算机运行时执行上述任一实施方式的Electron应用程序的插件应用方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种Electron应用程序的插件应用方法,其特征在于,包括:
在Electron应用程序启动时,通过读取所述Electron应用程序的配置文件,获取待加载的内部插件;
查找所述待加载的内部插件对应的目标文件;
将所述目标文件的导出方法挂载到所述Electron应用程序的进程的插件操作对象上。
2.根据权利要求1所述的方法,其特征在于,所述Electron应用程序的进程包括主进程和渲染进程。
3.根据权利要求1所述的方法,其特征在于,在所述将所述目标文件的导出方法挂载到所述Electron应用程序的进程的插件操作对象上后,所述方法还包括:
确定加载完成的内部插件中需要进行初始化的目标插件;
对所述目标插件进行初始化。
4.根据权利要求1所述的方法,其特征在于,在所述将所述目标文件的导出的方法挂载到所述Electron应用程序的进程的插件操作对象上后,所述方法还包括:
接收外部插件的安装指令;
从第三方插件仓库中获取所述外部插件的插件包;
通过所述插件包在所述Electron应用程序中安装所述外部插件;
在确定所述外部插件安装成功时,重启所述Electron应用程序;
在所述Electron应用程序重启时,对所述外部插件进行加载和初始化,并将所述外部插件加入到所述Electron应用程序的配置文件中。
5.根据权利要求4所述的方法,其特征在于,所述第三方插件仓库为Npm仓库,所述通过所述插件包在所述Electron应用程序中安装所述外部插件,包括:
通过执行所述插件包中的Npm命令在所述Electron应用程序中安装所述外部插件。
6.根据权利要求1所述的方法,其特征在于,在所述将所述目标文件的导出的方法挂载到所述Electron应用程序的进程的插件操作对象上后,所述方法还包括:
接收外部插件的卸载指令;
将所述外部插件从所述Electron应用程序中卸载;
在确定所述外部插件卸载完成时,重启所述Electron应用程序;
在所述Electron应用程序重启时,将所述外部插件从所述配置文件中删除。
7.根据权利要求1所述的方法,其特征在于,在所述将所述目标文件的导出的方法挂载到所述Electron应用程序的进程的插件操作对象上后,所述方法还包括:
接收外部插件的升级指令;
判断所述外部插件是否需要升级;
在确定所述外部插件需要升级时,从第三方插件仓库中获取所述外部插件的升级包;
通过所述升级包在所述Electron应用程序中升级所述外部插件;
在确定所述外部插件升级成功时,重启所述Electron应用程序;
在所述Electron应用程序重启时,对升级后的外部插件进行加载和初始化,并将升级后的外部插件同步到所述配置文件中。
8.一种Electron应用程序的插件应用方法,其特征在于,包括:
接收外部插件的安装指令;
从第三方插件仓库中获取外部插件的插件包;
通过所述插件包在所述Electron应用程序中安装所述外部插件;
在确定所述外部插件安装成功时,重启所述Electron应用程序;
在所述Electron应用程序重启时,对所述外部插件进行加载和初始化,并将所述外部插件加入到所述Electron应用程序的配置文件中。
9.一种Electron应用程序的插件应用装置,其特征在于,包括:
获取模块,用于在Electron应用程序启动时,通过读取所述Electron应用程序的配置文件,获取待加载的内部插件;
加载模块,用于查找所述待加载的内部插件对应的目标文件;将所述目标文件的导出方法挂载到所述Electron应用程序的进程的插件操作对象上。
10.一种Electron应用程序的插件应用装置,其特征在于,包括:
接收模块,用于接收外部插件的安装指令;
获取模块,用于从第三方插件仓库中获取外部插件的插件包;
安装模块,用于通过所述插件包在所述Electron应用程序中安装所述外部插件;
重启模块,用于在确定所述外部插件安装成功时,重启所述Electron应用程序;
加载模块,用于在所述Electron应用程序重启时,对所述外部插件进行加载和初始化,并将所述外部插件加入到所述Electron应用程序的配置文件中。
11.一种电子设备,其特征在于,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行如权利要求1-8中任一项所述的方法。
12.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时执行如权利要求1-8任一项所述的方法。
CN202011290908.2A 2020-11-17 2020-11-17 Electron应用程序的插件应用方法及装置、存储介质 Pending CN112379943A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011290908.2A CN112379943A (zh) 2020-11-17 2020-11-17 Electron应用程序的插件应用方法及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011290908.2A CN112379943A (zh) 2020-11-17 2020-11-17 Electron应用程序的插件应用方法及装置、存储介质

Publications (1)

Publication Number Publication Date
CN112379943A true CN112379943A (zh) 2021-02-19

Family

ID=74584125

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011290908.2A Pending CN112379943A (zh) 2020-11-17 2020-11-17 Electron应用程序的插件应用方法及装置、存储介质

Country Status (1)

Country Link
CN (1) CN112379943A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115150270A (zh) * 2022-06-22 2022-10-04 北京天融信网络安全技术有限公司 设备监控项的管理方法、待升级设备及监控服务器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634751A (zh) * 2018-10-19 2019-04-16 深圳市网旭科技有限公司 一种利用electron框架实现应用层和底层通信的方法
CN110557507A (zh) * 2019-09-05 2019-12-10 曙光信息产业(北京)有限公司 文件传输方法、装置及电子设备
CN111857765A (zh) * 2020-06-16 2020-10-30 深圳晶泰科技有限公司 用于药物设计系统的插件系统及其生成方法和更新方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634751A (zh) * 2018-10-19 2019-04-16 深圳市网旭科技有限公司 一种利用electron框架实现应用层和底层通信的方法
CN110557507A (zh) * 2019-09-05 2019-12-10 曙光信息产业(北京)有限公司 文件传输方法、装置及电子设备
CN111857765A (zh) * 2020-06-16 2020-10-30 深圳晶泰科技有限公司 用于药物设计系统的插件系统及其生成方法和更新方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MARKSZのBLOG: "Electron-vue开发实战", ELECTRON-VUE开发实战, pages 1 - 23 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115150270A (zh) * 2022-06-22 2022-10-04 北京天融信网络安全技术有限公司 设备监控项的管理方法、待升级设备及监控服务器

Similar Documents

Publication Publication Date Title
CN108847950B (zh) 电子装置、云系统软件自动部署方法及存储介质
CN109062617B (zh) 一种支持多类型设备的平台的应用方法、移动终端
CN107451474B (zh) 用于终端的软件漏洞修复方法和装置
CN111427596B (zh) 一种软件升级的方法、装置及终端设备
JP2021002317A (ja) アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体
CN107291481B (zh) 一种组件更新方法、装置和系统
CN108540509B (zh) 一种终端浏览器的处理方法、装置及服务器、智能终端
CN109522500B (zh) 网页显示方法、装置、终端和存储介质
CN110457049B (zh) 实现插件自动化的方法、装置、电子设备及存储介质
CN108920691B (zh) 前端静态资源的管理方法、装置、计算机设备及存储介质
CN106843947B (zh) 代码缺陷的处理方法和装置
CN109117153B (zh) 应用程序的处理方法、装置、终端和存储介质
CN112486552A (zh) 服务器热更新方法、装置、设备和存储介质
CN110750280B (zh) 一种基于Android平台的应用升级方法及系统、存储介质
CN112130926A (zh) 应用程序运行的方法、装置、终端设备及存储介质
CN114385251A (zh) 基于存储器的操作系统引导方法、系统、终端及存储介质
CN106293790B (zh) 基于Firefox操作系统的应用程序升级方法和装置
CN112379943A (zh) Electron应用程序的插件应用方法及装置、存储介质
CN113867768A (zh) 操作系统处理方法、装置、电子设备及存储介质
CN111400091B (zh) 恢复出厂设置方法、恢复出厂设置装置及移动终端
CN116303099B (zh) 自动化测试环境跨平台快速部署方法、装置、介质及设备
CN111782236A (zh) 系统软件升级方法、装置、存储介质及一体机设备
CN110489138B (zh) 一种应用更新方法、装置和存储介质
US20230065440A1 (en) Method and apparatus for managing application
CN111736863A (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