一种Web App开发框架及方法
技术领域
本发明涉及Web App开发技术领域,尤其涉及一种Web App开发框架及方法。
背景技术
随着互联网的快速发展,HTML5、CSS3和Javascript等网页开发技术日益强大,WebApp(即基于Web的系统和应用)开始越来越盛行,其中以企业App最盛。目前,为了提高企业App快速迭代和升级,通常采用HTML5、CSS3和Javascript等网页开发技术中单一的某种技术进行纯WEB技术开发,或采用其中某些技术进行混合WEB技术开发。基于这种趋势,每个企业都会有自己的一套App开发组件,即具备符合企业业务性质的业务组件,如常见的列表组件、表单组件等,每个企业的系统或者APP都是通过一个个组件组合而成的,所以企业都需要一套框架来管理自己的组件,比如一个办公自动化系统(OA,Office AutomaticSystem),它有列表页面和详情页面,每个页面包括按钮控件,其中,列表、详情按钮对应的就是一个个单独的组件,也就是说,一个OA系统就是通过类似这样的组件组合而成的。
因为每个组件本身是一个个独立的元素,每个元素之间都是解耦合的,所以在组合成一个系统或者一个应用的时候,需要框架来管理它们之间的数据和业务逻辑的关系,目前多使用继承的方式进行管理,把各个组件进行关联,具体而言,框架A为父级,包含一个方法funA,那么隶属于框架A的子级组件A1继承框架A的方法funA的功能,从而实现框架A对组件A1的管理。现有技术中就是如此先把组件通过继承框架类的方式组合到框架中,通过控制器来对各组件进行关联。遵循这种管理原则,市场上衍生出了很多组件管理框架,如现在流行的前端开发框架MVC、Sencha Touch等。这些框架基本上都是通过继承和事件委托的方法进行组件之间关联的,并且通常为“模型-视图-控制器”(MVC,Model ViewController)模式的开发框架,MVC框架能够使业务和展现分离,具有一定的开发优势;如基于Sencha Touch MVC框架进行组件项目开发,能够使开发的Web App具有强大的模块化功能、丰富的配置信息以及炫丽的视觉效果。
但本申请发明人在实现本申请实施例中技术方案的过程中,发现上述技术至少存在如下技术问题:
目前,开发人员通过将各个组件的关联移除或注入框架,从而组合成Web App是非常麻烦的,需要大量的继承式代码才能实现,也就是说,开发人员需要写大量的代码进行组件间的关联;并且对于Web App的单网页应用来说,每个页面可能存在十几个组件,如列表组件、表单组件、按钮组件、附件组件、轮播图片组件等,现有技术中的框架无法管理这些组件间的冲突、数据流和参数的分发,需要开发人员自己撰写代码解决这个问题;进一步,在实现Web App的层级切换时,以单页面应用为例,若一个单页面中存在10个功能点,每个功能点即代表着一个层级,层级之间是有逻辑关联的,即通过控制各层级显示或隐藏来实现层级切换,并且每个层级的显示或者隐藏都是通过前一个层级的参数或者操作来控制,同样需要开发人员在现有框架的基础上写大量的代码和判断来实现。也就是说,在现有技术中存在Web App开发框架开发效率低,需要开发人员撰写大量代码的技术问题。
发明内容
本申请实施例通过提供一种Web App开发框架及方法,解决了现有技术中Web App开发框架开发效率低,需要开发人员撰写大量代码的技术问题;实现了Web App开发框架根据用户的App开发需求,对App组件进行封装,以便对其进行模块化管理,用户在开发App的过程中不需要花费大量的时间撰写代码来控制关联各个App组件,只需要将组件的业务逻辑写好即可,大大减少开发人员的编码时间,让项目开发专注在业务逻辑上,提高了开发效率。
一方面,本申请实施例提供了一种Web App开发框架,所述Web App由M个App组件组成,其中,M为大于等于1的整数,所述开发框架包括:
控制管理区域,包括:事件控制模块、数据模块和主模块;
逻辑层级区域,包括:系统平台层、组件层和业务逻辑层;
其中,所述事件控制模块,用于接收用于开发所述Web App的用户事件请求,基于所述用户事件请求生成委托信息,并将所述委托信息发送于所述数据模块;
所述数据模块,用于接收所述委托信息,并基于所述委托信息获得内部配置参数,并将所述内部配置参数发送于所述主模块;
所述主模块,用于基于所述内部配置参数在所述组件层生成所述M个App组件,并对所述M个App组件进行模块化封装处理,同时控制所述M个App组件与所述系统平台层进行关联,以使所述M个App组件在所述业务逻辑层实现业务逻辑,获得所述Web App。
可选的,所述主模块具体包括:
组件注入子模块,用于在接收所述内部配置参数时,向所述组件层注入所述M个App组件;
初始化子模块,用于在所述组件注入子模块向所述组件层注入所述M个App组件的同时,对所述逻辑层级区域进行初始化,生成用于控制管理所述M个App组件的模块作用域标识信息;
模块化封装子模块,用于基于所述模块作用域标识信息对所述M个App组件进行所述模块化封装处理,同时控制所述M个App组件与所述系统平台层进行关联,以使所述M个App组件在所述业务逻辑层实现业务逻辑,获得所述Web App。
可选的,所述组件注入子模块包括:
组合单元,用于将所述M个App组件组合封装为N个App模块;其中,N为大于等于1且小于等于M的整数,所述N个App模块中的每个App模块包括一个或多个App组件;
注入单元,用于将所述N个App模块注入所述组件层。
可选的,所述系统平台层包括平台接口层,所述平台接口层的任一平台接口对应一底层交互方法;当外部模块与所述平台接口层的平台接口关联时,所述外部模块能够直接通过所述平台接口调用所述底层交互方法;所述模块化封装子模块,包括:
作用域划分单元,用于向所述N个App模块分配所述模块作用域标识信息,并基于所述模块作用域标识信息将所述N个App模块归类于一模块作用域;
层级管理单元,用于当所述事件控制模块接收到用于使所述模块作用域实现功能的用户操作请求时,向所述模块作用域分配激活码,并基于所述激活码控制所述N个App模块中的P个App模块处于启用状态或禁用状态,以使所述N个App模块实现功能,其中,P为大于等于1且小于等于N的整数;
App获取单元,用于控制所述M个App组件与所述系统平台层的平台接口关联,以使所述M个App组件直接通过所述平台接口调用所述底层交互方法,并在所述业务逻辑层实现业务逻辑,获得所述Web App。
可选的,所述层级管理单元包括:
激活码分配子单元,用于当所述事件控制模块接收到所述用户操作请求时,向所述模块作用域分配所述激活码,并基于所述激活码控制所述P个App模块处于启用状态或禁用状态;
组件管理子单元,用于在所述P个App模块处于所述启用状态且所述P个App模块包括多个App组件时,控制管理所述多个App组件进行通信,以使所述P个App模块实现功能;
功能管理子单元,用于在P取不同值时,基于所述P个App模块实现所述N个App模块的不同功能。
可选的,所述组件管理子单元,具体用于在所述多个App组件中的任一App组件均具有组件标识信息时,通过所述组件标识信息,控制管理所述多个App组件进行通信,以使所述P个App模块实现功能。
可选的,所述组件管理子单元,具体用于在所述多个App组件中的任一App组件不具有组件标识信息时,为所述任一App组件分配组件标识信息,并通过所述组件标识信息,控制管理所述多个App组件进行通信,以使所述P个App模块实现功能。
另一方面,本申请实施例还提供了一种Web App开发方法,应用于一Web App开发框架,所述Web App由M个App组件组成,其中,M为大于等于1的整数,所述开发方法包括步骤:
S1、当接收到用于开发所述Web App的用户事件请求时,基于所述用户事件请求生成内部配置参数;
S2、基于所述内部配置参数生成所述M个App组件;
S3、对所述M个App组件进行模块化封装处理,获得所述Web App。
可选的,所述步骤S3具体包括步骤:
S31、将所述M个App组件组合封装为N个App模块,其中,N为大于等于1且小于等于M的整数,所述N个App模块中的每个App模块包括一个或多个App组件;
S32、向所述N个App模块分配所述模块作用域标识信息,并基于所述模块作用域标识信息将所述N个App模块归类于一模块作用域;
S33、当接收到用于使所述模块作用域实现功能的用户操作请求时,向所述模块作用域分配激活码,并基于所述激活码控制所述N个App模块中的P个App模块处于启用状态或禁用状态,以使所述N个App模块实现功能,获得所述Web App,其中,P为大于等于1且小于等于N的整数。
可选的,所述步骤S33具体包括步骤:
S331、当接收到用于使所述模块作用域实现功能的用户操作请求时,向所述模块作用域分配所述激活码,并基于所述激活码控制所述N个App模块中的P个App模块处于启用状态或禁用状态;
S332、在所述P个App模块处于所述启用状态且所述P个App模块包括多个App组件时,控制管理所述多个App组件进行通信,以使所述P个App模块实现功能;
S333、在P取不同值时,基于所述P个App模块实现所述N个App模块的不同功能。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
由于在本申请实施例中,通过在Web App开发框架中设置控制管理区域和逻辑层级区域;所述控制管理区域包括:事件控制模块、数据模块和主模块;所述逻辑层级区域包括:系统平台层、组件层和业务逻辑层;控制管理区域用于控制管理逻辑层级区域,所述主模块在所述组件层生成所述M个App组件,并根据用户功能需求对所述M个App组件进行模块化封装处理,同时控制所述M个App组件与所述系统平台层进行关联,以使所述M个App组件在所述业务逻辑层实现业务逻辑,最终获得所述Web App;解决了现有技术中Web App开发框架开发效率低,需要开发人员撰写大量代码的技术问题;实现了Web App开发框架根据用户的App开发需求,对App组件进行封装,以便对其进行模块化管理,用户在开发App的过程中不需要花费大量的时间撰写代码来控制关联各个App组件,只需要将组件的业务逻辑写好即可,大大减少开发人员的编码时间,让项目开发专注在业务逻辑上,提高了开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种Web App开发框架结构框图;
图2为本申请实施例提供的Web App开发框架的主模块的结构框图;
图3为本申请实施例提供的主模块中层级管理单元的结构框图;
图4为本申请实施例提供的一种Web App开发方法的流程图;
图5为本申请实施例提供的App组件模块化封装处理的方法流程图;
图6为本申请实施例提供的一种App层级管理的方法流程图。
具体实施方式
本申请实施例通过提供一种Web App开发框架,解决了Web App开发框架开发效率低,需要开发人员撰写大量代码的技术问题,实现了Web App开发框架根据用户的App开发需求,对App组件进行封装,以便对其进行模块化管理,用户在开发App的过程中不需要花费大量的时间撰写代码来控制关联各个App组件,只需要将组件的业务逻辑写好即可,大大减少开发人员的编码时间,让项目开发专注在业务逻辑上,提高了开发效率。
本申请实施例的技术方案为解决上述技术问题,总体思路如下:
本申请实施例提供了一种Web App开发框架,所述Web App由M个App组件组成,其中,M为大于等于1的整数,所述开发框架包括:控制管理区域,包括:事件控制模块、数据模块和主模块;逻辑层级区域,包括:系统平台层、组件层和业务逻辑层;其中,所述事件控制模块,用于接收用于开发所述Web App的用户事件请求,基于所述用户事件请求生成委托信息,并将所述委托信息发送于所述数据模块;所述数据模块,用于接收所述委托信息,并基于所述委托信息获得内部配置参数,并将所述内部配置参数发送于所述主模块;所述主模块,用于基于所述内部配置参数在所述组件层生成所述M个App组件,并对所述M个App组件进行模块化封装处理,同时控制所述M个App组件与所述系统平台层进行关联,以使所述M个App组件在所述业务逻辑层实现业务逻辑,获得所述Web App。
可见,在本申请实施例中,通过在Web App开发框架中设置控制管理区域和逻辑层级区域;所述控制管理区域包括:事件控制模块、数据模块和主模块;所述逻辑层级区域包括:系统平台层、组件层和业务逻辑层;控制管理区域用于控制管理逻辑层级区域;具体的,所述事件控制模块接收用户事件请求,并基于所述用户事件请求生成委托信息;所述数据模块用于根据所述委托信息生成内部配置参数;所述主模块基于所述内部配置参数在所述组件层生成所述M个App组件,并根据用户功能需求对所述M个App组件进行模块化封装处理,同时控制所述M个App组件与所述系统平台层进行关联,以使所述M个App组件在所述业务逻辑层实现业务逻辑,最终获得所述Web App;实现了Web App开发框架根据用户的App开发需求,对App组件进行封装,以便对其进行模块化管理,用户在开发App的过程中不需要花费大量的时间撰写代码来控制关联各个App组件,只需要将组件的业务逻辑写好即可,大大减少开发人员的编码时间,让项目开发专注在业务逻辑上,提高了开发效率。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
实施例一
请参考图1,本申请实施例提供了一种Web App开发框架,所述Web App是基于Web的系统和应用,如web邮箱、web商店等;所述Web App由M个App组件组成,其中,M为大于等于1的整数,如web邮箱包括包括消息接收组件、消息发送组件、消息编辑组件、通讯录组件等,所述开发框架包括:
控制管理区域10,包括:事件控制模块101、数据模块102和主模块103;
逻辑层级区域20,包括:系统平台层201、组件层202和业务逻辑层203;
其中,事件控制模块101,用于接收用于开发所述Web App的用户事件请求,基于所述用户事件请求生成委托信息,并将所述委托信息发送于数据模块102;具体的,由于框架接收到的来自用户的事件请求属于用户语言,事件控制模块101需要将所述用户事件请求转换为框架中模块可识别的逻辑语言(即所述委托信息);
数据模块102,用于接收所述委托信息,并基于所述委托信息获得内部配置参数,并将所述内部配置参数发送于主模块103;具体的,数据模块102可以在接收所述委托信息的同时接收来自用户的用于开发所述Web App的用户配置数据,并基于所述委托信息对所述用户配置数据进行处理,获得内部配置参数;也可以根据所述委托信息自主生成所述内部配置参数;
主模块103,用于基于所述内部配置参数在组件层202生成所述M个App组件,并对所述M个App组件进行模块化封装处理,同时控制所述M个App组件与系统平台层201进行关联,以使所述M个App组件在业务逻辑层203实现业务逻辑,获得所述Web App。
其中,所述M个App组件可以是所述开发框架自身关联的组件;也可是用户在开发时向框架中写入的组件;还可一部分为所述开发框架自身关联的组件,另一部分为用户在开发时向框架中写入的组件;在接收到所述内部配置参数时,主模块103通过关联代码在组件层202关联M个App组件。如图1所示,在组件层202中关联有M个App组件(即App组件1~App组件M),经过所述模块化封装处理后,App组件1、App组件2和App组件3封装为模块A,App组件1、App组件4和App组件7封装为模块B。
Web App是一种通过网络(如互联网或内联网)访问的应用程序,也可以指计算机软件承载在浏览器支持环境下或使用浏览器支持语言(如JavaScript)并依赖于web浏览器来渲染的应用程序。Web App的流行归功于网页浏览器的普及。不必下载安装就可以实现更新和维护,具有支持跨平台的内在属性,是Web App开始流行的关键原因。组件是构成WebApp的基本功能要素,是一个个独立的部分,但是在组成Web App时,需要一套开发框架(即代码框架)来组织组件之间的逻辑性和组件之间的交互,比如办公自动化系统App中列表是一个独立的组件,表单也是一个独立的组件,那么在组合成一个页面的时候,列表要和表单进行数据交互,则需要通过一个框架来关联、管理它们之间的关系。
具体的,在本申请方案中,事件控制模块101是用于控制整个Web App开发框架所涉及的交互事件,包括开发人员与所述框架之间的交互、所述M个App组件中任意两个组件之间的交互、数据模块102与主模块103之间的交互以及逻辑层级区域20中各层级之间的交互等;数据模块102是控制数据的统一入口和出口,对请求的数据做队列处理,控制缓存数据;主模块103是用于根据控制数据在逻辑层级区域20生成App组件,并对组件进行管理,控制其在逻辑层级区域20实现其功能,最终获得需要的Web App。
具体的,请参考图1和图2,主模块103包括:组件注入子模块1031,用于在接收所述内部配置参数时,向组件层202注入所述M个App组件;
初始化子模块1032,用于在组件注入子模块1031向组件层202注入所述M个App组件的同时,对逻辑层级区域20进行初始化,生成用于控制管理所述M个App组件的模块作用域标识信息;
模块化封装子模块1033,用于基于所述模块作用域标识信息对所述M个App组件进行所述模块化封装处理,同时控制所述M个App组件与系统平台层201进行关联,以使所述M个App组件在业务逻辑层203实现业务逻辑,获得所述Web App。
进一步,仍请参考图2,组件注入子模块1031包括:
组合单元1031-1,用于将所述M个App组件组合封装为N个App模块;其中,N为大于等于1且小于等于M的整数,所述N个App模块中的每个App模块包括一个或多个App组件;注入单元1031-2,用于将所述N个App模块注入组件层202。
也就是说,根据不同的功能需要,有的App模块中可能包括多个App组件,有的只包括一个App组件;对于一个App组件也将其封装为一个模块注入组件层202,即通过将所述M个App组件均以模块化的形式注入到所述开发框架中,有利于对M个App组件进行模块化管理。
在实际操作中,需要基于一系统平台进行Web App开发,系统平台的种类有很多,目前主流的系统平台包括IOS平台、安卓平台和PC平台,各个企业根据自己的实际使用需求采用不同的系统平台;由于系统平台的运行需要基于硬件设备,系统平台和硬件设备的交互属于底层范畴,对于每一个系统平台来说,都会提供用来与底层进行交互的方法(下面称为底层交互方法)。系统平台层201包括平台接口层,所述平台接口层的任一平台接口对应一底层交互方法;当外部模块与所述平台接口层的平台接口关联时,所述外部模块能够直接通过所述平台接口调用所述底层交互方法;仍请参考图2,模块化封装子模块1033,包括:
作用域划分单元1033-1,用于向所述N个App模块分配所述模块作用域标识信息,并基于所述模块作用域标识信息将所述N个App模块归类于一模块作用域;
层级管理单元1033-2,用于当事件控制模块101接收到用于使所述模块作用域实现功能的用户操作请求时,向所述模块作用域分配激活码,并基于所述激活码控制所述N个App模块中的P个App模块处于启用状态或禁用状态,以使所述N个App模块实现功能,其中,P为大于等于1且小于等于N的整数;
App获取单元1033-3,用于控制所述M个App组件与系统平台层201的平台接口关联,以使所述M个App组件直接通过所述平台接口调用所述底层交互方法,并在业务逻辑层203实现业务逻辑,获得所述Web App。
在现有技术中,开发框架主要用于管理组件,要使组件能够在相应的系统平台上实现功能并最终形成企业需要的Web App,需要开发人员根据开发时所采用的系统平台,撰写大量的代码程序将组件与系统平台层提供的底层交互方法关联起来,如开发一用于摄像的App,要实现其摄像功能,必需得到硬件平台中摄像头的支持,即需要将App中的功能组件与摄像头关联起来;相对而言,在本申请方案中,提供了系统平台层的概念(这是现有技术中管理框架未涉及的),并在系统平台层集成有包括IOS平台、安卓平台和PC平台的底层交互方法;进一步,对于不同系统平台的底层交互方法进行分类封装,如IOS平台的底层交互方法作为一个整体封装在一个文件夹中、安卓平台的底层交互方法封装在另一个文件夹中等,并且对于每一系统平台的底层交互方法,针对其不同的功能性,对外提供功能接口,如图像采集功能接口、语音播放功能接口等,即系统平台层对外提供平台接口层(包括多种功能接口),对于App开发人员来说,只需要知道各接口的作用,并进行简单的逻辑编程即可,例如,App需要调用硬件设备上的摄像头进行拍照,开发人员在进行开发的时候,只需要进行简单的代码编写通过开发框架调用平台接口层的拍照接口即可,而不需要知道当前是系统平台的种类,以及该系统平台是通过什么底层交互方法关联摄像头。为开发人员进行WebApp开发提供了很大的便利,提高了开发效率。
在具体实施过程中,对于一个Web App的开发,所述开发框架可以将其实例化成很多个子对象,比如开发框架根据用户需求在web页面中实例化了两个子对象,即子对象A和子对象B;且组件1注入到子对象A中,同时也注入到子对象B中,那么对于应用于子对象A和B上的组件1来说,分别在不同的作用域上。再形象的比如,聊天应用软件QQ提供了一个整体的应用框架,每个用户都可以建立很多个群组,即用户A加入了群组1,也加入了群组2,用户A在群组1中发的信息则不会在群组2中出现,也就是说,用户A在不同的群组中即属于不同的作用域(此例只为帮助读者理解开发框架实例化多个子对象,与本申请中的开发框架没有技术上的关联)。由于在本方案中,用户在运用所述开发框架开发Web App的过程中,根据不同的开发需求多次向所述开发框架发送不同的用户事件请求,所述框架根据不同的用户事件请求对应向组件层202关联不同组App组件。如组件注入子模块1031根据用户事件请求1向组件层202关联第一组App组件,根据用户事件请求2向组件层202关联第二组App组件;其中,第一组App组件和第二组App组件中至少存在一个不相同的App组件,即第一组App组件和第二组App组件中可能存在相同的App组件(设定为App组件1),为了在操作第一组App组件实现第一功能或操作第二组App组件实现第二功能时,避免由于两者都具有的App组件1造成二者之间的“交叉污染”,初始化子模块1032为所述第一组App组件分配第一模块作用域标识信息,为所述第二组App组件分配第二模块作用域标识信息;作用域划分单元1033-1通过第一模块作用域标识信息将第一组App组件归类为第一模块作用域,通过第二模块作用域标识信息将第二组App组件归类为第二模块作用域。具体的,在初始化子模块1032每次执行初始化的时候,通过当前的时间戳和随机的26位字母进行组合获得唯一ID(即模块作用域标识信息);并将这个ID分配到当前组App组件(如第一组App组件)的每个App模块中,在操作当前组App组件实现功能时,主模块103首先获取当前组App组件的ID信息,并且只允许具有所述ID信息的App模块执行操作,即达到了对模块作用域的控制。
因为现在很多App是单页面应用(即一个页面集成了很多功能点),但是一个时刻呈现在用户面前的只能是一个功能点,所以用户切换功能点时,需要隐藏之前的功能点,而显示用户切换到的当前的功能点。在本方案中,App组件组成App模块,App模块再构成App层级,通过App层级体现App功能点,切换APP功能点即为切换App层级;比如办公自动化系统OAAPP,包含审批功能、申请功能、查看详情功能、修改流程功能等,从一个功能切换到另一个功能(如从审批功能跳到申请功能)即为层级切换。具体的,在本实施例中,请参考图3,为了在组件层202的App组件注入完成之后,通过管理App组件实现Web App的各种功能,层级管理单元1033-2包括:
激活码分配子单元1033-21,用于当事件控制模块101接收到用于使所述模块作用域实现功能的用户操作请求时,向所述模块作用域分配所述激活码,并基于所述激活码控制所述N个App模块中的P个App模块处于启用状态或禁用状态;其中,所述用户操作请求即为层级切换请求;
组件管理子单元1033-22,用于在所述P个App模块处于所述启用状态且所述P个App模块包括多个App组件时,控制管理所述多个App组件进行通信,以使所述P个App模块实现功能;
功能管理子单元1033-23,用于在P取不同值时,基于所述P个App模块实现所述N个App模块的不同功能。
在具体实施过程中,针对当前开发的一Web App(如Web邮箱),其通常需要具备多种功能层级(如Web邮箱具有收信、发信等多种功能),所述Web App由N个App模块构成,通过管理N个App模块,使所述N个App模块中的部分或全部App模块进行关联组合,即可实现所述Web App的多种功能,并且根据不同的功能需求,所述关联组合的方式也会不同,例如,Web邮箱包括消息接收组件、消息发送组件、消息编辑组件、通讯录组件、网盘组件、增值服务组件等;其中,消息接收组件、消息发送组件、消息编辑组件和通讯录组件归类为邮件作用域,网盘组件和增值服务组件分别单独归类为网盘作用域和增值服务作用域;对于邮件作用域来说,可分为收信功能层级和发信功能层级,在需要实现收信功能时,只需要消息接收组件和通讯录组件执行操作,在需要实现发信功能时,只需要消息编辑组件、通讯录组件和消息发送组件执行操作;下面结合本申请方案对此进行具体说明:
当开发框架的事件控制模块101接收到用于实现发信功能的用户操作请求时,向邮件作用域分配激活码,控制邮件作用域的四个组件中的消息编辑组件、通讯录组件和消息发送组件三个组件处于启用状态,消息接收组件处于禁用状态,以实现邮件作用域的发信功能。
在本实施例中,所述M个App组件构成N个App模块,所述N个App模块根据用户需求进行不同的关联组合方式构成不同的层级,以实现不同的功能,其中,N个App模块中的任一App模块包括一个或多个App组件;可见,App模块之间的通信和App模块中App组件之间的通信都是基于App组件间的通信实现的。各个组件之间通过事件控制模块101来实现交互和调用;组件之间的调用可以实现组件之间的通信,比如:组件B需要组件A点击之后的数据,则组件A在用户点击的时候向组件B提供点击后的数据,组件B接收组件A发出的数据,对其进行处理以实现本身的业务逻辑。
具体的,App组件通常包含有进行身份识别的组件标识信息,组件管理子单元1033-22,用于在所述多个App组件中的任一App组件均具有组件标识信息时,通过所述组件标识信息,控制管理所述多个App组件进行通信,以使所述P个App模块实现功能。也就是说,对于处于激活状态的App模块,在进行组件配置时,只需要配置一个App组件调用另一个App组件的组件标识信息即可实现组件之间的通信。
然而,在具体实施过程中,也可能存在少数App组件不具备组件标识信息,针对此种情况,组件管理子单元1033-22,用于在所述多个App组件中的任一App组件不具有组件标识信息时,为所述任一App组件分配组件标识信息,并通过所述组件标识信息,控制管理所述多个App组件进行通信,以使所述P个App模块实现功能。
总而言之,利用本申请方案中的Web App开发框架进行App开发,不需要写大量的代码进行组件之间的关联;每个组件可以快速和另一个组件进行关联,配置参数的分发和传递都是通过事件控制模块进行统一的控制,控制逻辑更清晰;通过模块作用域标识信息对组件进行模块化管理,避免了Web App单页面下多种相同套件之间产生冲突;通过组件构成模块、模块构成层级,不仅组件为解耦合(即为独立的个体),模块之间也可进行解耦合,使得即使在同一个Web页面下存在多个App模块采用了相同的组件,也能对模块进行有效的控制;并且每个组件只能接收到与自己相关联的另一个组件的信息,有效的保护了组件内部数据的独立性,防止其他组件的污染;另外,所述开发框架已将层级切换的显示和隐藏关系代码封装好,开发人员不需要关心层级的切换,只需要把层级的业务逻辑写好即可,而业务逻辑的代码实现较容易,不需要开发人员花费大量时间,有利于提高Web App的开发效率。
实施例二
请参考图4,基于同一发明构思,本申请实施例还提供了一种Web App开发方法,应用于一Web App开发框架,所述Web App由M个App组件组成,其中,M为大于等于1的整数,所述开发方法包括步骤:
S1、当接收到用于开发所述Web App的用户事件请求时,基于所述用户事件请求生成内部配置参数;
S2、基于所述内部配置参数生成所述M个App组件;
S3、对所述M个App组件进行模块化封装处理,获得所述Web App。
在具体实施过程中,所述步骤S3具体包括步骤:
S31、将所述M个App组件组合封装为N个App模块,其中,N为大于等于1且小于等于M的整数,所述N个App模块中的每个App模块包括一个或多个App组件;
S32、向所述N个App模块分配所述模块作用域标识信息,并基于所述模块作用域标识信息将所述N个App模块归类于一模块作用域;
S33、当接收到用于使所述模块作用域实现功能的用户操作请求时,向所述模块作用域分配激活码,并基于所述激活码控制所述N个App模块中的P个App模块处于启用状态或禁用状态,以使所述N个App模块实现功能,获得所述Web App,其中,P为大于等于1且小于等于N的整数。
进一步,所述步骤S33具体包括步骤:
S331、当接收到用于使所述模块作用域实现功能的用户操作请求时,向所述模块作用域分配所述激活码,并基于所述激活码控制所述N个App模块中的P个App模块处于启用状态或禁用状态;
S332、在所述P个App模块处于所述启用状态且所述P个App模块包括多个App组件时,控制管理所述多个App组件进行通信,以使所述P个App模块实现功能;
S333、在P取不同值时,基于所述P个App模块实现所述N个App模块的不同功能。
根据上面的描述,上述Web App开发方法应用于上述Web App开发框架中,所以,该Web App开发方法的一个或多个实施例与该Web App开发框架的工作过程一致,在此就不再一一赘述了。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。