CN107066295A - 一种基于浏览器加载终端网络应用的插件的方法及设备 - Google Patents

一种基于浏览器加载终端网络应用的插件的方法及设备 Download PDF

Info

Publication number
CN107066295A
CN107066295A CN201710203890.XA CN201710203890A CN107066295A CN 107066295 A CN107066295 A CN 107066295A CN 201710203890 A CN201710203890 A CN 201710203890A CN 107066295 A CN107066295 A CN 107066295A
Authority
CN
China
Prior art keywords
plug
browser
target plug
network application
load
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
Application number
CN201710203890.XA
Other languages
English (en)
Other versions
CN107066295B (zh
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.)
Vidaa Netherlands International Holdings BV
Original Assignee
Qingdao Hisense Electronics 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 Qingdao Hisense Electronics Co Ltd filed Critical Qingdao Hisense Electronics Co Ltd
Priority to CN201710203890.XA priority Critical patent/CN107066295B/zh
Publication of CN107066295A publication Critical patent/CN107066295A/zh
Application granted granted Critical
Publication of CN107066295B publication Critical patent/CN107066295B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及计算机技术领域,特别涉及一种基于浏览器加载终端网络应用的插件的方法及设备,用以解决浏览器只能在引擎启动时加载终端中的网络应用所需的全部插件,占用内存并且影响浏览器启动和运行速度的问题。该方法包括:终端中的浏览器在启动后通过浏览器的引擎仅加载基础插件;在网络应用启动后,若确定需要加载网络应用的至少一个目标插件,则通过基础插件的扩展接口获取目标插件的描述符和函数调用地址,以加载目标插件。由于能够在启动后仅加载基础差价,并能够在网络应用启动后通过基础插件进行目标插件的加载,因此不再需要在浏览器的引擎启动时加载全部的网络应用的全部插件,从而节省了内存并且有利于提高浏览器的启动速度和运行速度。

Description

