移动终端多web页面应用中的页面切换方法及系统技术领域
本发明涉及移动操作系统技术领域,特别涉及一种移动终端多
web页面应用中的页面切换方法及系统。
背景技术
随着信息技术的飞速发展和广泛应用,尤其是随着软硬件技术的
进步,原本只有计算机等大型终端上才具有的开放式操作系统、可扩
展软件、web访问、多任务处理等功能也逐渐可在小型移动终端上实
现了。比如在手机、PDA、平板电脑等数码产品中,各种开放式操作
系统已得到了广泛的应用,极大地丰富了这些小型移动终端的功能,
为数据的处理和人们分享信息带来了极大便利。
随着以ios和android为代表的移动终端操作系统的迅猛发展,
采用web技术开发移动终端应用的技术已经逐渐普及,不少公司和组
织也开发和制定出了相应的产品和规范来指导和规范开发者采用
web技术为移动设备开发应用。比如以PhoneGap为代表的平台产品,
它使得web开发人员通过javascript代码就可开发出具有拨打电话、
发送短信等传统浏览器不具备的功能的web应用。又比如wac widget
和BONDI规范,它们为web应用访问底层设备能力提供了api规范。
然而现有技术中在移动终端开发应用(如采用PhoneGap或者wac
widget规范等进行的应用开发)都是基于单页面的应用。也就是说,
这些产品定义的功能都仅仅在一个html页面的环境中才有效。单页
面虽然能较好地支持小型的简单应用,但是,随着硬件功能的完善、
应用程序的增多及操作系统的复杂化,移动终端上已经开始出现大型
的复杂应用。大部分大型应用的程序功能复杂,不可避免地需要把应
用划分成多个独立的功能模块分别进行控制和实现,如果仍采用单页
面方式处理,所有功能模块只能放入到一个页面的环境中,导致程序
架构混乱、控制复杂,难以实现和维护;且由于单一页面承载了过多
的内容,极易造成程序冲突,而单一页面环境下任何错误都将导致应
用的整体崩溃。
发明内容
(一)要解决的技术问题
针对现有技术的上述缺陷,本发明为了解决现有技术中单页面方
式无法支持大型应用的技术问题,提供了一种移动终端多web页面应
用中的页面切换方法及系统。
(二)技术方案
为实现上述目的,本发明采用如下技术方案:
一方面,本发明提供一种移动终端多web页面应用中的页面切换
方法,所述方法包括步骤:
S1,应用运行过程中,根据应用逻辑产生新页面加载请求,并指
定新页面与当前页面的关系;
S2,解析并记录新页面地址以及新页面和当前页面的对应关系;
S3,创建新页面运行实例,根据新页面地址加载新页面,随后将
新页面状态切换为运行状态并切换相关页面的运行状态;
S4,当新页面运行结束后将产生结束请求,根据指定的页面关系
获得新页面的父亲页面,随后通知新页面进入结束状态并同时通知其
父亲页面重新恢复到运行状态。
优选地,步骤S1前还包括步骤S0:应用启动,创建并加载运行
应用的根页面。
优选地,步骤S0具体包括:
S0-1,向用户呈现所有应用,用户选择某一应用运行;
S0-2,查找该应用的信息,并获取该应用的根页面的地址;
S0-3,记录根页面作为该应用的根页面;
S0-4,根页面运行实例被创建,通过根页面的地址加载并运行根
页面。
优选地,新页面与当前页面的对应关系为父子关系或兄弟关系。
优选地,步骤S3中,如果是指定父子关系而创建的子页面,则新
页面运行时只将父页面切换到非运行状态;如果是指定兄弟关系而创
建的兄弟页面,则新兄弟页面运行时将原有兄弟页面直接结束。
优选地,在步骤S3中,当切换页面的运行状态时,同时在页面之
间传递数据。
优选地,在数据传递过程中对数据的合法性进行校验。
优选地,所述在页面之间传递数据具体指:当页面发生跳转时同
时把页面参数从原页面传递到目标页面中。
另一方面,本发明还同时提供一种移动终端多web页面应用中的
页面切换系统,所述系统包括:
页面容器模块,用于在应用运行过程中根据应用逻辑产生新页面
加载请求,并指定新页面与当前页面的对应关系;
关系管理模块,用于解析并记录新页面地址以及新页面和当前页
面的对应关系;
页面运行模块,用于创建新页面运行实例,根据新页面地址加载
新页面,随后将新页面状态切换为运行状态并切换相关页面的运行状
态;
结束返回模块,用于在新页面运行结束后产生结束请求,根据指
定的页面关系获得其父亲页面,随后通知新页面进入结束状态并同时
通知其父亲页面重新恢复到运行状态。
再一方面,本发明还同时提供一种移动终端多web页面应用中的
页面切换系统,所述系统包括web应用管理模块、页面运行容器模块
和页面管理模块,其中:
web应用管理模块:负责管理本系统上可以使用的web应用的信
息,该模块包括:
a)web应用部署管理模块:负责安装、更新和卸载web应用,并记
录每个已经安装部署的web应用关键结构信息;
b)应用管理GUI模块:提供GUI的入口,并为用户使用web应用
提供GUI的呈现;
页面运行容器模块:负责加载和运行指定的页面,为页面提供了
扩展javascript功能接口,并处理页面返回过程;
页面管理模块:负责在运行时维护该应用中各个页面的角色、运
行状态以及页面之间的关系,其包含以下两个模块:
页面关系管理模块:在运行时根据页面的请求创建新的页面运行
实例来加载新的页面,同时记录两个页面的关系;
页面数据交换管理模块:负责在页面之间传递数据。
(三)有益效果
本发明的技术方案中,通过多页面的运行管理,有效地支持了多
web页面的移动终端应用,应用开发不再仅局限于单页面,极大地降
低了应用的开发复杂度,使得系统中可以集成更多的应用或是可以实
现程序功能更为复杂的大型应用。此外,本发明可在多页面之间进行
状态切换,实现了高级页面功能控制,使应用运行架构清楚明了,方
便了应用的实现和维护,避免了程序冲突,降低了系统崩溃的概率,
保证了系统的可靠性并极大地提升了系统性能。
附图说明
图1是本发明实施例中移动终端中多web页面应用切换方法流程
示意图;
图2是本发明实施例中应用启动过程的方法流程示意图;
图3是本发明的一个实施例中父子页面的切换方法流程示意图;
图4是本发明的另一个实施例中兄弟页面的切换方法流程示意
图;
图5是本发明实施例中移动终端中多web页面应用切换系统虚拟
模块结构示意图;
图6是本发明实施例中移动终端中多web页面应用切换系统软件
功能模块结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方
案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分
实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通
技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,
都属于本发明保护的范围。
本发明中,为了更好地对具有多个不同功能模块的大型应用提供
支持,首先提出了一种基于多页面的应用方式,以及在移动终端上如
何实现能支持运行该应用方式的运行环境的系统。基于这种应用方式
和运行环境,本发明可以允许在web应用包含多个页面,同时本发明
中可支持应用在运行时自由地在多个页面间调用和切换,实现了对
web应用的复杂控制的支持。
首先描述一下本发明中基于多页面的web应用的典型模型。
该应用模型对web应用做出如下约束准则:
1)一个应用必须包含至少一个html页面以及相应的css和
javascript文件。
2)应用的页面根据其逻辑功能不同可分为如下种类:
a)根页面:代表整个应用的入口页面,也就是说,应用在启动时,
运行环境将首先加载该页面。应用只能包含一个根页面。
b)副页面:应用中除了根页面外的其他页面都是副页面。
3)应用的页面关系:
应用程序在运行时,根据应用逻辑来控制页面的跳转和切换,从
而形成了页面关系。在本应用模型中存在以下两种页面关系:
a)父子关系:当页面A请求运行环境打开页面B时,可以指定页
面B成为其孩子页面,这时页面A和页面B就形成父子关系,页面A是
页面B的“父亲”,而页面B成为页面A的“孩子”。
b)兄弟关系:当页面A请求运行环境打开页面B时,可以指定页
面B是其兄弟。这时页面A和页面B就形成兄弟关系。
需要强调的是应用页面的关系不是一个静态的概念,它由应用在
运行时来控制。比如,应用在运行时可以让页面B作为页面A的儿子,
也可以相反,这个完全取决于应用的逻辑。
基于上述设定,如图1所示,本发明的移动终端中多web页面应用
切换方法通用地包括步骤:
S1,应用运行过程中,根据应用逻辑产生新页面加载请求,并指
定新页面与当前页面的关系;
S2,解析并记录新页面地址以及新页面和当前页面的对应关系;
S3,创建新页面运行实例,根据新页面地址加载新页面,随后将
新页面状态切换为运行状态并切换相关页面的运行状态;
S4,当新页面运行结束后将产生结束请求,根据指定的页面关系
获得新页面的父亲页面,随后通知新页面进入结束状态并同时通知其
父亲页面重新恢复到运行状态。
其中,上述步骤S1前还包括步骤S0:应用启动,创建并加载运行
应用的根页面。
更具体地,如图2所示,一个新的应用A的启动过程包括步骤:
S0-1,向用户呈现所有应用(比如在图形用户接口GUI中显示),
用户选择运行“应用A”;
S0-2,查找“应用A”的信息进行应用部署,并获取该应用A的
根页面a的地址;
S0-3,进行页面管理,记录根页面a作为该应用的根页面;
S0-4,根页面运行实例被创建,通过根页面a的地址加载并运行
根页面a。
本发明中,应用的页面关系包括父子关系和兄弟关系,因此,上
述切换方法进一步包括父子页面的切换和兄弟页面的切换。下面通过
2个具体实施例对这两种切换方式做进一步的说明。
实施例1
在本发明的实施例1中,通过在页面a和其子页面b之间的切换操
作进行说明,具体地,如图3所示,父子页面的切换过程为:
S1′,页面a请求加载页面b,并要求页面b成为自己的子页面;
S2′,解析页面b的地址,并记录页面a成为页面b的父亲;
S3′,页面b的运行实例被创建,并根据页面b的地址加载页面b,
将页面b切换进入运行状态,同时将页面a切换进入非运行状态;
S4′,当页面b请求结束运行时,检查运行记录,找到页面b的父
亲是页面a,此时将通知页面b进入结束状态,而通知页面a重新恢复
到运行状态。
实施例2
在本发明的实施例2中,通过在页面b和其兄弟页面c之间的切换
操作进行说明,为进一步说明页面b、c的控制流程,本实施例2中首
先详细说明了通过页面a得到其子页面b的过程。因此,如图4所示,
在本实施例2中,兄弟页面的全部切换过程为:
S1″,页面a请求加载页面b,并要求页面b成为自己的子页面;
S2″,解析页面b的地址,并记录页面a成为页面b的父亲;
S3″,页面b的运行实例被创建,并根据页面b的地址加载页面b,
将页面b切换进入运行状态,同时将页面a切换进入非运行状态;
S3″-1,页面b请求加载页面c,并指示页面c成为自己的兄弟页面;
S3″-2,请求解析页面c的地址,并记录页面b成为页面c的兄弟;
S3″-3,页面c的运行实例被创建,并根据页面c的地址加载页面c,
将页面c切换进入运行状态,同时将页面b直接结束;
S4″,页面c请求停止运行时,检查运行记录,找到页面c的父亲
是页面a,此时将通知页面c进入结束状态,而通知页面a重新恢复到
运行状态。
可以看出,在本发明的方法中,步骤S3进行页面状态切换时,如
果是通过父页面创建的子页面,则新页面运行时只将父页面切换到非
运行状态;如果是通过兄弟页面创建的兄弟页面,则新兄弟页面运行
时将原有兄弟页面直接结束。
由于本发明的方法中随时可能产生加载新页面的请求,因此对于
某一页面,当其在运行状态时(即完成其自身的步骤S3之后),随时
可根据请求执行新页面的处理过程,执行新页面对应的步骤S1-S4。
此外,在步骤S3中,当切换页面的运行状态时,同时在页面之间
传递数据。即当页面发生跳转时同时把页面参数从原页面传递到目标
页面中;此外,在数据传递过程中还对数据的合法性进行校验。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或
部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以
存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施
例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光
盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括
一种移动终端中多web页面应用切换系统,该系统通常以与方法各步
骤相对应的功能模块的形式表示;如图5所示,所述系统包括:
页面容器模块,用于在应用运行过程中根据用户的输入产生新页
面加载请求;
关系管理模块,用于解析并记录新页面地址和新页面的对应关
系;
页面运行模块,用于创建新页面运行实例,根据新页面地址加载
新页面,将新页面状态切换为运行状态并切换相应页面的运行状态;
结束返回模块,用于当新页面运行结束后产生结束请求时,根据
新页面的对应关系查找其父亲页面,通知新页面进入结束状态并同时
通知其父亲页面重新恢复到运行状态。
为便于理解,下面更进一步地以软件设计的角度来说明本发明系
统的功能模块划分,参见图6,本发明的系统具体包括Web应用管理
模块101、页面运行容器模块201和页面管理模块301,其中:
1.Web应用管理模块101:负责管理本系统上可以使用的web app
的信息。更进一步地,该模块主要包含以下两个子模块:
a)Web应用部署管理模块111:主要负责安装、更新和卸载web
app,此外还记录每个已经安装部署的web app关键结构信息,其中包
括:应用名称和根页面的地址。
b)应用管理GUI(Graphic User Interface,图形用户界面)模块112:
具有两个主要功能——为模块111的功能提供GUI的入口,以及为用
户使用web应用提供GUI的呈现,用户可以通过其来启动已经部署到
本系统的web应用。
2.页面运行容器模块201:包含了一个类似浏览器的模块,只需
要指定页面加载地址,就负责加载和运行指定的页面。此外,还为页
面提供了扩展javascript功能接口,使得页面可以访问传统浏览器不具
备的功能。在本发明的系统中,在现有技术的基础上增加了对多页面
模型的支持,具体而言,该模块为页面提供了一下两个方法:
a)打开页面:页面通过该方法请求加载新的页面,并指定自己与
新页面的关系。
b)返回:页面通过该方法返回自己的父亲页面。如果页面是根页
面,那么整个应用将结束运行。
3.页面管理模块301:每个应用启动时,系统将为该应用专门创
建一个该模块的实例。该实例负责在运行时维护该应用中各个页面的
角色(根页面还是子页面),运行状态以及它们之间的关系(父子还
是兄弟)。该模块是本发明的关键创新,其包含以下两个模块:
a)页面关系管理模块311:该模块在运行时根据页面的请求创建
新的页面运行实例(即页面运行容器模块201的实例)来加载新的页
面,同时记录两个页面的关系。
b)页面数据交换管理模块312:该模块负责在页面之间传递数据。
即当页面发生跳转时该模块负责把参数从原页面传递到目标页面中。
此外,还负责对数据的合法性进行校验。
若将图5与图6对照说明,则图5中的页面容器模块和结束返回模
块与图6中的页面运行容器模块201基本对应,图5中的关系管理模块
和页面运行模块与图6中的页面管理模块201基本对应,而图6中的
Web应用管理模块101则主要在应用启动和运行过程中进行外部和上
位的管理。本领域普通技术人员应该理解,图5中的系统是与方法步
骤一一对应的虚拟模块划分,而图6中的系统是本发明的软件功能模
块划分,两者均是本发明系统的模块结构,只是同一实施例的不同表
述方式而已,不应视作对本发明具体实施方式的限制。
本发明的技术方案中,通过多页面的运行管理,有效地支持了多
web页面的移动终端应用,应用开发不再仅局限于单页面,极大地降
低了应用的开发复杂度,使得系统中可以集成更多的应用或是可以实
现程序功能更为复杂的大型应用。此外,本发明可在多页面之间进行
状态切换,实现了高级页面功能控制,使应用运行架构清楚明了,方
便了应用的实现和维护,避免了程序冲突,降低了系统崩溃的概率,
保证了系统的可靠性并极大地提升了系统性能。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关
技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,
还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明
的范畴,本发明的专利保护范围应由权利要求限定。