在客户端中提供服务的方法和客户端的制作方法

文档序号:7795808阅读:118来源:国知局
专利名称:在客户端中提供服务的方法和客户端的制作方法
技术领域
本发明涉及客户端开发领域,特别涉及一种在客户端中提供服务的方法和客户端。
背景技术
通常,在终端上会安装有各种应用程序,这种应用程序又称为客户端,客户端的种类多种多样,完成的功能也各不相同,提供的界面风格也不尽相同。例如,word提供编辑doc文件的功能,photoshop提供绘图的功能等。传统的开发客户端的过程中,客户端界面的开发占据了大量的人力和时间。并且,如果要在多个不同的操作系统中发布客户端,则无可避免的需要针对不同的操作系统,开发出多套界面来满足需求,过程复杂且周期较长。

发明内容
为了解决现有技术中客户端开发过程复杂且周期较长的问题,本发明实施例提供了一种在客户端中提供服务的方法和客户端。所述技术方案如下:一方面,一种在客户端中提供服务的方法,包括:在客户端的进程中,加载页面文件,并加载浏览器内核;所述浏览器内核解析所述页面文件,生成所述客户端的界面,并得到脚本对象;所述浏览器内核中的脚本引擎根据所述脚本对象,调用服务组件,在生成的客户端的界面中提供相应的服务。另一方面,一种客户端,包括:加载模块,用于在客户端的进程中,加载页面文件,并加载浏览器内核;所述浏览器内核,用于解析所述加载模块加载的所述页面文件,生成所述客户端的界面,并得到脚本对象,还用于通过内置的脚本引擎根据所述脚本对象,调用服务组件,在生成的客户端的界面中提供相应的服务。本发明实施例提供的技术方案带来的有益效果是:通过在客户端进程中加载页面文件和浏览器内核,由浏览器内核解析页面文件生成客户端界面及得到脚本对象,并通过浏览器内核中的脚本引擎根据脚本对象调用服务组件,在生成的客户端的界面内提供相应的服务,实现了结合web技术和浏览器内核的客户端,客户端界面是由浏览器内核解析页面文件后生成的,与现有技术相比,无需在开发包中单独编写界面的开发代码,使得界面开发的大量工作通过浏览器内核得到了简化,极大地缩短了开发周期;而且,浏览器内核基于页面文件中的元素进行界面绘制,这种方式不再受不同操作系统的限制,开发出的客户端可以应用于任何操作系统,无需针对不同的操作系统进行不同的开发,从而极大地简化了开发过程,降低了开发的难度,提高了开发效率。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的在客户端中提供服务的方法一种流程图;图2是本发明实施例提供的在客户端中提供服务的方法另一种流程图;图3是本发明实施例提供的客户端的界面示意图;图4是本发明实施例提供的在客户端中提供服务的流程示意图;图5是本发明实施例提供的客户端的一种结构图;图6是本发明实施例提供的客户端的另一种结构图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。本发明实施例涉及浏览器内核和脚本引擎。所述浏览器内核是指“RenderingEngine”,也可翻译为“解释引擎”。它主要负责对网页语法的解释,并渲染网页。所述网页语法包括:HTML(Hypertext Markup Language,超文本标记语言),JS (JavaScript,脚本)等等。因此,浏览器内核也就是浏览器所采用的渲染引擎。所述脚本引擎是一个计算机编程语言的解释器,如用于建网站的ASP (Active Server Page,动态服务器页面)、PHP (HypertextPr印rocessor,超级文本预处理语言)、JS等,它的功能是解释执行用户的程序文本,将它译成计算机能执行的机器代码,从而完成一系列的功能。参见图1,本发明一实施例提供了一种在客户端中提供服务的方法,包括:101:在客户端的进程中,加载页面文件,并加载浏览器内核;102:浏览器内核解析页面文件,生成客户端的界面,并得到脚本对象;103:浏览器内核中的脚本引擎根据脚本对象,调用服务组件,在生成的客户端的界面中提供相应的服务。本发明实施例中,所述页面文件是指包含有客户端界面上的相关信息的文件。所述客户端界面上的相关信息包括但不限于:客户端界面的元素布局、界面风格、按钮操作等等,这些信息具体地描述了客户端的界面,因此,可以通过这些信息绘制出客户端界面。优选地,所述页面文件为HTML文件。当所述页面文件为HTML文件时,步骤102可以具体包括:浏览器内核解析HTML文件,读取HTML文件指定的CSS (Cascading Style Sheet,层叠样式表)和JS ;根据HTML文件中的标记元素和CSS绘制客户端的界面,并根据JS得到脚本对象。其中,HTML文件中的标记元素描述界面的元素布局,CSS描述界面的风格,JS描述界面上的控件操作。本发明实施例中,当需要开发不同界面的客户端时,可以创建不同的页面文件,通过不同的页面文件来得到不同的客户端界面,充分满足了个性化的需求。而且,通过创建不同的页面文件来更改客户端界面,与传统的修改界面源代码相比,简单方便,极大地降低了工作量。本发明实施例中的所述脚本对象包括:脚本引擎中内置的脚本对象,和/或,自定义的脚本对象,本发明对此不限定。用户可以根据需要定义不同的脚本对象,脚本引擎可以在运行环境中嵌入这些自定义的脚本对象,并通过这些脚本对象来调用服务组件。不同的浏览器内核,其脚本引擎嵌入脚本对象的方法各不相同,如IE、Chrome, Firefox这三种浏览器内核的脚本引擎就采用不同的方法来嵌入脚本对象,此处不做过多说明。本发明实施例中的所述服务组件包括:操作系统提供的通用服务组件,和/或,扩展后的服务组件,本发明对此不限定。由于通用服务组件的功能通常比较有限,优选地,采用扩展后的服务组件以完成各种需求的功能,包括但不限于:访问文件的功能,创建进程线程的功能,或与其他客户端建立TCP (Transmission Control Protocol,传输控制协议)或UDP(User Datagram Protocol,用户数据包协议)通讯的功能等等,本发明对此不限定。例如,可以通过扩展网络服务组件和存储服务组件,实现两个客户端之间传输文件的功能,具有较强的实用性。本发明实施例中涉及的用户是指客户端的开发人员,后面的实施例中的用户具有相同的含义,因此,不再一一声明。本实施例提供的上述方法,通过在客户端进程中加载页面文件和浏览器内核,由浏览器内核解析页面文件生成客户端界面及得到脚本对象,并通过浏览器内核中的脚本引擎根据脚本对象调用服务组件,在客户端的界面内提供相应的服务,实现了结合web技术和浏览器内核的客户端开发,客户端界面是由浏览器内核解析页面文件后生成的,与现有技术相比,无需在开发包中单独编写界面的开发代码,使得界面开发的大量工作通过浏览器内核得到了简化,极大地缩短了开发周期;而且,浏览器内核基于页面文件中的元素进行界面绘制,这种使用web技术的方式不再受不同操作系统的限制,开发出的客户端可以应用于任何操作系统,无需针对不同的操作系统进行不同的开发,从而极大地简化了开发过程,降低了开发的难度,提高了开发效率。参见图2,本发明另一实施例提供了一种在客户端中提供服务的方法,包括:201:在客户端的进程中,加载页面文件,并加载浏览器内核,在本实施例中,所述页面文件具体为HTML文件。具体地,可以通过加载器来进行页面文件和浏览器内核的加载。202:浏览器内核解析该HTML文件,读取该HTML文件中指定的CSS和JS,其中,通过读取JS可以得到脚本对象。通常,HTML文件中都会指定待绘制的页面所使用的CSS和JS,其中,HTML、CSS和JS的含义与上述实施例中的描述相同,此处不赘述。203:浏览器内核根据HTML文件中的标记元素和CSS绘制客户端的界面。具体地,浏览器内核根据HTML文件中的标记元素和CSS生成界面的渲染图片,在客户端的窗口上绘制该渲染图片得到客户端的界面,其中,所述客户端的窗口无默认的背景和边框。所述客户端的窗口是在创建客户端的进程时就已经创建的一个窗口,是客户端界面的载体。现有技术中在绘制客户端界面时,是先在该窗口上绘制默认的背景,然后再将界面的渲染图片绘制在该背景上,由于绘制默认的背景必然具有形状和颜色等属性,因此,生成的界面也必然受到这些属性的限制,如绘制的背景为长方形时根本无法满足正方形客户端界面的需求等等。本发明实施例中,省略了绘制默认背景的步骤,而是直接在客户端的窗口上绘制界面,绘制出的界面完全由页面文件决定,绘制的界面就是渲染图片本身,没有不必要的界面元素,如不会附带默认的窗口背景和边框等,所述边框是指窗口背景以外的部分,位于窗口的周围,其上还可以有标题栏,按钮等。另外,本发明实施例中绘制出的界面可以是任意形状,还可以包括透明的处理,如界面全部透明或局部透明等等。这种方式不受背景及窗口属性的任何限制,可以满足任何需求的界面,极大地提高了应用的灵活性,具有很强的实用性。例如,参见图3,本实施例使用HTML绘制的界面,可以为图3左边所示的有统一边框的界面,或者也可以为图3右边所示的没有边框的界面,而现有技术无法做到绘制没有边框的界面。204:浏览器内核中的脚本引擎根据所述脚本对象,调用服务组件,在生成的客户端的界面中提供相应的服务。本实施例中的所述脚本对象包括:脚本引擎中内置的脚本对象,和/或,自定义的脚本对象;所述服务组件包括:操作系统提供的通用服务组件,和/或,扩展后的服务组件,具体同上述实施例的描述,此处不赘述。另外,本实施例中还可以采用使用插件的方式在客户端的界面提供相应的服务。所述插件包括但不限于:IE浏览器的ActiveX插件,或其它浏览器的NP (Netscape Plugin,网景插件)插件等等,这些插件可以提供客户端界面上所需的各种功能。当采用这种浏览器扩展方式时,需要单独编写插件的代码且执行插件的安装步骤,并在页面文件中指定所用插件。与所述浏览器扩展方式相比,采用脚本对象调用服务组件的方式,使用上更加简单方便,更重要是安全性可控,通过内嵌脚本对象的方式,可以完全控制脚本的访问范围以及访问权限,从而极大地提高了安全性。参见图4,为本实施例提供的上述方法的整体流程示意图,其中,以加载器执行加载操作为例进行说明。在客户端的进程中,加载器先加载HTML文件以及浏览器内核,然后通知浏览器内核对HTML文件进行解析,浏览器内核通过解析HTML文件以及其指定的CSS和JS,得到脚本对象,根据HTML和CSS绘制客户端界面,并由浏览器内核中的脚本引擎根据该脚本对象调用服务组件,在客户端的界面中提供相应的服务。在图1或图2所示的实施例的基础上,进一步地,在加载页面文件之后,还可以包括:在页面文件中读取客户端的版本信息;向服务器查询客户端是否有最新版本;如果是,则提示用户是否下载客户端的最新版本,当用户选择下载时,从服务器下载客户端的最新版本的页面文件。通过解析页面文件的版本信息,可以确定客户端是否有最新版本,从而可以根据用户的需要完成最新版本的页面文件的下载,能够达到客户端及时更新版本的效果。而且,在没有最新的版本时,无需进行多余的下载操作,减轻了服务器的流量压力。其中,可以在每次加载页面文件后,都进行版本信息的判断,或者也可以定期地对版本信息进行判断,本发明对此不限定。另外,本发明提供的上述任一种方法中,为了进一步地提高安全性,所述页面文件优选地为加密的页面文件,相应地,所述加载页面文件,具体包括:先对加密的页面文件进行解密,然后加载解密后的页面文件。例如,从服务器下载最新版本的页面文件时,页面文件以加密后的密文形式传输,从而可以避免页面文件被非法用户截获,以及恶意修改等危险,提高了安全性。本实施例中,所述服务组件包括:网络服务组件、存储服务组件、进程线程服务组件和媒体服务组件中的至少一种。所述网络服务组件提供网络通讯的功能,如客户端之间建立TCP或UDP连接;存储服务组件提供读写文件的功能;进程线程服务组件提供创建进程线程的功能;媒体服务组件提供访问媒体文件的功能等等。本实施例提供的上述方法,通过在客户端进程中加载页面文件和浏览器内核,由浏览器内核解析页面文件生成客户端界面及得到脚本对象,并通过浏览器内核中的脚本引擎根据脚本对象调用服务组件,在客户端的界面内提供相应的服务,结合了 web技术和浏览器内核实现了客户端的开发,为快速搭建客户端提供了一种可靠的方案。其中,客户端界面是由浏览器内核解析页面文件后生成的,与现有技术相比,无需在开发包中单独编写界面的开发代码,使得界面开发的大量工作通过浏览器内核得到了简化,极大地缩短了开发周期。而且,浏览器内核基于页面文件中的元素进行界面绘制,这种使用web技术的方式不再受不同操作系统的限制,让开发人员忽略具体平台的实现细节,通过简单的标签标记来描述界面,所有元素的实际绘制则由浏览器内核来完成,极大地减少了工作量,且开发人员无需再面对各个操作系统的开发平台和SDK (SoftwareDevelopment Kit,软件开发工具包),而是HTML标准,开发出的客户端可以应用于任何操作系统,无需针对不同的操作系统进行不同的开发,从而极大地简化了开发过程,降低了开发的难度,提高了开发效率。另外,本实施例提供的上述方法,通过脚本对象调用组件来访问操作系统的资源是完全可控的,用户可以根据安全级别的需要来设置不同的脚本对象,有选择性地调用服务组件,从而提高操作系统资源访问的安全性,与现有技术中调用操作系统的SDK可以访问操作系统的所有资源相比,减少了危险操作的发生,极大地提高了安全性。参见图5,本发明又一实施例提供了一种客户端,包括:加载模块501,用于在客户端的进程中,加载页面文件,并加载浏览器内核502 ;浏览器内核502,用于解析加载模块501加载的页面文件,生成客户端的界面,并得到脚本对象,还用于通过浏览器内核502内置的脚本引擎根据脚本对象,调用服务组件,在生成的客户端的界面中提供相应的服务。参见图6,本实施例中,所述页面文件为超文本标记语言HTML文件,浏览器内核502包括:解析模块502a,用于解析HTML文件,读取HTML文件指定的层叠样式表CSS和脚本JS,并根据JS得到脚本对象;绘制模块502b,用于根据解析模块502a读取的HTML文件中的标记元素和CSS,绘制客户端的界面。本实施例中,进一步地,绘制模块502b可以具体用于:根据解析模块502a读取的HTML文件中的标记元素和CSS生成界面的渲染图片,在客户端的窗口上绘制该渲染图片得到客户端的界面,其中,所述客户端的窗口无默认的背景和边框。本实施例中,加载模块501还可以用于:在加载页面文件之后,在页面文件中读取客户端的版本信息,向服务器查询客户端是否有最新版本,如果是,则提示用户是否下载客户端的最新版本,当用户选择下载时,从服务器下载客户端的最新版本的页面文件。本实施例中,所述页面文件为加密的页面文件,加载模块501还用于在加载页面文件之前,对所述加密的页面文件进行解密。本实施例中,所述服务组件包括:网络服务组件、存储服务组件、进程线程服务组件和媒体服务组件中的至少一种。本实施例提供的上述客户端可以执行上述方法实施例中的任一方法,具体过程详见方法实施例中的描述,此处不赘述。本实施例提供的上述客户端,通过在客户端进程中加载页面文件和浏览器内核,由浏览器内核解析页面文件生成客户端界面及得到脚本对象,并通过浏览器内核中的脚本引擎根据脚本对象调用服务组件,在客户端的界面内提供相应的服务,结合了 web技术和浏览器内核实现了客户端的开发,为快速搭建客户端提供了一种可靠的方案。其中,客户端界面是由浏览器内核解析页面文件后生成的,与现有技术相比,无需在开发包中单独编写界面的开发代码,使得界面开发的大量工作通过浏览器内核得到了简化,极大地缩短了开发周期。而且,浏览器内核基于页面文件中的元素进行界面绘制,这种使用web技术的方式不再受不同操作系统的限制,让开发人员忽略具体平台的实现细节,通过简单的标签标记来描述界面,所有元素的实际绘制则由浏览器内核来完成,极大地减少了工作量,且开发人员无需再面对各个操作系统的开发平台和SDK (SoftwareDevelopment Kit,软件开发工具包),而是HTML标准,开发出的客户端可以应用于任何操作系统,无需针对不同的操作系统进行不同的开发,从而极大地简化了开发过程,降低了开发的难度,提高了开发效率。另外,本实施例提供的上述客户端,通过脚本对象调用组件来访问操作系统的资源是完全可控的,用户可以根据安全级别的需要来设置不同的脚本对象,有选择性地调用服务组件,从而提高操作系统资源访问的安全性,与现有技术中调用操作系统的SDK可以访问操作系统的所有资源相比,减少了危险操作的发生,极大地提高了安全性。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种在客户端中提供服务的方法,其特征在于,所述方法包括: 在客户端的进程中,加载页面文件,并加载浏览器内核; 所述浏览器内核解析所述页面文件,生成所述客户端的界面,并得到脚本对象; 所述浏览器内核中的脚本引擎根据所述脚本对象,调用服务组件,在生成的客户端的界面中提供相应的服务。
2.根据权利要求1所述的方法,其特征在于,所述页面文件为超文本标记语言HTML文件,所述浏览器内核解析所述页面文件,生成所述客户端的界面,并得到脚本对象,包括: 所述浏览器内核解析所述HTML文件,读取所述HTML文件指定的层叠样式表CSS和脚本JS ; 根据所述HTML文件中的标记元素和所述CSS绘制所述客户端的界面,并根据所述JS得到脚本对象。
3.根据 权利要求2所述的方法,其特征在于,根据所述HTML文件中的标记元素和所述CSS绘制所述客户端的界面,包括: 根据所述HTML文件中的标记元素和所述CSS生成界面的渲染图片,在所述客户端的窗口上绘制所述渲染图片得到所述客户端的界面,其中,所述窗口无默认的背景和边框。
4.根据权利要求1所述的方法,其特征在于,加载页面文件之后,还包括: 在所述页面文件中读取所述客户端的版本信息; 向服务器查询所述客户端是否有最新版本; 如果是,则提示用户是否下载所述客户端的最新版本,当用户选择下载时,从所述服务器下载所述客户端的最新版本的页面文件。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述页面文件为加密的页面文件,加载页面文件具体包括: 对所述加密的页面文件进行解密,加载解密后的页面文件。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述服务组件包括:网络服务组件、存储服务组件、进程线程服务组件和媒体服务组件中的至少一种。
7.一种客户端,其特征在于,包括: 加载模块,用于在客户端的进程中,加载页面文件,并加载浏览器内核; 所述浏览器内核,用于解析所述加载模块加载的所述页面文件,生成所述客户端的界面,并得到脚本对象,还用于通过内置的脚本引擎根据所述脚本对象,调用服务组件,在生成的客户端的界面中提供相应的服务。
8.根据权利要求7所述的客户端,其特征在于,所述页面文件为超文本标记语言HTML文件,所述浏览器内核包括: 解析模块,用于解析所述HTML文件,读取所述HTML文件指定的层叠样式表CSS和脚本JS,并根据所述JS得到脚本对象; 绘制模块,用于根据所述解析模块读取的所述HTML文件中的标记元素和所述CSS,绘制所述客户端的界面。
9.根据权利要求8所述的客户端,其特征在于,所述绘制模块具体用于:根据所述解析模块读取的所述HTML文件中的标记元素和所述CSS生成界面的渲染图片,在所述客户端的窗口上绘制所述渲染图片得到所述客户端的界面,其中,所述窗口无默认的背景和边框。
10.根据权利要求7所述的客户端,其特征在于,所述加载模块还用于:在加载页面文件之后,在所述页面文件中读取所述客户端的版本信息,向服务器查询所述客户端是否有最新版本,如果是,则提示用户是否下载所述客户端的最新版本,当用户选择下载时,从所述服务器下载所述客户端的最新版本的页面文件。
11.根据权利要求7至10中任一项所述的客户端,其特征在于,所述页面文件为加密的页面文件,所述加载模块还用于在加载页面文件之前,对所述加密的页面文件进行解密。
12.根据权利要求7至10中任一项所述的客户端,其特征在于,所述服务组件包括:网络服务组件、存储服务组 件、进程线程服务组件和媒体服务组件中的至少一种。
全文摘要
本发明公开了一种在客户端中提供服务的方法和客户端,属于客户端开发领域。所述方法包括在客户端的进程中,加载页面文件,并加载浏览器内核;所述浏览器内核解析所述页面文件,生成所述客户端的界面,并得到脚本对象;所述浏览器内核中的脚本引擎根据所述脚本对象,调用服务组件,在生成的客户端的界面中提供相应的服务。所述客户端包括加载模块和浏览器内核。本发明实现了结合web技术和浏览器内核的客户端,极大地缩短了客户端的开发周期,降低了开发难度,且可以应用于任何操作系统,实用性较强。
文档编号H04L29/08GK103179166SQ201110439649
公开日2013年6月26日 申请日期2011年12月23日 优先权日2011年12月23日
发明者董航, 谭志辉, 蔡凯捷, 谢昕虬, 王鹏, 黄奎, 杨文泽, 李斌 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1