一种基于浏览器加载终端网络应用的插件的方法及设备
技术领域
本发明涉及计算机技术领域,特别涉及一种基于浏览器加载终端网络应用的插件的方法及设备。
背景技术
智能电视、智能手机、PC(Personal Computer,个人电脑)设备以及平板电脑等终端通过访问网络,能够为用户提供更加丰富的浏览体验。例如智能电视通过访问网络能够使用户体验更加丰富多彩的电视节目,从而给用户带来极好的观影体验。由于搭载了操作系统,用户在通过智能电视等终端进行网络浏览时能够自行安装和卸载各类网络应用,用以持续对终端的功能进行扩充和升级。
其中,终端中的大部分网络应用的网络功能需要通过终端的浏览器实现。但是,由于浏览器自身所能实现的功能有限,往往不能够满足终端安装的全部网络应用的网络功能的需求,因此终端的浏览器通过加载插件(Plugin)来扩展自身所能实现的功能,例如,通过Javascript(Javascript脚本语言)插件获取终端的型号、调用终端底层的底层功能等。如图1所示,目前终端中浏览器默认的插件加载方式包括以下步骤:步骤101:终端中的浏览器开始启动;步骤102:浏览器根据配置文件确定终端中的网络应用需要借助浏览器实现网络功能所需的全部插件;步骤103:浏览器加载网络应用需要借助浏览器实现网络功能所需的全部插件。因此,目前浏览器只能在启动时加载插件。
为满足用户的体验需求,终端中需要浏览器加载的插件的数量和种类在不断增加,而只能在终端的浏览器启动时进行插件加载的方式不够灵活有效,不能满足灵活多变的网络应用对于插件加载方式的需求,例如,现有技术中的浏览器只能在终端的浏览器启动时加载网络应用所需的全部插件,但并不是全部的插件都会被用到,加载过多的插件反而会浪费系统内存并影响浏览器的启动和运行速度。
综上,现有技术中浏览器只能在引擎启动时加载终端中的网络应用所需的全部插件,加载的过多的插件造成内存的浪费以及造成浏览器的启动速度和运行速度的降低。
发明内容
本发明提供一种基于浏览器加载终端网络应用的插件的方法及设备,用以解决现有技术中存在的浏览器只能在引擎启动时加载终端中的网络应用所需的全部插件,加载的过多的插件造成内存的浪费以及造成浏览器的启动速度和运行速度的降低的问题。
本发明提供的一种基于浏览器加载终端网络应用的插件的方法,包括:
终端中的浏览器在启动后通过浏览器的引擎仅加载基础插件;
在网络应用启动后,若确定需要加载网络应用的至少一个目标插件,则通过基础插件的扩展接口获取目标插件的描述符和函数调用地址,以加载目标插件。
可选地,浏览器根据下列方式判断是否需要加载网络应用的至少一个目标插件:
浏览器在收到网络应用发送的目标插件加载请求后,确定需要加载网络应用的至少一个目标插件;和/或
浏览器在确定启动的网络应用属于预设的需要加载目标插件的网络应用集合后,确定需要加载网络应用的至少一个目标插件。
可选地,浏览器通过基础插件的扩展接口获取目标插件的描述符和函数调用地址,包括:
浏览器通过基础插件的扩展接口从动态连接库中获取目标插件的描述符和函数调用地址。
可选地,浏览器通过基础插件的扩展接口从动态连接库中获取目标插件的描述符和函数调用地址之前,还包括:
浏览器根据网络应用发送的目标插件加载请求确定目标插件对应的动态连接库;或
浏览器根据目标插件与动态连接库的对应关系确定目标插件对应的动态连接库。
可选地,浏览器通过基础插件的扩展接口获取目标插件的描述符和函数调用地址之后,还包括:
浏览器在确定收到网络应用发送的目标插件执行请求后,根据获取的描述符和函数调用地址,从所有函数调用地址中确定目标插件执行请求中的描述符对应的函数调用地址;
浏览器根据调用地址调用函数。
本发明提供的一种基于浏览器加载终端网络应用的插件的设备,包括:
基础插件加载模块,用于在终端中的浏览器启动后通过浏览器的引擎仅加载基础插件;
目标插件加载模块,用于在网络应用启动后,若确定需要加载网络应用的至少一个目标插件,则通过基础插件的扩展接口获取目标插件的描述符和函数调用地址,以加载目标插件。
可选地,目标插件加载模块具体用于,根据下列方式判断是否需要加载网络应用的至少一个目标插件:
在收到网络应用发送的目标插件加载请求后,确定需要加载网络应用的至少一个目标插件;和/或
在确定启动的网络应用属于预设的需要加载目标插件的网络应用集合后,确定需要加载网络应用的至少一个目标插件。
可选地,目标插件加载模块具体用于:
通过基础插件的扩展接口从动态连接库中获取目标插件的描述符和函数调用地址。
可选地,目标插件加载模块还用于:
在通过基础插件的扩展接口获取目标插件的描述符和函数调用地址之前,根据网络应用发送的目标插件加载请求确定目标插件对应的动态连接库;或
在通过基础插件的扩展接口获取目标插件的描述符和函数调用地址之前,根据目标插件与动态连接库的对应关系确定目标插件对应的动态连接库。
可选地,目标插件加载模块还用于:
在通过基础插件的扩展接口获取目标插件的描述符和函数调用地址之后,在确定收到网络应用发送的目标插件执行请求后,根据获取的描述符和函数调用地址,从所有函数调用地址中确定目标插件执行请求中的描述符对应的函数调用地址;
根据调用地址调用函数。
根据本发明实施例提供的基于浏览器加载终端网络应用的插件的方法,终端中的浏览器在启动后仅加载基础插件,在确定网络应用启动后,若确定需要加载该网络应用的至少一个目标插件,则通过基础插件的扩展接口获取目标插件的描述符和函数调用地址,以加载目标插件,因此本发明提供了更为灵活的插件加载方法,在启动浏览器时加载基础插件并且可以不加载目标插件,而在浏览器启动后通过基础插件加载需要用到的目标插件,从而节省了浏览器的内存和提高了浏览器的启动速度和运行速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为终端的浏览器默认的进行插件加载的方法的步骤示意图;
图2为本发明实施例提供的一种基于浏览器加载终端网络应用的插件的方法的步骤示意图;
图3为本发明实施例提供的插件之间的树形关联关系示意图;
图4为本发明实施例提供的一种基于浏览器加载终端网络应用的插件的方法的具体流程图;
图5为本发明实施例提供的一种基于浏览器加载终端网络应用的插件的设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
以图2说明本发明实施例中基于浏览器加载终端网络应用的插件的方法,该方法包括以下步骤:
步骤201:终端中的浏览器在启动后通过浏览器的引擎仅加载基础插件;
步骤202:在网络应用启动后,若确定需要加载网络应用的至少一个目标插件,则通过基础插件的扩展接口获取目标插件的描述符和函数调用地址,以加载目标插件。
本发明实施例中,智能电视等终端中的浏览器在引擎启动后,只加载基础插件;在网络应用启动后,若浏览器判断需要加载网络应用用于实现特定网络功能的至少一个目标插件,则浏览器通过已经加载的基础插件的扩展接口获取目标插件的描述符和函数调用地址,进而加载需要加载的至少一个目标插件。由于浏览器能够在启动后金价在基础插件,而在判断需要加载网络应用的至少一个目标插件后通过基础插件进行目标插件的加载,实现了插件的灵活加载,因此不再需要在浏览器的引擎启动时加载全部的网络应用的全部插件,减少了浏览器启动过程中需要加载的插件数量,从而节省了内存并且有利于提高浏览器的启动速度和运行速度。其中,目标插件的函数调用地址可以是目标插件的函数指针。
本发明实施例中的浏览器可以是智能电视中的浏览器,也可以是智能手机PC设备或者平板电脑等其他终端中的浏览器。
本发明实施例中网络应用的特定网络功能是指网络应用需要借助浏览器加载的插件实现的网络功能,其中,特定网络功能是浏览器自身不具备的网络功能,需要浏览器通过加载的插件来实现。例如,获取智能电视平台信息(例如获取智能平台型号信息)和调用智能电视的底层功能(例如对智能电视系统进行配置信息的写入)均需要通过浏览器来实现,而这些网络功能并不是浏览器自身所具备的功能,因此是特定网络功能。浏览器通过加载的插件可以实现特定网络功能,例如,浏览器通过Javascript插件A实现获取智能电视平台信息和通过Javascript插件A实现改写智能电视的配置信息。
本发明实施例中,目标插件是指已经启动的网络应用实现特定网络功能时需要浏览器加载的插件,其中网络应用可以是终端中安装的能够实现特定网络功能的业务,例如网络应用可以是能够进行终端的配置信息改写的管理网络应用,也可以是用于进行终端的平台型号等信息获取的视频网络应用。例如,网络应用A借助浏览器加载的插件A来实现获取智能电视平台信息的功能,则网络应用A的目标插件为插件A。另外,需要说明的是,一个网络应用能够实现的特定网络功能可能有一个或者多个,因此,同一个网络应用可以具备一个或者多个目标插件。
在网络应用启动时,网络应用能够确定需要浏览器加载的目标插件的信息,并向浏览器发出针对目标插件的加载请求,例如,网络应用A在启动时确定需要借助浏览器加载的插件A来实现获取智能电视平台信息的功能,则网络应用A在启动时会向浏览器发送针对目标插件A的加载请求。另外,若网络应用确定需要浏览器加载多个目标插件,则网络应用能够针对每一个目标插件向浏览器发送加载请求,或通过同一个加载请求向浏览器请求加载多个目标插件。
其中,目标插件是在运行过程中进行加载的函数库。浏览器可以在引擎启动后通过基础插件加载目标插件。其中函数库中包含目标插件实现特定功能的函数,在实现特定网络功能时需要调用函数库中的函数。
本发明实施例中,基础插件是浏览器在引擎启动时加载的插件,用于进行接口的扩展,并通过扩展的接口加载目标插件。其中,浏览器可以按照标准Javascript插件的配置信息加载基准插件。例如,可以是标准的Javascript插件,用于进行Javascript Api(接口)的扩展,并在需要加载目标插件时,通过扩展的Javascript Api加载目标插件。
本发明实施例中,在获取目标插件的描述符和函数调用地址时,浏览器需要通过基础插件调用基础插件的扩展接口,进而通过扩展接口获取目标插件的描述符和函数调用地址。由于浏览器使用基础插件的扩展接口获取目标插件的描述符和函数调用地址,并且基础插件是在浏览器的引擎启动时就加载好的,因此在需要加载目标插件时浏览器能够通过基础插件的扩展接口实现目标插件的加载。
其中,插件对应的描述符是用于描述插件的描述信息,例如可以是描述插件所实现功能的描述信息,描述符与函数具有对应关系,例如,插件A对应的描述符A与插件A的函数A之间具有对应关系。插件的函数的调用地址是指调用插件所包含的函数需要访问的地址,调用地址可以是函数的指针。
由于浏览器需要调用目标插件的函数来实现网络应用的特定网络功能,因此,在加载目标插件时,浏览器需要通过基础插件获取并存储目标插件对应的函数的调用地址。例如,浏览器通过基础插件的扩展接口获取目标插件A的描述符A和函数调用地址A,在收到网络应用发送的包含描述符A的目标插件执行请求后,根据描述符A确定函数调用地址A为需要调用的目标插件A的调用地址,进而能够实现对目标插件A的函数的调用。
可选地,浏览器根据下列方式判断是否需要加载网络应用的至少一个目标插件:浏览器在收到网络应用发送的目标插件加载请求后,确定需要加载网络应用的至少一个目标插件;和/或浏览器在确定启动的网络应用属于预设的需要加载目标插件的网络应用集合后,确定需要加载网络应用的至少一个目标插件。
本发明实施例中,浏览器可以通过多种方式判断是否需要加载网络应用的目标插件,下面举例两种:
方式一:浏览器在收到网络应用发送的目标插件加载请求后,根据目标插件加载请求确定需要加载目标插件。
具体来说,智能电视等终端中的网络应用能够确定自身需要加载的目标插件,网络应用在启动时,向浏览器发送针对目标插件的目标插件加载请求,浏览器在确定收到目标插件加载请求后,确定需要加载目标插件加载请求对应的目标插件。
例如,网络应用A在确定需要请求浏览器加载插件A以实现获取智能电视平台信息的功能,则网络应用A在启动时向浏览器发送加载插件A的目标插件加载请求,浏览器在收到该目标插件加载请求后,确定需要加载插件A。
方式二:浏览器在确定网络应用正在启动后,可以根据已知的网络应用与目标插件的对应关系,判断能否确定正在启动的网络应用对应的目标插件,若能,则强调需要加载目标插件。
具体来说,智能电视等终端中的浏览器可以获取网络应用与目标插件的对应关系表,例如表1所示。例如,浏览器可以根据预设的网络应用与目标插件的对应关系获取网络应用与目标插件的对应关系表,浏览器也可以根据终端在安装网络应用时建立的网络应用与目标插件的对应关系建立网络应用与目标插件的对应关系表。
表1
在根据设备进程等确定正在启动的网络应用后,浏览器根据网络应用与目标插件的对应关系表判断能否确定正在启动的网络应用对应的目标插件,若浏览器根据网络应用与目标插件的对应关系表能够确定正在启动的网络应用对应的目标插件,则浏览器确定需要加载目标插件;否则,浏览器确定不需要加载目标插件。
例如,浏览器确定网络应用B在启动,根据表1,浏览器能够确定网络应用B对应的目标插件为插件B,则浏览器确定需要加载插件B。
网络应用能够确定自身需要加载的目标插件,之后在网络应用启动时,网络应用向浏览器发送针对目标插件的目标插件加载请求,浏览器在确定收到目标插件加载请求后,确定需要加载目标插件加载请求对应的目标插件。
本发明实施例中,若浏览器在网络应用启动后收到网络应用发送的目标插件加载请求,则浏览器可以不再根据网络应用与目标插件的对应关系确定该网络应用对应的目标插件,直接根据目标插件加载请求确定需要加载的插件即可。
另外,若浏览器在网络应用启动后没有收到网络应用发送的目标插件加载请求,并且浏览器无法根据网络应用与目标插件的对应关系确定该网络应用对应的目标插件,则浏览器放弃加载该网络应用对应的目标插件。
可选地,浏览器通过基础插件的扩展接口获取目标插件的描述符和函数调用地址,包括:浏览器通过基础插件的扩展接口从动态连接库中获取目标插件的描述符和函数调用地址。
由于网络应用需要借助浏览器加载的目标插件实现特定的网络功能,其中,网络应用向浏览器发送包含描述符的目标插件调用请求,以使浏览器根据描述符确定插件对应的函数的调用地址,进而调用相应的函数,因此浏览器需要通过基础插件获取至少一个目标插件对应的描述符与函数的调用地址的对应关系。
浏览器可以通过基础插件的扩展接口从动态连接库中获取目标插件的描述符和函数调用地址。
其中,本发明实施例中的动态连接库是存储目标插件的描述符以及目标插件的函数调用地址的函数库,其中动态连接库存储的插件的描述符与调用地址相对应。根据动态连接库的动态加载原理,在调用插件函数时,根据动态连接库获取函数的调用地址能够实现插件的动态加载。
在本发明实施例中,可以根据动态连接库文件名通过dlopen函数打开动态连接库,之后通过dlsym等函数对动态连接库中的函数的调用地址进行操作。
动态连接库的文件名是插件的动态连接库所具有的文件名称。在智能电视等终端中,根据插件的动态连接库的文件名可以打开对应的动态连接库并对动态连接库中的存储的函数或者地址进行操作。例如,动态连接库的文件名可以是后缀为.dll的文件名,网络应用在向浏览器请求加载目标插件时可以在目标插件加载请求中携带需要加载的插件对应的后缀为.dll的链接库文件名,浏览器根据后缀为.dll的链接库文件名可以查找到目标插件对应的动态连接库。
具体来说,可以通过dlopen函数根据后缀为.dll的链接库文件名打开目标插件的动态连接库,并通过dlsym函数获取动态连接库中插件对应的函数调用地址,以及在获取函数调用地址后,通过dlclose函数卸载已打开的动态连接库以释放内存。
可选地,浏览器通过基础插件的扩展接口从动态连接库中获取目标插件的描述符和函数调用地址之前,还包括:浏览器根据网络应用发送的目标插件加载请求确定目标插件对应的动态连接库;或浏览器根据目标插件与动态连接库的对应关系,确定目标插件对应的动态连接库。
本发明实施例中,浏览器在通过基础插件的扩展接口从动态连接库中获取目标插件的描述符和函数调用地址之前,还需要确定目标插件对应的动态连接库。其中,浏览器可以根据网络应用发送的目标插件加载请求确定目标插件对应的动态连接库;浏览器也可以根据目标插件与动态连接库的对应关系确定目标插件对应的动态连接库。
下面分别说明浏览器确定目标插件对应的动态连接库的两种方式:
方式一,浏览器根据目标插件加载请求中的信息确定目标插件对应的动态连接库。例如,网络应用发送的目标插件加载请求中可以携带目标插件对应的动态链接库文件名,由于动态链接库文件名与动态链接库之间具有对应关系,因此浏览器可以根据目标插件加载请求中携带的动态链接库文件名确定目标插件对应的动态链接库。
方式二,浏览器根据目标插件与动态连接库的对应关系确定目标插件对应的动态连接库。浏览器在确定需要加载的目标插件后,可以根据预设的或者安装网络应用时存储的目标插件与动态链接库的对应关系确定需要加载的目标插件的动态连接库。
浏览器可以预先存储目标插件与动态链接库的对应关系表,或者在安装网络应用时存储网络应用所需的目标插件与动态链接库的对应关系表。目标插件与动态链接库的对应关系表如表2所示,在确定需要加载的目标插件后,可以根据目标插件与动态链接库的对应关系表确定目标插件对应的动态链接库。
表2
例如,在确定需要加载的目标插件为插件C后,根据目标插件与动态链接库的对应关系表确定插件C对应的动态链接库为动态连接库C,之后可以从动态连接库C中获取目标插件的描述符和函数调用地址。
可选地,在获取浏览器通过基础插件获取描述符与函数的调用地址的对应关系之后,存储描述符与函数的调用地址的对应关系。
本发明实施例中,在获取描述符与函数的调用地址的对应关系之后,将描述符与函数的调用地址的对应关系进行存储,以方便在需要调用插件的函数时快速进行函数调用地址的查找,例如可以存储为描述符与函数的调用地址的对应关系表,例如表3所示。
目标插件的描述符 调用地址
1、描述符A 1、调用地址A
2、描述符B 2、调用地址B
3、描述符C 3、调用地址C
4、描述符D 4、调用地址D
…… ……
表3
本发明实施例中,如图3所示,智能电视等终端中的插件之间可能存在树形关联,例如,在通过基础插件301加载插件AA303时需要通过插件A302,则在获取插件AA303的描述符与调用地址的对应关系时还需要确定插件A302的与描述符与调用地址的对应关系,进而在调用插件AA303时能够先进行插件A302的函数的调用,再进行插件AA303的函数的调用,从而实现对插件AA303的调用。
本发明实施例中,可以通过Map容器建立描述符与函数的调用地址的对应关系,例如,将插件的描述符作为Map容器的Key(关键字)以及将调用地址作为Map的Value(值),在存储进行树形关联插件的描述符与函数的调用地址的对应关系时,能够根据Map容器形成描述符与调用地址之间的红黑树(Red Black Tree)对应关系,在需要查找调用地址时能够根据描述符进行调用地址的查询。
可选地,浏览器在确定收到网络应用发送的目标插件执行请求后,根据获取的描述符和函数调用地址,从所有函数调用地址中确定目标插件执行请求中的描述符对应的函数调用地址;浏览器根据调用地址调用函数。
本发明实施例中,浏览器在收到网络应用发送的目标插件执行请求后,能够根据根据获取的描述符和函数调用地址,从所有函数调用地址中确定网络应用发送的目标插件执行请求中的描述符对应的函数的调用地址;在确定函数的调用地址后,浏览器可以根据调用地址调用函数。其中,目标插件执行请求是网络应用在需要调用浏览器加载的插件以实现特定网络功能时向浏览器发送的请求,目标插件执行请求包括网络应用请求调用的插件对应的描述符。
在收到目标插件执行请求后,浏览器可以根据目标插件执行请求中的描述符从获取的全部插件的函数调用地址中确定目标插件执行请求对应的函数的调用地址,例如,浏览器在读取描述符与函数的调用地址的对应关系后,存储如表3所示的描述符与函数的调用地址的对应关系表,若浏览器收到的目标插件执行请求中包含描述符A,则浏览器可以根据目标插件执行请求中的描述符通过查询表3确定描述符A对应的函数的调用地址为调用地址A,进而浏览器能够根据调用地址A进行插件的调用。
图4为本发明实施例提供的一种基于浏览器加载终端网络应用的插件的方法的步骤示意图,该方法包括以下步骤:
步骤401:浏览器开始启动;
步骤402:浏览器引擎加载基础插件;
步骤403:在网络应用启动后,浏览器判断是否需要加载网络应用的目标插件,若是,则执行步骤404,否则执行步骤405;
步骤404:浏览器确定需要加载的目标插件的动态连接库,之后执行步骤406;
步骤405:浏览器确定不需要加载插件,之后结束本流程;
步骤406:浏览器读取目标插件的动态连接库中的描述符与函数的调用地址;
步骤407:浏览器建立描述符与函数的调用地址的对应关系表;
步骤408:在收到网络应用发送的目标插件执行请求后,浏览器根据建立的描述符与函数的调用地址的对应关系表,从所有函数的调用地址中确定目标插件执行请求中的描述符对应的函数的调用地址;
步骤409:浏览器根据调用地址调用函数。
基于同一发明构思,本发现实施例还提供了一种基于浏览器加载终端网络应用的插件的设备,由于该设备解决问题的原理与本发明实施例提供的进行插件加载的方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
如图5所示,本发明实施例提供的一种基于浏览器加载终端网络应用的插件的设备,包括基础插件加载模块501以及目标插件加载模块502:
基础插件加载模块501,用于在终端中的浏览器启动后通过浏览器的引擎仅加载基础插件;
目标插件加载模块502,用于在网络应用启动后,若确定需要加载网络应用的至少一个目标插件,则通过基础插件的扩展接口获取目标插件的描述符和函数调用地址,以加载目标插件。
可选地,目标插件加载模块502具体用于:
根据下列方式判断是否需要加载网络应用的至少一个目标插件:
在收到网络应用发送的目标插件加载请求后,确定需要加载网络应用的至少一个目标插件;和/或
在确定启动的网络应用属于预设的需要加载目标插件的网络应用集合后,确定需要加载网络应用的至少一个目标插件。
可选地,目标插件加载模块502具体用于:
通过基础插件的扩展接口从动态连接库中获取目标插件的描述符和函数调用地址。
可选地,目标插件加载模块502还用于:
在通过基础插件的扩展接口获取目标插件的描述符和函数调用地址之前,根据网络应用发送的目标插件加载请求确定目标插件对应的动态连接库;或
在通过基础插件的扩展接口获取目标插件的描述符和函数调用地址之前,根据目标插件与动态连接库的对应关系确定目标插件对应的动态连接库。
可选地,目标插件加载模块502还用于:
在通过基础插件的扩展接口获取目标插件的描述符和函数调用地址之后,在确定收到网络应用发送的目标插件执行请求后,根据获取的描述符和函数调用地址,从所有函数调用地址中确定目标插件执行请求中的描述符对应的函数调用地址;
根据调用地址调用函数。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种基于浏览器加载终端网络应用的插件的方法,其特征在于,该方法包括:
终端中的浏览器在启动后通过所述浏览器的引擎仅加载基础插件;
在所述网络应用启动后,若确定需要加载所述网络应用的至少一个目标插件,则通过所述基础插件的扩展接口获取所述目标插件的描述符和函数调用地址,以加载所述目标插件。
2.如权利要求1所述的方法,其特征在于,所述浏览器根据下列方式判断是否需要加载所述网络应用的至少一个目标插件:
所述浏览器在收到网络应用发送的目标插件加载请求后,确定需要加载所述网络应用的至少一个目标插件;和/或
所述浏览器在确定启动的网络应用属于预设的需要加载目标插件的网络应用集合后,确定需要加载所述网络应用的至少一个目标插件。
3.如权利要求1所述的方法,其特征在于,所述浏览器通过所述基础插件的扩展接口获取所述目标插件的描述符和函数调用地址,包括:
所述浏览器通过所述基础插件的扩展接口从动态连接库中获取所述目标插件的描述符和函数调用地址。
4.如权利要求3所述的方法,其特征在于,所述浏览器通过所述基础插件的扩展接口从动态连接库中获取所述目标插件的描述符和函数调用地址之前,还包括:
所述浏览器根据网络应用发送的目标插件加载请求确定所述目标插件对应的动态连接库;或
所述浏览器根据目标插件与动态连接库的对应关系确定所述目标插件对应的动态连接库。
5.如权利要求3所述的方法,其特征在于,所述浏览器通过所述基础插件的扩展接口获取所述目标插件的描述符和函数调用地址之后,还包括:
所述浏览器在确定收到所述网络应用发送的目标插件执行请求后,根据所述获取的描述符和函数调用地址,从所有函数调用地址中确定所述目标插件执行请求中的描述符对应的函数调用地址;
所述浏览器根据所述调用地址调用所述函数。
6.一种基于浏览器加载终端网络应用的插件的设备,其特征在于,该设备包括:
基础插件加载模块,用于在终端中的浏览器启动后通过所述浏览器的引擎仅加载基础插件;
目标插件加载模块,用于在网络应用启动后,若确定需要加载所述网络应用的至少一个目标插件,则通过所述基础插件的扩展接口获取所述目标插件的描述符和函数调用地址,以加载所述目标插件。
7.如权利要求6所述的设备,其特征在于,所述目标插件加载模块具体用于,根据下列方式判断是否需要加载所述网络应用的至少一个目标插件:
在收到网络应用发送的目标插件加载请求后,确定需要加载所述网络应用的至少一个目标插件;和/或
在确定启动的网络应用属于预设的需要加载目标插件的网络应用集合后,确定需要加载所述网络应用的至少一个目标插件。
8.如权利要求6所述的设备,其特征在于,所述目标插件加载模块具体用于:
通过所述基础插件的扩展接口从动态连接库中获取所述目标插件的描述符和函数调用地址。
9.如权利要求8所述的设备,其特征在于,所述目标插件加载模块还用于:
在通过所述基础插件的扩展接口获取所述目标插件的描述符和函数调用地址之前,根据网络应用发送的目标插件加载请求确定所述目标插件对应的动态连接库;或
在通过所述基础插件的扩展接口获取所述目标插件的描述符和函数调用地址之前,根据目标插件与动态连接库的对应关系确定所述目标插件对应的动态连接库。
10.如权利要求8所述的设备,其特征在于,所述目标插件加载模块还用于:
在通过所述基础插件的扩展接口获取所述目标插件的描述符和函数调用地址之后,在确定收到所述网络应用发送的目标插件执行请求后,根据所述获取的描述符和函数调用地址,从所有函数调用地址中确定所述目标插件执行请求中的描述符对应的函数调用地址;
根据所述调用地址调用所述函数。
CN201710203890.XA 2017-03-30 2017-03-30 一种基于浏览器加载终端网络应用的插件的方法及设备 Active CN107066295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710203890.XA CN107066295B (zh) 2017-03-30 2017-03-30 一种基于浏览器加载终端网络应用的插件的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710203890.XA CN107066295B (zh) 2017-03-30 2017-03-30 一种基于浏览器加载终端网络应用的插件的方法及设备

