CN103064663B - 浏览器插件的生成、发布、加载和更新方法以及系统 - Google Patents
浏览器插件的生成、发布、加载和更新方法以及系统 Download PDFInfo
- Publication number
- CN103064663B CN103064663B CN201210469704.4A CN201210469704A CN103064663B CN 103064663 B CN103064663 B CN 103064663B CN 201210469704 A CN201210469704 A CN 201210469704A CN 103064663 B CN103064663 B CN 103064663B
- Authority
- CN
- China
- Prior art keywords
- plug
- code
- business logic
- logic codes
- server
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
提供一种浏览器插件的生成方法、发布方法、加载方法和更新方法以及系统。一种生成浏览器插件的方法包括:为一个或多个特定功能分别定义虚拟应用程序接口(API);定义调用至少一个所述虚拟API的业务逻辑代码;为所述至少一个虚拟API构建适于特定浏览器的API函数;构建用于定位所述业务逻辑代码的插件启动接口;构建适于所述特定浏览器的浏览器插件,其中,将用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码的代码以及构建的适于所述特定浏览器的API函数封装在浏览器插件中。
Description
技术领域
本申请涉及一种浏览器插件的生成、发布、加载、更新方法以及使用所述方法的系统以及浏览器插件,尤其涉及一种将依赖于浏览器的功能函数封装在插件中,而单独部署在其中调用为相关功能定义的虚拟API的业务逻辑代码,并且通过动态接口加载所述业务逻辑代码,从而实现浏览器插件的快速迭代和更新。
背景技术
为了加强用户粘度或者为用户提供便捷的服务,很多互联网产品提供配套的浏览器插件作为辅助。互联网产品的优点是能够快速迭代并方便维护,而且发布一个版本就能在各种操作系统的浏览器下使用。
但是,浏览器插件更像是一个客户端产品,它的更新机制并不像传统互联网产品那样,能够立即上线、立即生效,而是通过浏览器自身的机制检测更新,甚至低版本的浏览器需要用户手动更新插件。此外,不同浏览器的插件API都是不兼容的,因此特定的插件只能在特定的浏览器下使用。
以上两个浏览器插件的特性与互联网产品的特性发生了强烈的冲突。传统的开发互联网产品的配套浏览器插件的方式为整个产品的维护、升级和快速迭代带来了巨大的成本和挑战。
发明内容
本发明的目的在于提供一种浏览器插件的生成、发布、加载和更新方法以及使用所述方法的系统和浏览器插件,通过单独部署独立于浏览器的业务逻辑代码,而将依赖于浏览器的代码封装在实际发布到客户端的浏览器插件中,为多种浏览器发布的浏览器插件可共享业务逻辑代码,从而实现浏览器插件的快速开发和快速迭代。
根据本发明的一方面,提供一种生成浏览器插件的方法,所述方法包括:定义调用至少一个虚拟API的业务逻辑代码;为所述至少一个虚拟API构建适于特定浏览器的API函数;构建用于定位所述业务逻辑代码的插件启动接口;构建适于所述特定浏览器的浏览器插件,其中,将用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码的代码以及构建的适于所述特定浏览器的API函数封装在浏览器插件中。
所述的方法可还包括:定义一个或多个虚拟API;其中,定义的业务逻辑代码可调用所述一个或多个虚拟API。
所述业务逻辑代码可以是脚本代码。
所述的方法可还包括:将记录有所述业务逻辑代码的代码文件部署在服务器的特定位置。
所述的方法可还包括:在所述特定位置还部署业务逻辑代码的资源文件,其中,所述插件启动接口用于定位所述代码文件以及资源文件。
所述的方法可还包括:将插件启动接口部署在所述服务器或另一服务器上。
根据本发明的另一方面,提供一种发布浏览器插件的方法,所述方法包括:将业务逻辑代码的代码文件部署在第一服务器上;将用于定位所述代码文件的插件启动接口部署在第二服务器的特定位置上;将插件代码发布到公众可访问的指定位置上,以用于客户机下载所述插件代码。其中,业务逻辑代码调用至少一个虚拟API,发布的插件代码封装有用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码的代码以及适于所述特定浏览器的实现所述至少一个虚拟API的至少一个API函数。
所述业务逻辑代码可以是脚本代码。
所述的方法可还包括:在所述特定位置上还部署业务逻辑代码的资源文件,其中,所述插件启动接口用于定位所述代码文件以及资源文件。
所述第一服务器和第二服务器可以是同一服务器。
根据本发明的另一方面,提供一种加载浏览器插件的方法,所述方法包括,在浏览器插件中:通过调用在其中封装的插件启动接口的代码调用部署在第一服务器上的插件启动接口,以定位第二服务器上的业务逻辑代码;从第二服务器加载定位的业务逻辑代码。其中,浏览器插件中的插件代码封装有用于加载所述业务逻辑代码的代码、用于调用部署在第一服务器上的插件启动接口的代码以及适于所述浏览器的实现所述至少一个虚拟API的至少一个API函数,所述插件启动接口用于定位第二服务器上的业务逻辑代码。
所述业务逻辑代码可以是脚本代码。
所述的方法可还包括:在第二服务器上还部署业务逻辑代码的资源文件,其中,所述插件启动接口用于定位所述代码文件以及资源文件。
所述第一服务器和第二服务器可以是同一服务器。
根据本发明的另一方面,提供一种更新浏览器插件的方法,所述方法包括:修改实现特定业务逻辑的业务逻辑代码;将记录有所述修改的业务逻辑代码的第一代码文件部署到第一服务器上的特定位置,其中,在所述特定位置上已部署有第二代码文件,所述第二代码文件记录有修改前的业务逻辑代码,并且第一代码文件与第二代码文件具有不同的文件名;更新先前部署在第二服务器上的插件启动接口,以使插件启动接口定位第一代码文件,其中,所述业务逻辑代码调用至少一个虚拟API,先前发布的插件代码封装有用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码以及适于所述特定浏览器的实现所述至少一个虚拟API的至少一个API函数。
所述业务逻辑代码可以是脚本代码。
所述的方法可还包括:创建所述业务逻辑代码的第一资源文件,并且在所述特定位置上还部署第一资源文件,所述第一资源文件与先前部署的第二资源文件具有不同的文件名,其中,所述插件启动接口用于定位第一代码文件以及第一资源文件。
所述第一服务器和第二服务器可以是同一服务器。
本发明还提供一种使用上述的浏览器插件的生成、发布、加载和更新方法的系统以及浏览器插件。
附图说明
通过下面结合附图进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:
图1是示出根据本发明的示例性实施例的浏览器插件的开发方法的流程图;
图2是示出根据本发明的示例性实施例的浏览器插件的发布方法的流程图;
图3是示出根据本发明的示例性实施例的浏览器插件的加载方法的流程图;
图4是示出根据本发明的示例性实施例的浏览器插件的更新方法的流程图;
图5是示出实现根据本发明的示例性实施例的浏览器插件的开发、发布和更新方法的系统的示意图;
图6~图12示出根据本发明的示例性实施例的用于浏览器开发的示例性代码。
具体实施方式
以下,将参照附图来详细说明本发明的实施例。
在本发明中将浏览器插件分为两个部分,在此称为内核部分和业务逻辑部分。内核部分将被封装为实际发布给客户端的浏览器插件,其包含插件基础框架以及插件中依赖于浏览器的代码,内核部分不包括业务逻辑。业务逻辑部分则如同传统的互联网产品的上线方式,被部署到静态服务器上,所述业务逻辑部分包含业务逻辑代码,所述业务逻辑代码不依赖于诸如FireFox浏览器、Chromo浏览器、搜狗浏览器等的特定的浏览器。
为此,根据本发明的示例性实施例,为依赖浏览器的特定功能定义虚拟API(应用程序接口)。相应地,在业务逻辑部分的业务逻辑代码中通过调用定义好的虚拟API来执行所述特定功能,并且将为所述虚拟API构建的适于特定浏览器的API函数封装在所述内核部分。此外,构建指示业务逻辑代码的位置的启动接口,并且内核部分在启动时通过调用所述启动接口来加载所述业务逻辑代码。图5示意性地示出根据本发明的示例性实施例的用于部署本发明的浏览器插件的各个部分的系统。其中,服务器1是用于部署上述的业务逻辑部分的静态服务器;应用库2是公众可访问的公共主机,通常是用于公众访问并下载浏览器插件的应用商店;而服务器3是用于运行服务的服务器,用于部署、运行所述的启动接口,还可运行其他的接口服务。根据访问流量,服务器1和服务器3从物理上可以是同一台服务器。
图1是示出根据本发明的示例性实施例的浏览器插件的开发方法的流程图,图6~图12示出根据本发明的示例性实施例的用于浏览器开发的示例性代码。以下将参照图1和图6~图12详细描述根据本发明的示例性实施例的浏览器插件的开发方法。
在当前的示例性实施例中,以Firefox和Chrome浏览器为例示出本发明针对不同浏览器开发浏览器插件的方法。当然,本发明不限于这两种浏览器,而是适用于任何已有或未来开发的具有相似工作原理的浏览器。
在当前的示例性实施例中,示出在网页上通过点击一个打印按钮来打印当前页面中的全部图片的情形。在不同的浏览器中,用于打印功能而调用的接口函数不同。例如,图7和图8分别示出在Chrome浏览器和Firefox浏览器中打印图片的接口函数。
参照图1,在步骤S110,浏览器插件生成系统为一个或多个特定功能分别定义虚拟应用程序接口(API)。所述特定功能通常为依赖于浏览器的任何功能,例如执行打印的功能。为了屏蔽不同浏览器中用于打印的功能的接口函数的差异,定义如图6示出的用于在网页中执行打印功能的虚拟API的示例代码。其中,Extension.printImg()是所述打印API,以图片URL、打印宽度和打印高度作为参数。可以看出,针对所述两种浏览器,用于打印的类、方法以及参数都不相同。
在步骤S120,浏览器插件生成系统定义在其中调用至少一个所述虚拟API的业务逻辑代码(也就是前述的浏览器插件的业务逻辑部分)。根据本发明的可选实施例,所述业务逻辑代码可以是脚本。图12示出调用图6中的打印API的脚本代码,其中,在printBtn被点击时,获得页面上的全部图像,此后,针对每个图像,调用Extension.printImg()。在此,可以看出,所述业务逻辑代码不包括依赖于浏览器的代码。
记录有所述业务逻辑代码的代码文件将被部署到服务器的特定位置,所述特定位置通常是服务器上的某个目录。根据本发明的优选实施例,在所述特定位置还部署业务逻辑代码的资源文件,如css文件。
在步骤S130,浏览器插件生成系统为所述至少一个虚拟API构建适于特定浏览器的API函数。针对图6中示出的打印API,为Firefox浏览器的插件定义如图11的上端所示的API函数,在所述API函数中调用在Firefox浏览器中用于打印的Firefox.print()接口函数;另一方面,针对同一个API,为Chrome浏览器的插件定义的API函数如图11的下端所示,在所述API函数中调用在Chrome浏览器中用于打印的Chrome.printImg()接口函数。
此后,在步骤S140,浏览器插件生成系统构建用于定位所述业务逻辑代码的插件启动接口。假设浏览器插件在启动时调用的http接口地址为http://server-host.com/abc/extension-start,记录有图12所示的用于打印的业务逻辑代码的文件被命名为print1.0.js,图9示出所述http接口返回的结果,即构建的用于定位所述业务逻辑代码的插件启动接口。根据本发明的示例性实施例,所述插件启动接口用于定位位于static-host上的print1.0.js文件以及所述业务逻辑代码的资源文件print1.0.css。所述插件启动接口可被部署在部署业务逻辑代码的代码文件的服务器上,也可被部署在另一服务器上。
在步骤S150,所述浏览器插件生成系统构建适于特定浏览器的浏览器插件(也就是前述的浏览器插件的内核部分)。在构建将被发布的浏览器插件的处理中,除了封装插件基础框架以外,还在所述浏览器插件中封装在步骤S130构建的依赖于浏览器的代码(如图11中示出的用于Firefox浏览器或Chrome浏览器的API函数)、用于调用在步骤S140构建的启动接口的代码以及用于加载在步骤S120定义的业务逻辑代码。图10示例性地示出浏览器插件的加载框架,其中,ajax.get()用于调用启动接口,而loadCss()和loadScript()用于加载业务逻辑代码。在不同的浏览器中,加载框架比较相似。由此,完成本发明的生成浏览器插件的方法。
根据本发明的另一示例性实施例,不执行步骤S110,而是在步骤S120,浏览器插件生成系统定义在其中调用至少一个预先定义的虚拟API的业务逻辑代码。也就是说,步骤S110不是必需的步骤,所述至少一个虚拟API可以由本发明的浏览器插件生成系统定义,也可以是预先由第三方定义的虚拟API,只要是业务逻辑代码可以调用以实现特定功能的虚拟API即可。
通过上述关于本发明的示例性实施例的浏览器插件的生成方法的描述可以看出,本发明将插件中依赖于浏览器的代码和独立于浏览器的代码分离,而将所述独立于浏览器的代码单独进行部署,从而当业务逻辑发生改变时,不需要更新整个浏览器插件,而仅通过修改的插件启动插口可调用更新的业务逻辑代码,实现浏览器插件的快速迭代和更新。
图2是示出根据本发明的示例性实施例的浏览器插件的发布方法的流程图。如前参照图1所述来生成在此要发布的浏览器插件,即浏览器插件的业务逻辑代码调用至少一个虚拟API,封装在浏览器插件中的插件代码(前述的内核部分)封装有用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码的代码以及适于所述特定浏览器的实现所述至少一个虚拟API的至少一个API函数。
参照图2,在步骤S210,浏览器插件发布系统将业务逻辑代码的代码文件部署在第一服务器(例如图6中的服务器1)上。所述代码文件例如记录为如图12所述的脚本代码的代码文件。
在步骤S220,浏览器插件发布系统将用于定位所述代码文件的插件启动接口部署在第二服务器(例如图6中的服务器3)的特定位置上。例如,可将如图9所示的作为插件启动接口的extension-start部署在第二服务器上。
根据本发明的可选实施例,所述第一服务器和第二服务器是同一服务器。
在步骤S230,浏览器插件发布系统将封装的插件代码作为浏览器插件发布到公众可访问的指定位置(如图6中的应用库2)上,以用于客户机下载所述浏览器插件。
根据本发明的优选实施例,浏览器插件发布系统在所述特定位置上还部署业务逻辑代码的资源文件,所述插件启动接口用于定位所述代码文件以及资源文件。
图3是示出根据本发明的示例性实施例的浏览器插件的加载方法的流程图。如前参照图1所述来生成在此要发布的浏览器插件,即浏览器插件的业务逻辑代码调用至少一个虚拟API,封装在浏览器插件中的插件代码封装有用于调用部署在第一服务器上的插件启动接口的代码、用于加载所述业务逻辑代码的代码以及适于所述浏览器的实现所述至少一个虚拟API的至少一个API函数,所述插件启动接口用于定位第二服务器上的业务逻辑代码。
参照图3,当在步骤S310浏览器插件启动时,在步骤S320,浏览器插件调用在其中封装的插件启动接口的代码,以调用部署在第一服务器上的插件启动接口。这样,浏览器插件可定位第二服务器上的业务逻辑代码。如图10所示的插件代码通过调用ajax.get()来调用插件启动接口,所述接口返回如图9所示的结果。在此基础上,在步骤S330,浏览器插件加载插件启动接口返回的业务逻辑代码。自此,完成所述浏览器插件的加载。
图4是示出根据本发明的示例性实施例的浏览器插件的更新方法的流程图。如前参照图1所述来生成在此要发布的浏览器插件,即浏览器插件的业务逻辑代码调用至少一个虚拟API,插件代码封装有用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码的代码以及适于所述特定浏览器的实现所述至少一个虚拟API的至少一个API函数。
在图12示出的业务逻辑代码中,打印图片的分辨率是800*600。现在假设需要将代码中的800*600改为1024*768。
参照图4,在步骤S410,浏览器插件更新系统修改实现特定业务逻辑的业务逻辑代码。例如,在图12的示例中,将作为调用参数的800和600分别修改为1024和768。
在步骤S420,浏览器插件更新系统将记录有所述修改的业务逻辑代码的第一代码文件部署到第一服务器上的特定位置。在所述特定位置上已部署有先前版本的第二代码文件,第一代码文件与第二代码文件具有不同的文件名。例如,将记录有步骤S410的业务逻辑代码的代码文件命名为print_1.1.js,并且将print_1.1.js先前部署print_1.0.js的同一位置。
根据本发明的优选实施例,浏览器插件还创建所述业务逻辑代码的第一资源文件,并且在所述特定位置上还部署第一资源文件,所述第一资源文件与先前部署的第二资源文件具有不同的文件名。例如,可创建相应于print_1.1.js的资源文件print_1.1.css,并且在先前已部署print_.0.css的同一位置部署print_1.1.css。
在步骤S430,浏览器插件更新系统更新先前部署在第二服务器上的插件启动接口,以使插件启动接口定位第一代码文件。当存在第一代码文件的资源文件时,更新的插件启动接口还用于定位第一资源文件。例如,修改如图8所示的插件启动接口,将其中的print_1.0.js和print_1.0.css分别更新为print_1.1.js和print_1.1.css。
根据本发明的可选实施例,所述第一服务器和第二服务器是同一服务器。
至此,当用户再次打开浏览器,启动先前下载的同一浏览器插件时,不需要重新下载浏览器插件,就可以通过调用更新的插件启动接口,加载已更新的业务逻辑代码。此外,由于单独部署的业务逻辑代码独立于浏览器,不同浏览器可共享同一业务逻辑代码,因此同一业务逻辑代码的更新适用于为多种浏览器发布的浏览器插件,便于更新和迭代。
本发明还提供一种用于实现浏览器插件的生成、发布、加载和更新方法的系统以及浏览器插件。
尽管已参照优选实施例表示和描述了本发明,但本领域技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以对这些实施例进行各种修改和变换。
Claims (32)
1.一种生成浏览器插件的方法,所述方法包括:
定义调用至少一个虚拟应用程序接口(API)的业务逻辑代码;
为所述至少一个虚拟API构建适于特定浏览器的API函数;
构建用于定位所述业务逻辑代码的插件启动接口;
构建适于所述特定浏览器的浏览器插件,其中,将用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码的代码以及构建的适于所述特定浏览器的API函数封装在浏览器插件中,
其中,将记录有所述业务逻辑代码的代码文件部署在服务器的特定位置,将插件启动接口部署在所述服务器或另一服务器上。
2.如权利要求1所述的方法,还包括:定义一个或多个虚拟API,
其中,定义的业务逻辑代码调用所述一个或多个虚拟API。
3.如权利要求1所述的方法,其特征在于,所述业务逻辑代码为脚本代码。
4.如权利要求1所述的方法,还包括:在所述特定位置还部署业务逻辑代码的资源文件,
其中,所述插件启动接口用于定位所述代码文件以及资源文件。
5.一种发布浏览器插件的方法,所述方法包括:
将业务逻辑代码的代码文件部署在第一服务器上;
将用于定位所述代码文件的插件启动接口部署在第二服务器的特定位置上;
将插件代码发布到公众可访问的指定位置上,以用于客户机下载所述插件代码,
其中,业务逻辑代码调用至少一个虚拟API,发布的插件代码封装有用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码的代码以及适于特定浏览器的实现所述至少一个虚拟API的至少一个API函数。
6.如权利要求5所述的方法,其特征在于,所述业务逻辑代码为脚本代码。
7.如权利要求6所述的方法,还包括:在所述特定位置上还部署业务逻辑代码的资源文件,
其中,所述插件启动接口用于定位所述代码文件以及资源文件。
8.如权利要求5-7中任一项所述的方法,其中,所述第一服务器和第二服务器是同一服务器。
9.一种加载浏览器插件的方法,所述方法包括,在浏览器插件中:
通过调用在其中封装的插件启动接口的代码调用部署在第一服务器上的插件启动接口,以定位第二服务器上的业务逻辑代码;
从第二服务器加载定位的业务逻辑代码,
其中,浏览器插件中的插件代码封装有用于加载所述业务逻辑代码的代码、用于调用部署在第一服务器上的插件启动接口的代码以及适于所述浏览器的实现至少一个虚拟API的至少一个API函数,所述插件启动接口用于定位第二服务器上的业务逻辑代码,所述业务逻辑代码用于调用至少一个虚拟API。
10.如权利要求9所述的方法,其特征在于,所述业务逻辑代码为脚本代码。
11.如权利要求10所述的方法,还包括:在第二服务器上还部署业务逻辑代码的资源文件,
其中,所述插件启动接口用于定位所述代码文件以及资源文件。
12.如权利要求9-11中任一项所述的方法,其中,所述第一服务器和第二服务器是同一服务器。
13.一种更新浏览器插件的方法,所述方法包括:
修改实现特定业务逻辑的业务逻辑代码;
将记录有所述修改的业务逻辑代码的第一代码文件部署到第一服务器上的特定位置,其中,在所述特定位置上已部署有第二代码文件,所述第二代码文件记录有修改前的业务逻辑代码,并且第一代码文件与第二代码文件具有不同的文件名;
更新先前部署在第二服务器上的插件启动接口,以使插件启动接口定位第一代码文件,
其中,所述业务逻辑代码调用至少一个虚拟API,先前发布的插件代码封装有用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码的代码以及适于特定浏览器的实现所述至少一个虚拟API的至少一个API函数。
14.如权利要求13所述的方法,其特征在于,所述业务逻辑代码为脚本代码。
15.如权利要求14所述的方法,还包括:创建所述业务逻辑代码的第一资源文件,并且在所述特定位置上还部署第一资源文件,所述第一资源文件与先前部署的第二资源文件具有不同的文件名,
其中,所述插件启动接口用于定位第一代码文件以及第一资源文件。
16.如权利要求13-15中任一项所述的方法,其中,所述第一服务器和第二服务器是同一服务器。
17.一种生成浏览器插件的系统,所述系统包括:
第一模块,用于定义调用至少一个虚拟应用程序接口(API)的业务逻辑代码;
第二模块,用于为所述至少一个虚拟API构建适于特定浏览器的API函数;
第三模块,用于构建用于定位所述业务逻辑代码的插件启动接口;
第四模块,用于构建适于所述特定浏览器的浏览器插件,其中,将用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码的代码以及构建的适于所述特定浏览器的API函数封装在浏览器插件中;
第六模块,用于将记录有所述业务逻辑代码的代码文件部署在服务器的特定位置;
第八模块,用于将插件启动接口部署在所述服务器或另一服务器上。
18.如权利要求17所述的系统,还包括:
第五模块,用于定义一个或多个虚拟API,
其中,第一模块定义的业务逻辑代码调用所述一个或多个虚拟API。
19.如权利要求17所述的系统,其特征在于,所述业务逻辑代码为脚本代码。
20.如权利要求17所述的系统,还包括:
第七模块,用于在所述特定位置还部署业务逻辑代码的资源文件,
其中,所述插件启动接口用于定位所述代码文件以及资源文件。
21.一种发布浏览器插件的系统,所述系统包括:
第一模块,用于将业务逻辑代码的代码文件部署在第一服务器上;
第二模块,用于将用于定位所述代码文件的插件启动接口部署在第二服务器的特定位置上;
第三模块,用于将插件代码发布到公众可访问的指定位置上,以用于客户机下载所述插件代码,
其中,业务逻辑代码调用至少一个虚拟API,发布的插件代码封装有用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码的代码以及适于特定浏览器的实现所述至少一个虚拟API的至少一个API函数。
22.如权利要求21所述的系统,其特征在于,所述业务逻辑代码为脚本代码。
23.如权利要求22所述的系统,还包括:
第四模块,用于在所述特定位置上还部署业务逻辑代码的资源文件,
其中,所述插件启动接口用于定位所述代码文件以及资源文件。
24.如权利要求21-23中任一项所述的系统,其中,所述第一服务器和第二服务器是同一服务器。
25.一种加载浏览器插件的系统,包括:
第一模块,通过调用在浏览器插件中封装的插件启动接口的代码调用部署在第一服务器上的插件启动接口,以定位第二服务器上的业务逻辑代码;
第二模块,从第二服务器加载定位的业务逻辑代码,
其中,浏览器插件中的插件代码封装有用于加载所述业务逻辑代码的代码、用于调用部署在第一服务器上的插件启动接口的代码以及适于所述浏览器的实现至少一个虚拟API的至少一个API函数,所述插件启动接口用于定位第二服务器上的业务逻辑代码,所述业务逻辑代码用于调用至少一个虚拟API。
26.如权利要求25所述的系统,其特征在于,所述业务逻辑代码为脚本代码。
27.如权利要求26所述的系统,还包括:在第二服务器上还部署业务逻辑代码的资源文件,
其中,所述插件启动接口用于定位所述代码文件以及资源文件。
28.如权利要求25-27中任一项所述的系统,其中,所述第一服务器和第二服务器是同一服务器。
29.一种更新浏览器插件的系统,所述系统包括:
第一模块,用于修改实现特定业务逻辑的业务逻辑代码;
第二模块,用于将记录有所述修改的业务逻辑代码的第一代码文件部署到第一服务器上的特定位置,其中,在所述特定位置上已部署有第二代码文件,所述第二代码文件记录有修改前的业务逻辑代码,并且第一代码文件与第二代码文件具有不同的文件名;
第三模块,用于更新先前部署在第二服务器上的插件启动接口,以使插件启动接口定位第一代码文件,
其中,所述业务逻辑代码调用至少一个虚拟API,先前发布的插件代码封装有用于调用所述插件启动接口的代码、用于加载所述业务逻辑代码的代码以及适于特定浏览器的实现所述至少一个虚拟API的至少一个API函数。
30.如权利要求29所述的系统,其特征在于,所述业务逻辑代码为脚本代码。
31.如权利要求30所述的系统,还包括:
第四模块,用于创建所述业务逻辑代码的第一资源文件,并且在所述特定位置上还部署第一资源文件,所述第一资源文件与先前部署的第二资源文件具有不同的文件名,
其中,所述插件启动接口用于定位第一代码文件以及第一资源文件。
32.如权利要求29-31中任一项所述的系统,其中,所述第一服务器和第二服务器是同一服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210469704.4A CN103064663B (zh) | 2012-11-19 | 2012-11-19 | 浏览器插件的生成、发布、加载和更新方法以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210469704.4A CN103064663B (zh) | 2012-11-19 | 2012-11-19 | 浏览器插件的生成、发布、加载和更新方法以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103064663A CN103064663A (zh) | 2013-04-24 |
CN103064663B true CN103064663B (zh) | 2016-03-09 |
Family
ID=48107301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210469704.4A Active CN103064663B (zh) | 2012-11-19 | 2012-11-19 | 浏览器插件的生成、发布、加载和更新方法以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103064663B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103226485B (zh) * | 2013-05-21 | 2016-09-28 | 北京奇虎科技有限公司 | 代码发布方法、代码发布机和代码发布系统 |
CN104156235A (zh) * | 2014-07-22 | 2014-11-19 | 北京奇虎科技有限公司 | 一种浏览器插件和/或扩展的更新方法和装置 |
CN105487910A (zh) * | 2016-01-22 | 2016-04-13 | 北京世纪龙脉科技有限公司 | 一种浏览器插件实现方法、http应用服务器和浏览器 |
CN107528713B (zh) * | 2016-06-22 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 一种数据转移sdk的升级方法及装置 |
CN106325925A (zh) * | 2016-08-18 | 2017-01-11 | 乐视控股(北京)有限公司 | 一种浏览器业务信息更新方法及装置 |
CN106648627B (zh) * | 2016-11-30 | 2020-09-08 | 武汉斗鱼网络科技有限公司 | 将直播应用软件移植到火狐浏览器的方法及装置 |
CN108228193A (zh) * | 2016-12-14 | 2018-06-29 | 北京国双科技有限公司 | 数据获取方法及装置 |
CN106681852B (zh) * | 2016-12-22 | 2019-11-26 | 优地网络有限公司 | 一种浏览器兼容性的调整方法及装置 |
CN107977243A (zh) * | 2017-11-27 | 2018-05-01 | 海尔优家智能科技(北京)有限公司 | 一种第三方接口调用方法及装置 |
CN108279888A (zh) * | 2017-12-19 | 2018-07-13 | 中国电子科技集团公司第三十研究所 | 一种支持多款浏览器的插件实现方法 |
CN110968358A (zh) * | 2018-09-30 | 2020-04-07 | 北京国双科技有限公司 | 一种基于浏览器插件加载脚本模块的方法及装置 |
CN109582908A (zh) * | 2018-12-10 | 2019-04-05 | 郑州悉知信息科技股份有限公司 | 一种网页开发方法及装置 |
CN110007980B (zh) * | 2019-01-29 | 2022-05-24 | 创新先进技术有限公司 | 多业务服务端的实现方法和装置 |
CN113010218A (zh) * | 2019-12-20 | 2021-06-22 | 中国移动通信集团陕西有限公司 | 插件加载方法、装置、计算设备及计算机存储介质 |
CN112099906B (zh) * | 2020-08-26 | 2024-05-03 | 摩尔元数(福建)科技有限公司 | 一种Java代码远程调试方法、装置、系统、设备和介质 |
CN113076291A (zh) * | 2021-04-27 | 2021-07-06 | 杭州安恒信息技术股份有限公司 | 一种文件定位方法、装置、设备及存储介质 |
CN114780164B (zh) * | 2022-02-28 | 2023-04-25 | 深圳开源互联网安全技术有限公司 | 基于浏览器插件筛选网页信息的方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001039046A1 (en) * | 1999-11-24 | 2001-05-31 | Oz.Com | Web browser plug-in interface system |
CN101539859A (zh) * | 2008-10-10 | 2009-09-23 | 华南理工大学 | 一种基于uCLinux的嵌入式Konqueor浏览器的插件开发方法 |
CN101639774A (zh) * | 2009-08-31 | 2010-02-03 | 腾讯科技(深圳)有限公司 | 一种浏览器控件的封装方法及装置 |
CN101645084A (zh) * | 2009-04-23 | 2010-02-10 | 中国科学院声学研究所 | 一种嵌入式浏览器对动态数据的处理方法 |
CN101930366A (zh) * | 2010-08-27 | 2010-12-29 | 武汉天喻信息产业股份有限公司 | 一种基于浏览器的手机中间件 |
CN102625182A (zh) * | 2012-03-31 | 2012-08-01 | 百视通网络电视技术发展有限责任公司 | 互联网电视业务中集成和控制视频播放器的方法和系统 |
-
2012
- 2012-11-19 CN CN201210469704.4A patent/CN103064663B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001039046A1 (en) * | 1999-11-24 | 2001-05-31 | Oz.Com | Web browser plug-in interface system |
CN101539859A (zh) * | 2008-10-10 | 2009-09-23 | 华南理工大学 | 一种基于uCLinux的嵌入式Konqueor浏览器的插件开发方法 |
CN101645084A (zh) * | 2009-04-23 | 2010-02-10 | 中国科学院声学研究所 | 一种嵌入式浏览器对动态数据的处理方法 |
CN101639774A (zh) * | 2009-08-31 | 2010-02-03 | 腾讯科技(深圳)有限公司 | 一种浏览器控件的封装方法及装置 |
CN101930366A (zh) * | 2010-08-27 | 2010-12-29 | 武汉天喻信息产业股份有限公司 | 一种基于浏览器的手机中间件 |
CN102625182A (zh) * | 2012-03-31 | 2012-08-01 | 百视通网络电视技术发展有限责任公司 | 互联网电视业务中集成和控制视频播放器的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103064663A (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064663B (zh) | 浏览器插件的生成、发布、加载和更新方法以及系统 | |
US10452372B2 (en) | Method and deployment module for managing a container to be deployed on a software platform | |
EP3828701B1 (en) | Mini app processing method, server, device and storage medium | |
CN111666585B (zh) | 子应用访问的方法、装置、电子设备以及可读存储介质 | |
US10318318B2 (en) | Extending user interface of a web console | |
CN111008019B (zh) | 小程序的Web化运行方法、装置、设备及介质 | |
US20080046882A1 (en) | Deploying j2ee web applications in an osgi environment | |
CN106997298A (zh) | 一种应用资源获取方法及装置 | |
CN104573066A (zh) | 页面复用方法及装置 | |
CN105069132A (zh) | 一种基于静态外壳的网页实现方法 | |
CN103873918A (zh) | 图片处理方法、装置及终端 | |
EP3528474B1 (en) | Webpage advertisement anti-shielding methods and content distribution network | |
CN112214250B (zh) | 一种应用程序组件的加载方法和装置 | |
JP2021068415A (ja) | コード実行方法、装置、レンダリングデバイス、記憶媒体、及びプログラム | |
Miravet et al. | Framework for the declarative implementation of native mobile applications | |
CN116301951B (zh) | 一种基于kubernetes的微服务应用安装升级方法及装置 | |
CN112764746B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110825622A (zh) | 软件测试方法、装置、设备和计算机可读介质 | |
CN115146198A (zh) | 一种基于Electron的简易浏览器实现方法及系统 | |
CN106598663B (zh) | 一种web应用更新方法及web服务器 | |
CN114528510A (zh) | 网页数据处理的方法、装置、电子设备及介质 | |
CN113220296B (zh) | 安卓系统交互方法及装置 | |
CN114860240A (zh) | 一种低代码页面创建方法、装置、设备及介质 | |
CN114115855A (zh) | 代码复用方法及装置、计算机可读存储介质、电子设备 | |
CN112882698A (zh) | 开发环境的生成方法及装置、计算机存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |