一种多窗口的实现方法及装置的制作方法

文档序号:6438672阅读:161来源:国知局
专利名称:一种多窗口的实现方法及装置的制作方法
技术领域
本发明涉及通信领域,特别涉及一种多窗口的实现方法及装置。
背景技术
目前当使用终端的浏览器打开一个窗口时,还可以从该窗口中打开一个或多个新窗口,实现过程可以具体为:通过浏览器打开一个窗口,若该窗口的文本文件中包括一个或多个用于打开新窗口的代码,则调用浏览器自带的窗口创建函数,并将需要打开的新窗口的相关配置信息传输给浏览器,该相关配置信息可以包括URL (Uniform/UniversalResource Locator,统一资源定位符)等信息;浏览器根据相关配置信息打开新窗口。调用浏览器自带的窗口创建函数时,系统会创建一个进程,该进程来运行浏览器浏览器自带的窗口创建函数并通过该进程打开新窗口,如此系统创建的进程数目会随着打开的新窗口的数目呈线性增长,而占用大量的系统资源。

发明内容
为了减少占用系统资源,本发明实施例提供了一种多窗口的实现方法及装置。所述技术方案如下:一种多窗口的实现方法,所述方法包括:终端加载主窗口,并在加载时将窗口操作函数加载到所述主窗口中;当需要打开新窗口时,从所述主窗口中调用所述窗口操作函数中的窗口创建函数;通过所述窗口创建函数在所述主窗口的进程中打开所述新窗口。所述终端在加载所述主窗口时,若解析到用于打开新窗口的代码,则确定需要打开新窗口 ;或,所述终端在加载主窗口后,接收到用户在所述主窗口中提交的用于打开新窗口的请求,则确定需要打开新窗口,并根据所述请求获取用于打开所述新窗口的代码。从所述主窗口中调用所述窗口操作函数中的窗口创建函数,包括:从所述用于打开新窗口的代码中提取窗口创建函数的标识,从所述主窗口中调用所述窗口创建函数的标识对应的窗口创建函数。所述通过所述窗口创建函数在所述主窗口的进程中打开所述新窗口,包括:所述终端通过所述主窗口的进程运行所述窗口创建函数,并获取所述新窗口的窗口配置信息;根据所述新窗口的窗口配置信息,生成所述新窗口,并将所述新窗口插入到所述主窗口的窗口数组中。如果需创建的新窗口是以框架Frame控件为载体的窗口,则所述窗口配置信息,包括统一资源定位符URL、所述新窗口的标识、宽度、高度、z次序、窗体可见值以及所述新窗口在所述主窗口中的位置坐标;所述根据所述新窗口的窗口配置信息,生成所述新窗口包括:根据所述新窗口的标识、宽度、高度、z次序、窗体可见值以及所述新窗口在所述主窗口的位置坐标,创建所述新窗口的窗体;并根据所述URL下载所述新窗口的内容,在所述新窗口的窗体中渲染所述内容。如果需创建的新窗口是以小窗体Widget控件为载体的窗口,则所述窗口配置信息,包括所述新窗口的标识、标题、宽度、高度、窗口内容、色彩空间RGBA格式以及所述新窗口在所述主窗口的位置坐标;所述根据所述新窗口的窗口配置信息,生成所述新窗口包括:根据所述新窗口的标识、标题、宽度、高度、RGBA格式以及所述新窗口在所述主窗口的位置坐标,创建所述新窗口的窗体;并向所述新窗口的窗体中加载所述窗口内容。所述通过所述窗口创建函数在所述主窗口的进程中打开所述新窗口之后,还包括:接收用户提交的事件,获取焦点所在的窗口的标识,根据所述获取的窗口的标识从所述主窗口的窗口数组中获取对应的窗口,将所述事件提交给所述获取的窗口,由所述获取的窗口对所述事件进行处理。一种多窗口的实现装置,所述装置包括:加载模块,用于加载主窗口,并在加载时将窗口操作函数加载到所述主窗口中;调用模块,用于当需要打开新窗口时,从所述主窗口中调用所述窗口操作函数中的窗口创建函数;打开模块,于通过所述窗口创建函数在所述主窗口的进程中打开所述新窗口。所述调用模块根据所述加载模块在加载所述主窗口时,解析到的用于打开新窗口的代码,确定需要打开新窗口 ;或,在所述加载模块在加载主窗口后,根据接收到的用户在所述主窗口中提交的用于打开新窗口的请求,确定需要打开新窗口,并根据所述请求获取用于打开所述新窗口的代码。所述调用模块,具体用于在确定当需要打开新窗口时,从所述用于打开新窗口的代码中提取窗口创建函数的标识,从所述主窗口中调用所述窗口创建函数的标识对应的窗口创建函数。所述打开模块具体用于通过所述主窗口的进程运行所述窗口创建函数,并获取所述新窗口的窗口配置信息;根据所述新窗口的窗口配置信息,生成所述新窗口 ;将所述新窗口插入到所述主窗口的窗口数组中。如果需创建的新窗口是以框架Frame控件为载体的窗口,则所述窗口配置信息,包括统一资源定位符URL、所述新窗口的标识、宽度、高度、z次序、窗体可见值以及所述新窗口在所述主窗口中的位置坐标;所述打开模块在生成所述新窗口时,具体用于根据所述新窗口的标识、宽度、高度、z次序、窗体可见值以及所述新窗口在所述主窗口的位置坐标,创建所述新窗口的窗体;并根据所述URL下载所述新窗口的内容,在所述新窗口的窗体中渲染所述内容。如果需创建的新窗口是以小窗体Widget控件为载体的窗口,则所述窗口配置信息,包括所述新窗口的标识、标题、宽度、高度、窗口内容、色采空间RGBA格式以及所述新窗口在所述主窗口的位置坐标;所述打开模块在生成所述新窗口时,具体用于根据所述新窗口的标识、标题、宽度、高度、RGBA格式以及所述新窗口在所述主窗口的位置坐标,创建所述新窗口的窗体;并向所述新窗口的窗体中加载所述窗口内容。所述装置还包括:处理模块,用于接收用户提交的事件,获取焦点所在的窗口的标识,根据所述获取的窗口的标识从所述主窗口的窗口数组中获取对应的窗口,将所述事件提交给所述获取的窗口,由所述获取的窗口对所述事件进行处理。在本发明实施例中,终端加载主窗口,并在加载时将窗口操作函数加载到主窗口中,当需要打开新窗口时,从主窗口中调用窗口操作函数中的窗口创建函数,通过调用的窗口创建函数在主窗口的进程中打开新窗口,如此可以通过一个主窗口进程来打开需要打开的各新窗口,从而不需要创建新的进程,所以创建的进程数目不会随着需要打开的新窗口的数目呈线性增长,节省大量的系统资源。


图1是本发明一实施例提供的一种多窗口的实现方法流程图;图2是本发明另一实施例提供的一种多窗口的实现方法流程图;图3是本发明另一实施例提供的一种多窗口的实现装置示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。如图1所示,本发明实施例提供了一种多窗口的实现方法,包括:步骤101:终端加载主窗口,并在加载时将窗口操作函数加载到主窗口中;其中,该终端可以是具有浏览器功能的终端,如,机顶盒。具体的,终端通过浏览器加载主窗口,该主窗口可以是预先设置的,如,机顶盒的主页面,也可以是用户输入的,如由用户输入URL。需要说明的是,本发明实施例中的窗口操作函数可以包括:窗口创建函数、窗口删除函数等,这些窗口操作函数是自定义函数,可以用于在主窗口进程中进行创建、删除窗口等操作,具体可参考表I。步骤102:当需要打开新窗口时,从主窗口中调用窗口操作函数中的窗口创建函数;具体的,在加载主窗口的过程中,若解析到用于打开新窗口的代码,则确定需要打开新窗口 ;或者,在加载主窗口后,终端接收到用户在主窗口中提交的用于打开新窗口的请求,则确定需要打开新窗口,此时,终端根据该请求获取用于打开新窗口的代码。终端从用于打开新窗口的代码中提取窗口创建函数的标识,根据该窗口创建函数的标识从主窗口中调用其对应的窗口创建函数。步骤103:通过调用的窗口创建函数在主窗口的进程中打开新窗口。由于窗口创建函数加载在主窗口中,因此调用窗口创建函数时,由主窗口的进程来运行该窗口创建函数,从而由主窗口进程来打开新窗口。在本发明实施例中,终端利用加载到主窗口中的窗口操作函数,在主窗口进程中打开新窗口,从而不需要为新窗口创建新的进程,减少了进程数目,节省大量的系统资源。在具体实现时,上述步骤103可以具体包括:1031:终端通过主窗口的进程运行从主窗口中调用的窗口创建函数,并获取新窗口的窗口配置信息;具体的,终端可以从用于打开新窗口的代码中获取新窗口的窗口配置信息。其中,如果需创建的新窗口是以Frame控件为载体的窗口,则新窗口的窗口配置信息,包括URL、新窗口的标识、宽度、高度、zIndeX(z次序)、窗体可见值以及新窗口在主窗口中的位置坐标;如果需创建的新窗口是以Widget控件为载体的窗口,则新窗口的窗口配置信息,包括所述新窗口的标识、标题、宽度、高度、窗口内容、RGBA (Red (红色)Green (绿色)Blue (蓝色)和Alpha(图像通道),色彩空间)格式以及新窗口在主窗口的位置坐标。需要创建的窗口类型由用于打开新窗口的代码决定。1032:根据新窗口的窗口配置信息,生成新窗口 ;具体的,如果创建的是以Frame控件为载体的窗口,则根据新窗口的标识、宽度、高度、zlndex、窗体可见值以及新窗口在主窗口的位置坐标,创建新窗口的窗体;并根据窗口配置信息中的URL下载新窗口的内容,在新窗口的窗体中渲染下载的内容,从而生成新窗口。如果创建的是以Widget控件为载体的窗口,则根据新窗口的标识、标题、宽度、高度、RGBA格式以及新窗口在主窗口的位置坐标,创建新窗口的窗体;并向新窗口的窗体中加载新窗口的窗口内容,从而生成新窗口。1033:将新窗口插入到主窗口的窗口数组中。需要说明的是,在加载窗口操作函数到主窗口中时,可进一步在主窗口中创建窗口数组用于存储后面创建的新窗口,具体过程可参考后面具体实施例中的描述。终端加载主窗口,并在加载时将窗口操作函数加载到主窗口中,当需要打开新窗口时,从主窗口中调用窗口操作函数中的窗口创建函数,通过调用的窗口创建函数在主窗口的进程中打开新窗口,如此可以通过一个主窗口进程来打开需要打开的各新窗口,从而不需要创建新的进程,所以创建的进程数目不会随着需要打开的新窗口的数目呈线性增长,节省大量的系统资源。下面通过一个具体的实施例来对本发明的方案进行进一步详细的说明,参见图2,本实施例以用户输入URL来打开主窗口为例,该方法包括:步骤201:终端接收打开主窗口的请求,根据该请求创建主窗口进程;其中,用户可以在终端的浏览器中输入主窗口的URL,并提交打开主窗口的请求。需要说明的是,本实施中是用户输入URL来打开主窗口,在其它实施例中也可以事先在终端中配置主窗口,如,事先存储主窗口对应的URL,当系统启动时,直接获取事先存储主窗口的对应的URL。步骤202:加载主窗口,并在加载主窗口时,将窗口操作函数加载到主窗口中;具体地,终端利用创建的主窗口进程加载主窗口,在加载主窗口的过程中,首先将自身存储的窗口操作函数加载到主窗口中,然后根据主窗口对应的URL,获取对应的文本文件,该文本文件为实现主窗口的Html (Hypertext Markup Language,文本标记语言)代码或xml (Extensible Markup Language,可扩展标记语言)代码等;终端对获取的代码进行解析并加载。其中,窗口操作函数是自定义函数,可预先存储于终端中,其具体结构可以如表I所示:表I
权利要求
1.一种多窗口的实现方法,其特征在于,所述方法包括: 终端加载主窗口,并在加载时将窗口操作函数加载到所述主窗口中; 当需要打开新窗口时,从所述主窗口中调用所述窗口操作函数中的窗口创建函数; 通过所述窗口创建函数在所述主窗口的进程中打开所述新窗口。
2.如权利要求1所述的方法,其特征在于,所述终端在加载所述主窗口时,若解析到用于打开新窗口的代码,则确定需要打开新窗口 ;或, 所述终端在加载主窗口后,接收到用户在所述主窗口中提交的用于打开新窗口的请求,则确定需要打开新窗口,并根据所述请求获取用于打开所述新窗口的代码。
3.如权利要求2所述的方法,其特征在于,从所述主窗口中调用所述窗口操作函数中的窗口创建函数,包括: 从所述用于打开新窗口的代码中提取窗口创建函数的标识,从所述主窗口中调用所述窗口创建函数的标识对应的窗口创建函数。
4.如权利要求1-3任一项所述的方法,其特征在于,所述通过所述窗口创建函数在所述主窗口的进程中打开所述新窗口,包括: 所述终端通过所述主窗口的进程运行所述窗口创建函数,并获取所述新窗口的窗口配置信息; 根据所述新窗口的窗口配置信息,生成所述新窗口,并将所述新窗口插入到所述主窗口的窗口数组中。
5.如权利要求4所述的方法,其特征在于, 如果需创建的新窗口是以框架Frame控件为载体的窗口,则所述窗口配置信息,包括统一资源定位符URL、所述新窗口的标识、宽度、高度、z次序、窗体可见值以及所述新窗口在所述主窗口中的位置坐标;所述根据所述新窗口的窗口配置信息,生成所述新窗口包括: 根据所述新窗口的标识、宽度、高度、z次序、窗体可见值以及所述新窗口在所述主窗口的位置坐标,创建所述新窗口的窗体; 并根据所述URL下载所述新窗口的内容,在所述新窗口的窗体中渲染所述内容。
6.如权利要求4所述的方法,其特征在于,如果需创建的新窗口是以小窗体Widget控件为载体的窗口,则所述窗口配置信息,包括所述新窗口的标识、标题、宽度、高度、窗口内容、色彩空间RGBA格式以及所述新窗口在所述主窗口的位置坐标;所述根据所述新窗口的窗口配置信息,生成所述新窗口包括: 根据所述新窗口的标识、标题、宽度、高度、RGBA格式以及所述新窗口在所述主窗口的位置坐标,创建所述新窗口的窗体; 并向所述新窗口的窗体中加载所述窗口内容。
7.如权利要求1-6任一项权利要求所述的方法,其特征在于,所述通过所述窗口创建函数在所述主窗口的进程中打开所述新窗口之后,还包括: 接收用户提交的事件,获取焦点所在的窗口的标识,根据所述获取的窗口的标识从所述主窗口的窗口数组中获取对应的窗口,将所述事件提交给所述获取的窗口,由所述获取的窗口对所述事件进行处理。
8.一种多窗口的实现装置,其特征在于,所述装置包括:加载模块,用于加载主窗口,并在加载时将窗口操作函数加载到所述主窗口中; 调用模块,用于当需要打开新窗口时,从所述主窗口中调用所述窗口操作函数中的窗口创建函数; 打开模块,于通过所述窗口创建函数在所述主窗口的进程中打开所述新窗口。
9.如权利要求8所述的装置,其特征在于,所述调用模块根据所述加载模块在加载所述主窗口时,解析到的用于打开新窗口的代码,确定需要打开新窗口 ;或, 在所述加载模块在加载主窗口后,根据接收到的用户在所述主窗口中提交的用于打开新窗口的请求,确定需要打开新窗口,并根据所述请求获取用于打开所述新窗口的代码。
10.如权利要求9所述的装置,其特征在于, 所述调用模块,具体用于在确定当需要打开新窗口时,从所述用于打开新窗口的代码中提取窗口创建函数的标识,从所述主窗口中调用所述窗口创建函数的标识对应的窗口创建函数。
11.如权利要求8-10任一项所述的装置,其特征在于,所述打开模块具体用于通过所述主窗口的进程运行所述窗口创建函数,并获取所述新窗口的窗口配置信息;根据所述新窗口的窗口配置信息,生成所述新窗口 ;将所述新窗口插入到所述主窗口的窗口数组中。
12.如权利要求11所述的装置,其特征在于, 如果需创建的新窗口是以框架Frame控件为载体的窗口,则所述窗口配置信息,包括统一资源定位符URL、所述新窗口的标识、宽度、高度、z次序、窗体可见值以及所述新窗口在所述主窗口中的位置坐标;所述打开模块在生成所述新窗口时,具体用于 根据所述新窗口的标识、宽度`、高度、z次序、窗体可见值以及所述新窗口在所述主窗口的位置坐标,创建所述新窗口的窗体; 并根据所述URL下载所述新窗口的内容,在所述新窗口的窗体中渲染所述内容。
13.如权利要求11所述的装置,其特征在于,如果需创建的新窗口是以小窗体Widget控件为载体的窗口,则所述窗口配置信息,包括所述新窗口的标识、标题、宽度、高度、窗口内容、色彩空间RGBA格式以及所述新窗口在所述主窗口的位置坐标;所述打开模块在生成所述新窗口时,具体用于 根据所述新窗口的标识、标题、宽度、高度、RGBA格式以及所述新窗口在所述主窗口的位置坐标,创建所述新窗口的窗体; 并向所述新窗口的窗体中加载所述窗口内容。
14.如权利要求8-13任一项权利要求所述的装置,其特征在于,所述装置还包括: 处理模块,用于接收用户提交的事件,获取焦点所在的窗口的标识,根据所述获取的窗口的标识从所述主窗口的窗口数组中获取对应的窗口,将所述事件提交给所述获取的窗口,由所述获取的窗口对所述事件进行处理。
全文摘要
本发明实施例提供了一种多窗口的实现方法及装置,涉及通信领域,所述方法包括终端加载主窗口,并在加载时将窗口操作函数加载到所述主窗口中;当需要打开新窗口时,从所述主窗口中调用所述窗口操作函数中的窗口创建函数;通过所述窗口创建函数在所述主窗口的进程中打开所述新窗口。所述装置包括加载模块、调用模块和打开模块。本发明能够减少占用系统资源。
文档编号G06F9/445GK103116503SQ20111036585
公开日2013年5月22日 申请日期2011年11月17日 优先权日2011年11月17日
发明者邱香膏, 徐雪松, 李国军, 黄永浩 申请人:华为软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1