Publications (2)

Publication Number Publication Date
CN107066295A true CN107066295A (zh) 2017-08-18
CN107066295B CN107066295B (zh) 2021-06-04

Family

ID=59602588

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710203890.XA Active CN107066295B (zh) 2017-03-30 2017-03-30 一种基于浏览器加载终端网络应用的插件的方法及设备

Country Status (1)

Country Link
CN (1) CN107066295B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563721A (zh) * 2018-04-02 2018-09-21 杭州孚立计算机软件有限公司 一种用于快速加载网页的架构
CN111400054A (zh) * 2018-12-27 2020-07-10 浙江大学 网络插件调用方法及装置,计算机存储介质和电子设备
CN111930445A (zh) * 2020-06-28 2020-11-13 航天信息股份有限公司 一种支持主流浏览器对组件的调用方法
CN113986388A (zh) * 2021-10-28 2022-01-28 上海米哈游璃月科技有限公司 程序集加载方法、系统、电子设备及存储介质
CN114895898A (zh) * 2022-04-29 2022-08-12 北京百度网讯科技有限公司 一种指令处理方法、装置、设备以及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458629A (zh) * 2008-12-31 2009-06-17 北京中星微电子有限公司 嵌入式实时操作系统中实现动态加载的方法和装置
CN101577638A (zh) * 2009-06-04 2009-11-11 中兴通讯股份有限公司 一种基于电信网管系统探测以太网oam的方法和装置
CN101958932A (zh) * 2010-09-21 2011-01-26 中兴通讯股份有限公司 一种实现电信业务的方法和装置
CN102665137A (zh) * 2012-04-01 2012-09-12 深圳Tcl新技术有限公司 控制媒体播放器的方法及终端
CN103023976A (zh) * 2012-11-19 2013-04-03 北京奇虎科技有限公司 一种浏览器应用插件扩展的装置和方法
CN103677777A (zh) * 2012-09-19 2014-03-26 腾讯科技(深圳)有限公司 调用应用程序组件的方法及装置
CN103677979A (zh) * 2013-12-31 2014-03-26 北界创想(北京)软件有限公司 应用软件和插件的交互方法及装置
CN103761136A (zh) * 2014-02-25 2014-04-30 上海斐讯数据通信技术有限公司 一种基于插件的数据模型动态加载的方法
US20160216975A1 (en) * 2015-01-26 2016-07-28 Ricoh Company, Ltd. Operation terminal and information processing system

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458629A (zh) * 2008-12-31 2009-06-17 北京中星微电子有限公司 嵌入式实时操作系统中实现动态加载的方法和装置
CN101577638A (zh) * 2009-06-04 2009-11-11 中兴通讯股份有限公司 一种基于电信网管系统探测以太网oam的方法和装置
CN101958932A (zh) * 2010-09-21 2011-01-26 中兴通讯股份有限公司 一种实现电信业务的方法和装置
CN102665137A (zh) * 2012-04-01 2012-09-12 深圳Tcl新技术有限公司 控制媒体播放器的方法及终端
CN103677777A (zh) * 2012-09-19 2014-03-26 腾讯科技(深圳)有限公司 调用应用程序组件的方法及装置
CN103023976A (zh) * 2012-11-19 2013-04-03 北京奇虎科技有限公司 一种浏览器应用插件扩展的装置和方法
CN103677979A (zh) * 2013-12-31 2014-03-26 北界创想(北京)软件有限公司 应用软件和插件的交互方法及装置
CN103761136A (zh) * 2014-02-25 2014-04-30 上海斐讯数据通信技术有限公司 一种基于插件的数据模型动态加载的方法
US20160216975A1 (en) * 2015-01-26 2016-07-28 Ricoh Company, Ltd. Operation terminal and information processing system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
网友:HEPENG597: "Lighttpd1.4.20源码分析之插件系统(2)---插件的加载和初始化_hepeng597的专栏-CSDN博客", 《CSDN博客》 *
网友:作家簽名: ""油猴脚本介绍以及各浏览器使用教程以及好用脚本推荐", 《豆瓣》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563721A (zh) * 2018-04-02 2018-09-21 杭州孚立计算机软件有限公司 一种用于快速加载网页的架构
CN111400054A (zh) * 2018-12-27 2020-07-10 浙江大学 网络插件调用方法及装置,计算机存储介质和电子设备
CN111400054B (zh) * 2018-12-27 2024-03-08 浙江大学 网络插件调用方法及装置,计算机存储介质和电子设备
CN111930445A (zh) * 2020-06-28 2020-11-13 航天信息股份有限公司 一种支持主流浏览器对组件的调用方法
CN113986388A (zh) * 2021-10-28 2022-01-28 上海米哈游璃月科技有限公司 程序集加载方法、系统、电子设备及存储介质
CN113986388B (zh) * 2021-10-28 2024-03-29 上海米哈游璃月科技有限公司 程序集加载方法、系统、电子设备及存储介质
CN114895898A (zh) * 2022-04-29 2022-08-12 北京百度网讯科技有限公司 一种指令处理方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
CN107066295B (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
CN107066295A (zh) 一种基于浏览器加载终端网络应用的插件的方法及设备
US10698559B2 (en) Method and apparatus for displaying content on same screen, and terminal device
CN107832100B (zh) 一种apk插件的加载方法及其终端
CN101656789B (zh) 手机实现管理应用程序信息的方法及应用程序管理器
WO2015149664A1 (en) Web page access method and apparatus
CN101741986A (zh) 一种用于移动通讯设备终端的页面缓存方法
CN110096660A (zh) 用于加载页面图片的方法、装置和电子设备
WO2020063031A1 (zh) 结构数据的处理方法、装置、存储介质及电子设备
CN109976787B (zh) 应用程序升级方法、装置、终端及计算机可读存储介质
CN106453572A (zh) 基于云服务器同步图像的方法及系统
CN101997853A (zh) 数据下载方法及终端
CN105046640A (zh) 图片内存管理方法及装置
CN103425234B (zh) 动态调节图像处理性能的方法及显示终端
CN103593233A (zh) 推送软件信息的方法和系统
CN104978278A (zh) 数据处理方法和装置
CN111400630A (zh) 资源预加载方法及相关设备
CN116886626A (zh) 一种业务数据限流方法、装置、计算机设备及存储介质
CN107027074A (zh) 一种基于智能终端的iptv中间件启动控制方法及系统
CN111339173A (zh) 数据共享方法、服务器及可读存储介质
CN104113509B (zh) 媒体文件推送方法和服务器
CN105898399A (zh) 一种视频资源加载方法及装置及智能电视
CN110020290B (zh) 网页资源缓存方法、装置、存储介质及电子装置
CN106294539A (zh) 混合云环境下的数据索引列表存储策略
CN105450758A (zh) 一种多媒体文件播放的方法及终端
CN107729357A (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
CB02 Change of applicant information

Address after: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218

Applicant after: Hisense Visual Technology Co., Ltd.

Address before: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No.

Applicant before: QINGDAO HISENSE ELECTRONICS Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20221020

Address after: 83 Intekte Street, Devon, Netherlands

Patentee after: VIDAA (Netherlands) International Holdings Ltd.

Address before: 266555, No. 218, Bay Road, Qingdao economic and Technological Development Zone, Shandong

Patentee before: Hisense Visual Technology Co., Ltd.

TR01 Transfer of patent right