基于多项目容器的项目运行方法及装置与流程

文档序号:33291948发布日期:2023-02-28 20:05阅读:24来源:国知局
基于多项目容器的项目运行方法及装置与流程

1.本发明涉及计算机程序技术领域,尤其涉及一种基于多项目容器的项目运行方法及装置。


背景技术:

2.现有的移动开发平台中,若用户需要在移动开发平台上同时运行多个独立的子项目内容时,需要将多个子项目的内容整合成一个项目并使用一个浏览器运行整个项目。然而,实践发现,使用一个浏览器同时运行多个子项目时不同子项目的运行会产生冲突,例如:路由冲突、组件冲突以及样式冲突等,并且不同子项目的页面进行交互和切换时需要进行页面进行整页刷新,也即,需要保存当前页面大量的页面状态数据,导致移动开发平台的工作量较大。


技术实现要素:

3.本发明所要解决的技术问题在于,提供一种基于多项目容器的项目运行方法及装置,能够减少多个子项目同时运行时产生的冲突,并且减少了页面状态数据保存和刷新的工作量。
4.为了解决上述技术问题,本发明第一方面公开了一种基于多项目容器的项目运行方法,所述方法包括:
5.当检测到用户针对当前运行项目的第一子项目中触发的运行指令时,确定所述第一子项目对应的独立项目容器以及所述第一子项目对应的空白页面,其中,所述当前运行项目包含一个或多个子项目,所述当前运行项目包含的所有所述子项目包括所述第一子项目;
6.在所述第一子项目对应的空白页面中基于所述第一子项目对应的独立项目容器,运行所述第一子项目对应的运行代码,以使所述第一子项目对应的独立项目容器生成所述第一子项目对应的第一页面,所述第一页面用于供用户查看。
7.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
8.当检测到用户在当前展示的所述第一页面上触发的页面切换操作时,确定所述页面切换操作所要展示的第二子项目;
9.从所述第一页面切换至所述第二子项目对应的第二页面;
10.其中,所述从所述第一页面切换至所述的第二子项目对应的第二页面,包括:
11.当所述第二子项目处于运行状态时,确定所述第二子项目对应的第二页面,并从所述第一页面切换至所述第二页面,其中,所述第二页面的页面状态为所述第二页面被切换至其他页面之前所保持的页面状态;和/或,
12.当所述第二子项目未处于运行状态时,确定所述第二子项目对应的独立项目容器以及所述第二子项目对应的空白页面,在所述第二子项目对应的空白页面中基于所述第二子项目对应的独立项目容器,运行所述第二子项目对应的运行代码,以使所述第二子项目
对应的独立项目容器生成所述第二子项目对应的第二页面,并从所述第一页面切换至所述第二页面,其中,所述第一子项目对应的独立项目容器与所述第二子项目对应的独立项目容器相互独立。
13.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
14.当检测到用户针对所述当前运行项目触发的子项目引入指令时,确定所述子项目引入指令所要引入的目标子项目以及所述目标子项目对应的读取指引信息;
15.将所述目标子项目对应的读取指引信息引入所述当前运行项目,以使所述当前运行项目引入所述目标子项目的项目功能,其中,所述读取指引信息包括读取所述目标子项目对应的运行代码时所需的源码地址。
16.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
17.当检测到针对所述目标子项目对应的运行代码触发的修改指令时,根据所述修改指令更新所述目标子项目对应的运行代码;
18.确定引入所述目标子项目的所有目标项目;
19.根据所述源码地址,对所有所述目标项目中所引入的所述目标子项目的项目功能进行更新。
20.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
21.当检测到所述第一子项目与所述当前运行项目的第三子项目之间存在交互需求时,基于所述第一子项目对应的独立项目容器与所述第三子项目对应的独立项目容器之间的交互接口,向所述第三子项目对应的独立项目容器发送数据获取请求,以使所述第三子项目对应的独立项目容器监听所述数据获取请求并基于所述交互接口向所述第一子项目对应的独立项目容器发送所述数据获取请求对应的交互数据;
22.基于所述交互接口接收所述交互数据,以便所述第一子项目对应的独立项目容器对所述交互数据进行业务处理。
23.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
24.当检测到用户针对所述第一页面触发的目标指令时,对所述第一页面执行所述目标指令相匹配的目标操作,其中,所述目标指令包括隐藏指令、关闭指令、退出指令中的其中一个,所述隐藏指令相匹配的目标操作包括隐藏操作,所述关闭指令相匹配的目标操作包括关闭操作,所述退出指令相匹配的目标操作包括退出操作;
25.以及,在所述对所述第一页面执行所述目标指令相匹配的目标操作之后,所述方法还包括:
26.当检测到用户针对所述当前运行项目的第四子项目触发的运行指令时,确定所述第四子项目对应的独立项目容器以及所述第四子项目对应的空白页面;
27.在所述第四子项目对应的空白页面中基于所述第四子项目对应的独立项目容器,运行所述第四子项目对应的运行代码,以使所述第四子项目对应的独立项目容器生成所述第四子项目对应的第四页面,其中,所述第一子项目对应的独立项目容器与所述第四子项目对应的独立项目容器相互独立。
28.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
29.当检测到用户针对一个或多个项目触发的整合指令时,根据每个所述项目所包含的所有子项目,确定所有所述项目集合后的整合项目,所述整合项目包括每个所述项目所
包含的所有所述子项目;
30.将所述整合项目中相同的多个子项目组合成一个子项目集合;
31.对每个所述子项目集合进行子项目删除处理,以使每个所述子项目集合只保留一个所述子项目;
32.将所述整合项目中的所有剩余子项目确定为所述整合指令对应的整合结果。
33.本发明第二方面公开了一种基于多项目容器的项目运行装置,所述装置包括:
34.确定模块,用于当检测到用户针对当前运行项目的第一子项目中触发的运行指令时,确定所述第一子项目对应的独立项目容器以及所述第一子项目对应的空白页面,其中,所述当前运行项目包含一个或多个子项目,所述当前运行项目包含的所有所述子项目包括所述第一子项目;
35.运行模块,用于在所述第一子项目对应的空白页面中基于所述第一子项目对应的独立项目容器,运行所述第一子项目对应的运行代码,以使所述第一子项目对应的独立项目容器生成所述第一子项目对应的第一页面,所述第一页面用于供用户查看。
36.作为一种可选的实施方式,在本发明第二方面中,所述确定模块,还用于当检测到用户在当前展示的所述第一页面上触发的页面切换操作时,确定所述页面切换操作所要展示的第二子项目;
37.所述装置还包括:
38.切换模块,用于从所述第一页面切换至所述第二子项目对应的第二页面;
39.其中,所述切换模块从所述第一页面切换至所述的第二子项目对应的第二页面的具体方式,包括:
40.当所述第二子项目处于运行状态时,确定所述第二子项目对应的第二页面,并从所述第一页面切换至所述第二页面,其中,所述第二页面的页面状态为所述第二页面被切换至其他页面之前所保持的页面状态;和/或,
41.当所述第二子项目未处于运行状态时,确定所述第二子项目对应的独立项目容器以及所述第二子项目对应的空白页面,在所述第二子项目对应的空白页面中基于所述第二子项目对应的独立项目容器,运行所述第二子项目对应的运行代码,以使所述第二子项目对应的独立项目容器生成所述第二子项目对应的第二页面,并从所述第一页面切换至所述第二页面,其中,所述第一子项目对应的独立项目容器与所述第二子项目对应的独立项目容器相互独立。
42.作为一种可选的实施方式,在本发明第二方面中,所述确定模块,还用于当检测到用户针对所述当前运行项目触发的子项目引入指令时,确定所述子项目引入指令所要引入的目标子项目以及所述目标子项目对应的读取指引信息;
43.所述装置还包括:
44.引入模块,用于将所述目标子项目对应的读取指引信息引入所述当前运行项目,以使所述当前运行项目引入所述目标子项目的项目功能,其中,所述读取指引信息包括读取所述目标子项目对应的运行代码时所需的源码地址。
45.作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
46.更新模块,用于当检测到针对所述目标子项目对应的运行代码触发的修改指令时,根据所述修改指令更新所述目标子项目对应的运行代码;
47.所述确定模块,还用于确定引入所述目标子项目的所有目标项目;
48.所述更新模块,还用于根据所述源码地址,对所有所述目标项目中所引入的所述目标子项目的项目功能进行更新。
49.作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
50.数据传输模块,用于当检测到所述第一子项目与所述当前运行项目的第三子项目之间存在交互需求时,基于所述第一子项目对应的独立项目容器与所述第三子项目对应的独立项目容器之间的交互接口,向所述第三子项目对应的独立项目容器发送数据获取请求,以使所述第三子项目对应的独立项目容器监听所述数据获取请求并基于所述交互接口向所述第一子项目对应的独立项目容器发送所述数据获取请求对应的交互数据;
51.所述数据传输模块,还用于基于所述交互接口接收所述交互数据,以便所述第一子项目对应的独立项目容器对所述交互数据进行业务处理。
52.作为一种可选的实施方式,在本发明第二方面中,所述装置还包括;
53.页面操作模块,用于当检测到用户针对所述第一页面触发的目标指令时,对所述第一页面执行所述目标指令相匹配的目标操作,其中,所述目标指令包括隐藏指令、关闭指令、退出指令中的其中一个,所述隐藏指令相匹配的目标操作包括隐藏操作,所述关闭指令相匹配的目标操作包括关闭操作,所述退出指令相匹配的目标操作包括退出操作;
54.以及,所述确定模块,还用于在所述页面操作模块对所述第一页面执行所述目标指令相匹配的目标操作之后,当检测到用户针对所述当前运行项目的第四子项目触发的运行指令时,确定所述第四子项目对应的独立项目容器以及所述第四子项目对应的空白页面;
55.所述运行模块,还用于在所述第四子项目对应的空白页面中基于所述第四子项目对应的独立项目容器,运行所述第四子项目对应的运行代码,以使所述第四子项目对应的独立项目容器生成所述第四子项目对应的第四页面,其中,所述第一子项目对应的独立项目容器与所述第四子项目对应的独立项目容器相互独立。
56.作为一种可选的实施方式,在本发明第二方面中,所述确定模块,还用于当检测到用户针对一个或多个项目触发的整合指令时,根据每个所述项目所包含的所有子项目,确定所有所述项目集合后的整合项目,所述整合项目包括每个所述项目所包含的所有所述子项目;
57.所述装置还包括:
58.组合模块,用于将所述整合项目中相同的多个子项目组合成一个子项目集合;
59.删除模块,用于对每个所述子项目集合进行子项目删除处理,以使每个所述子项目集合只保留一个所述子项目;
60.所述确定模块,还用于将所述整合项目中的所有剩余子项目确定为所述整合指令对应的整合结果。
61.本发明第三方面公开了另一种基于多项目容器的项目运行装置,所述装置包括:
62.存储有可执行程序代码的存储器;
63.与所述存储器耦合的处理器;
64.所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的基于多项目容器的项目运行方法。
65.本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的基于多项目容器的项目运行方法。
66.与现有技术相比,本发明实施例具有以下有益效果:
67.本发明实施例中,当检测到用户针对当前运行项目的第一子项目中触发的运行指令时,确定第一子项目对应的独立项目容器以及第一子项目对应的空白页面,其中,当前运行项目包含一个或多个子项目,当前运行项目包含的所有所述子项目包括第一子项目;在第一子项目对应的空白页面中基于第一子项目对应的独立项目容器,运行第一子项目对应的运行代码,以使第一子项目对应的独立项目容器生成第一子项目对应的第一页面,第一页面用于供用户查看。可见,实施本发明能够在运行项目时通过分别使用一个独立项目容器运行一个子项目,使得各个子项目之间进行了隔离,从而减少多个子项目同时运行时产生的冲突,并且由于不同子项目使用不同的独立项目容器,因此不同子项目的页面进行交互和切换时无需进行整页刷新,从而减少了页面状态数据保存和刷新的工作量。
附图说明
68.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
69.图1是本发明实施例公开的一种基于多项目容器的项目运行方法的流程示意图;
70.图2是本发明实施例公开的另一种基于多项目容器的项目运行方法的流程示意图;
71.图3是本发明实施例公开的一种基于多项目容器的项目运行装置的结构示意图;
72.图4是本发明实施例公开的另一种基于多项目容器的项目运行装置的结构示意图;
73.图5是本发明实施例公开的又一种基于多项目容器的项目运行装置的结构示意图。
具体实施方式
74.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
75.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
76.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包
含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
77.本发明公开了一种基于多项目容器的项目运行方法及装置,能够在运行项目时通过分别使用一个独立项目容器运行一个子项目,使得各个子项目之间进行了隔离,从而减少多个子项目同时运行时产生的冲突,并且由于不同子项目使用不同的独立项目容器,因此不同子项目的页面进行交互和切换时无需进行整页刷新,从而减少了页面状态数据保存和刷新的工作量。以下分别进行详细说明。
78.实施例一
79.请参阅图1,图1是本发明实施例公开的一种基于多项目容器的项目运行方法的流程示意图。其中,图1所描述的基于多项目容器的项目运行方法可以应用于多个子项目同时运行的实现,可选的,该基于多项目容器的项目运行方法可以应用于移动开发平台中,也可以应用于包含一个或多个子项目的应用程序中,本发明实施例不做限定。如图1所示,该基于多项目容器的项目运行方法可以包括以下操作:
80.101、当检测到用户针对当前运行项目的第一子项目中触发的运行指令时,确定第一子项目对应的独立项目容器以及第一子项目对应的空白页面。
81.可选的,当前运行项目可以包含一个或多个子项目,例如,当前运行项目为电网管理平台app,电网管理平台app的子项目可以包含基建移动app、智慧监督app、现场作业app等等。其中,当前运行项目包含的所有子项目包括第一子项目。可见,这样能够提高项目内容的丰富性,并且有利于将多个团队已开发的项目内容整合在一起,提高资源复用率,降低开发成本。
82.本发明实施例中,可选的,一个独立项目容器可以为一个浏览器实例,例如h5容器。进一步可选的,每个子项目对应的独立项目容器可以为预先创建的独立项目容器并且可以在触发该子项目的运行指令时直接调用该子项目对应的独立项目容器,每个子项目对应的独立项目容器也可以为在触发该子项目的运行指令时新创建的独立项目容器,本发明实施例不做限定。通过预先创建独立项目容器能够提高子项目的运行效率,而通过即时创建独立项目容器可以减少独立项目容器所占用的内存,这样能够提高子项目运行的灵活性和多样性。
83.102、在第一子项目对应的空白页面中基于第一子项目对应的独立项目容器,运行第一子项目对应的运行代码,以使第一子项目对应的独立项目容器生成第一子项目对应的第一页面,第一页面用于供用户查看。
84.举例来说,当前运行项目中包含多个子项目,比如:“会议室预定”子项目、“移动考勤”子项目,若用户点击“移动考勤”子项目时,会从下往上弹出一个页面(也可以从其他方向弹出或者凭空弹出),在该页面中使用一个浏览器实例去运行“移动考勤”功能。
85.本发明实施例中,可选的,每个子项目对应的运行代码可以存储于该子项目所在的项目对应的存储空间中,也可以存储于独立的存储空间中,本发明实施例不做限定。进一步可选的,若每个子项目对应的运行代码存储于独立的存储空间,则该子项目对应的读取指引信息存储于该子项目所在的项目对应的存储空间中。这样能够提高子项目引入的效率和便捷性,减少存储占用。
86.可见,实施本发明实施例能够在运行项目时通过分别使用一个独立项目容器运行一个子项目,使得各个子项目之间进行了隔离,从而减少多个子项目同时运行时产生的冲突,并且由于不同子项目使用不同的独立项目容器,因此不同子项目的页面进行交互和切换时无需进行整页刷新,从而减少了页面状态数据保存和刷新的工作量。
87.在一个可选的实施例中,该方法还可以包括:
88.当检测到用户在当前展示的第一页面上触发的页面切换操作时,确定页面切换操作所要展示的第二子项目;
89.从第一页面切换至第二子项目对应的第二页面。
90.在该可选的实施例中,作为一种可选的实施方式,从第一页面切换至的第二子项目对应的第二页面,可以包括:
91.当第二子项目处于运行状态时,确定第二子项目对应的第二页面,并从第一页面切换至第二页面,其中,第二页面的页面状态为第二页面被切换至其他页面之前所保持的页面状态;和/或,
92.当第二子项目未处于运行状态时,确定第二子项目对应的独立项目容器以及第二子项目对应的空白页面,在第二子项目对应的空白页面中基于第二子项目对应的独立项目容器,运行第二子项目对应的运行代码,以使第二子项目对应的独立项目容器生成第二子项目对应的第二页面,并从第一页面切换至第二页面,其中,第一子项目对应的独立项目容器与第二子项目对应的独立项目容器相互独立。
93.以下述流程为例,当前“会议室预定”子项目和“移动考勤”子项目均处于运行状态,

用户正在“会议室预定”页面进行输入操作,当输入一部分内容的时候,切换到“移动考勤”页面;

用户又在“移动考勤”页面正在编辑请假流程,突然又切换回“会议室预定”页面;
③“
会议室预定”页面保持着切换之前的状态,用户可以接着在“会议室预定”进行输入操作;

用户又再次切换“移动考勤”页面;
⑤“
移动考勤”页面依然保持着切换之前编辑请假流程的状态,用户可以继续编辑请假流程。
94.可见,实施该可选的实施例通过使用不同的独立项目容器运行不同的子项目,从而在满足多个页面来回切换时对页面状态保存的需求的同时减少页面状态数据保存和管理的工作量,此外,在所需切换的子项目未处于运行状态时先运行该子项目,提高了页面切换的准确性和灵活性。
95.在另一个可选的实施例中,该方法还可以包括:
96.当检测到用户针对当前运行项目触发的子项目引入指令时,确定子项目引入指令所要引入的目标子项目以及目标子项目对应的读取指引信息;
97.将目标子项目对应的读取指引信息引入当前运行项目,以使当前运行项目引入目标子项目的项目功能,其中,读取指引信息包括读取目标子项目对应的运行代码时所需的源码地址。
98.例如,若“企信”项目和“elink”项目均需要考勤功能,则可以在“企信”项目和“elink”项目中引入“移动考勤”子项目的源码地址。
99.可见,实施该可选的实施例能够通过在项目中引入子项目的源码地址即可为项目增加子项目功能,提高了项目功能开发的便捷性、灵活性和效率,提高了项目功能的扩展能力,并实现了子项目代码的共享,提高了子项目功能的复用性。
100.在该可选的实施例中,作为一种可选的实施方式,该方法还可以包括:
101.当检测到针对目标子项目对应的运行代码触发的修改指令时,根据修改指令更新目标子项目对应的运行代码;
102.确定引入目标子项目的所有目标项目;
103.根据源码地址,对所有目标项目中所引入的目标子项目的项目功能进行更新。
104.例如,若“企信”项目和“elink”项目均引入了“移动考勤”子项目的源码地址,若对“移动考勤”的源码进行了修改以更新“移动考勤”中“外出申请”功能,则“企信”项目和“elink”项目也更新此功能。
105.可见,实施该可选的实施方式能够在更新子项目的功能时直接对子项目的源码进行更新,而引入该子项目功能的所有项目只需通过源码地址即可实现同步更新,减少了由于分别拷贝子项目源码而导致需要对多个项目逐个进行更新的情况,提高了项目更新和代码维护的便捷性和效率。
106.在又一个可选的实施例中,该方法还可以包括:
107.当检测到用户针对第一页面触发的目标指令时,对第一页面执行目标指令相匹配的目标操作,其中,目标指令包括隐藏指令、关闭指令、退出指令中的其中一个,隐藏指令相匹配的目标操作包括隐藏操作,关闭指令相匹配的目标操作包括关闭操作,退出指令相匹配的目标操作包括退出操作。
108.举例来说,当前正在使用“移动考勤”子项目,若点击“移动考勤”页面右上角的隐藏功能,则可以隐藏“移动考勤”子项目,此时“移动考勤”页面隐藏在后台。
109.可见,实施该可选的实施例能够对已展开的页面进行相关的隐藏、关闭和退出操作,丰富了子项目页面操作,减少由于展开的页面过多而导致用户翻看页面的难度和繁琐程度较高的情况发生。
110.在该可选的实施例中,作为一种可选的实施方式,在对第一页面执行目标指令相匹配的目标操作之后,该方法还可以包括:
111.当检测到用户针对当前运行项目的第四子项目触发的运行指令时,确定第四子项目对应的独立项目容器以及第四子项目对应的空白页面;
112.在第四子项目对应的空白页面中基于第四子项目对应的独立项目容器,运行第四子项目对应的运行代码,以使第四子项目对应的独立项目容器生成第四子项目对应的第四页面,其中,第一子项目对应的独立项目容器与第四子项目对应的独立项目容器相互独立。
113.例如,在隐藏“移动考勤”子项目之后,可以点击“会议室预定”子项目,此时会重新弹出一个页面,在该页面中使用另一个浏览器实例去运行“会议室预定”功能,由于“移动考勤”子项目的浏览器实例和“会议室预定”子项目的浏览器实例相互独立,因此,“移动考勤”子项目和“会议室预定”子项目的功能互不影响。
114.可见,实施该可选的实施方式能够满足用户关闭其中一个子项目的页面并重新打开一个新的子项目页面的需求,且由于使用新的独立项目容器打开新的子项目页面,使得不同子项目的页面之间相互隔离,减少新运行的子项目与已运行的子项目之间的冲突。
115.在该可选的实施方式中,进一步可选的,在确定第四子项目对应的独立项目容器以及第四子项目对应的空白页面之前,该方法还可以包括:
116.确定当前处于运行状态的独立项目容器数量;
117.判断独立项目容器数量是否低于预设的最大阈值数量;
118.当判断结果为是时,触发执行上述的确定第四子项目对应的独立项目容器以及第四子项目对应的空白页面的操作。
119.可见,实施该可选的实施例能够在当前运行的独立项目容器数量低于最大阈值数量时才启动新的独立项目容器运行新的子项目,以便对同时运行的独立项目容器进行数量限制,减轻子项目运行产生的负载压力。
120.在又一个可选的实施例中,该方法还可以包括:
121.当检测到用户针对一个或多个项目触发的整合指令时,根据每个项目所包含的所有子项目,确定所有项目集合后的整合项目,整合项目包括每个项目所包含的所有子项目;
122.将整合项目中相同的多个子项目组合成一个子项目集合;
123.对每个子项目集合进行子项目删除处理,以使每个子项目集合只保留一个子项目;
124.将整合项目中的所有剩余子项目确定为整合指令对应的整合结果。
125.可见,实施该可选的实施例还能够将多个项目包含的子项目整合成一个新的整合项目,提高了项目融合的便捷性和效率,并且进一步提高了项目功能开发的便捷性、灵活性和效率,提高了项目功能的扩展能力,并实现了子项目代码的共享,提高了子项目功能的复用性。
126.实施例二
127.请参阅图2,图2是本发明实施例公开的另一种基于多项目容器的项目运行方法的流程示意图。其中,图2所描述的基于多项目容器的项目运行方法可以应用于多个子项目同时运行的实现,可选的,该基于多项目容器的项目运行方法可以应用于移动开发平台中,也可以应用于包含一个或多个子项目的应用程序中,本发明实施例不做限定。如图2所示,该基于多项目容器的项目运行方法可以包括以下操作:
128.201、当检测到用户针对当前运行项目的第一子项目中触发的运行指令时,确定第一子项目对应的独立项目容器以及第一子项目对应的空白页面。
129.202、在第一子项目对应的空白页面中基于第一子项目对应的独立项目容器,运行第一子项目对应的运行代码,以使第一子项目对应的独立项目容器生成第一子项目对应的第一页面,第一页面用于供用户查看。
130.203、当检测到第一子项目与当前运行项目的第三子项目之间存在交互需求时,基于第一子项目对应的独立项目容器与第三子项目对应的独立项目容器之间的交互接口,向第三子项目对应的独立项目容器发送数据获取请求,以使第三子项目对应的独立项目容器监听数据获取请求并基于交互接口向第一子项目对应的独立项目容器发送数据获取请求对应的交互数据。
131.本发明实施例中,可选的,可以采用jssdk接口作为不同独立项目容器之间的交互接口。
132.本发明实施例中,可选的,数据获取请求至少包括所要获取的数据类型。
133.204、基于交互接口接收交互数据,以便第一子项目对应的独立项目容器对交互数据进行业务处理。
134.以下述流程为例:若“会议室预定”子项目想要获取“移动考勤”子项目的数据,则“会议室预定”子项目可以通过jssdk接口向“移动考勤”子项目发出数据获取请求;“移动考勤”子项目通过监听jssdk接口接收到数据获取请求,并通过jssdk接口把交互数据传递给“会议室预定”子项目;“会议室预定”子项目再通过监听jssdk接口接收到交互数据,并对交互数据进行业务处理。
135.本发明实施例中,关于步骤201-步骤202的其他描述,请参照实施例一中针对步骤101-步骤102的详细描述,本发明实施例不再赘述。
136.可见,实施本发明实施例能够在运行项目时通过分别使用一个独立项目容器运行一个子项目,使得各个子项目之间进行了隔离,从而减少多个子项目同时运行时产生的冲突,并且由于不同子项目使用不同的独立项目容器,因此不同子项目的页面进行交互和切换时无需进行整页刷新,从而减少了页面状态数据保存和刷新的工作量,此外,还能够通过独立项目容器之间的数据接口实现不同子项目页面之间的数据交互,丰富了多子项目运行的功能,减少了由于需要实现不同子项目页面之间的交互而导致需要对当前页面进行刷新的情况,从而减少了页面数据保存的工作量。
137.在一个可选的施例中,在基于第一子项目对应的独立项目容器与第三子项目对应的独立项目容器之间的交互接口,向第三子项目对应的独立项目容器发送数据获取请求,以使第三子项目对应的独立项目容器监听数据获取请求并基于交互接口向第一子项目对应的独立项目容器发送数据获取请求对应的交互数据之前,该方法该可以包括:
138.当第三子项目未处于运行状态时,确定第三子项目对应的独立项目容器;
139.基于第三子项目对应的独立项目容器,运行第三子项目对应的运行代码,以使第三子项目对应的独立项目容器生成数据获取请求对应的交互数据;
140.可选的,第三子项目对应的独立容器生成交互数据时可以同时生成或不生成第三子项目对应的第三页面,本可选的实施例不做限定,进一步可选的,若第三子项目对应的独立容器生成交互数据时可以同时生成第三页面,则生成后的第三页面处于后台运行状态,也即并不展示在前端。
141.可见,实施该可选的实施例能够在需要进行数据交互的子项目为运行时通过一个新的独立项目容器运行该子项目,进一步提高了不同子项目数据交互的准确性和可靠性,并且该子项目运行时相关页面可以不生成,从而减少了页面管理的工作量,减少了项目内存占用率,此外,若该子项目运行时生成的相关页面只在后台运行,降低了数据交互对当前页面查看的影响。
142.实施例三
143.请参阅图3图3是本发明实施例公开的一种基于多项目容器的项目运行装置的结构示意图。其中,图3所描述的基于多项目容器的项目运行装置可以应用于多个子项目同时运行的实现,可选的,该基于多项目容器的项目运行装置可以应用于移动开发平台中,也可以应用于包含一个或多个子项目的应用程序中,本发明实施例不做限定。如图3所示,该基于多项目容器的项目运行装置可以包括:
144.确定模块301,用于当检测到用户针对当前运行项目的第一子项目中触发的运行指令时,确定第一子项目对应的独立项目容器以及第一子项目对应的空白页面,其中,当前运行项目包含一个或多个子项目,当前运行项目包含的所有子项目包括第一子项目;
145.运行模块302,用于在第一子项目对应的空白页面中基于第一子项目对应的独立
项目容器,运行第一子项目对应的运行代码,以使第一子项目对应的独立项目容器生成第一子项目对应的第一页面,第一页面用于供用户查看。
146.可见,实施图3所描述的装置能够在运行项目时通过分别使用一个独立项目容器运行一个子项目,使得各个子项目之间进行了隔离,从而减少多个子项目同时运行时产生的冲突,并且由于不同子项目使用不同的独立项目容器,因此不同子项目的页面进行交互和切换时无需进行整页刷新,从而减少了页面状态数据保存和刷新的工作量。
147.在一个可选的实施例中,如图4所示,确定模块301,还用于当检测到用户在当前展示的第一页面上触发的页面切换操作时,确定页面切换操作所要展示的第二子项目;
148.该装置还可以包括:
149.切换模块303,用于从第一页面切换至第二子项目对应的第二页面;
150.其中,切换模块303从第一页面切换至的第二子项目对应的第二页面的具体方式,可以包括:
151.当第二子项目处于运行状态时,确定第二子项目对应的第二页面,并从第一页面切换至第二页面,其中,第二页面的页面状态为第二页面被切换至其他页面之前所保持的页面状态;和/或,
152.当第二子项目未处于运行状态时,确定第二子项目对应的独立项目容器以及第二子项目对应的空白页面,在第二子项目对应的空白页面中基于第二子项目对应的独立项目容器,运行第二子项目对应的运行代码,以使第二子项目对应的独立项目容器生成第二子项目对应的第二页面,并从第一页面切换至第二页面,其中,第一子项目对应的独立项目容器与第二子项目对应的独立项目容器相互独立。
153.可见,实施图4所描述的装置通过使用不同的独立项目容器运行不同的子项目,从而在满足多个页面来回切换时对页面状态保存的需求的同时减少页面状态数据保存和管理的工作量,此外,在所需切换的子项目未处于运行状态时先运行该子项目,提高了页面切换的准确性和灵活性。
154.在另一个可选的实施例中,如图4所示,确定模块301,还用于当检测到用户针对当前运行项目触发的子项目引入指令时,确定子项目引入指令所要引入的目标子项目以及目标子项目对应的读取指引信息;
155.该装置还可以包括:
156.引入模块304,用于将目标子项目对应的读取指引信息引入当前运行项目,以使当前运行项目引入目标子项目的项目功能,其中,读取指引信息包括读取目标子项目对应的运行代码时所需的源码地址。
157.可见,实施图4所描述的装置还能够通过在项目中引入子项目的源码地址即可为项目增加子项目功能,提高了项目功能开发的便捷性、灵活性和效率,提高了项目功能的扩展能力,并实现了子项目代码的共享,提高了子项目功能的复用性。
158.在又一个可选的实施例中,如图4所示,该装置还可以包括:
159.更新模块305,用于当检测到针对目标子项目对应的运行代码触发的修改指令时,根据修改指令更新目标子项目对应的运行代码;
160.确定模块301,还用于确定引入目标子项目的所有目标项目;
161.更新模块305,还用于根据源码地址,对所有目标项目中所引入的目标子项目的项
目功能进行更新。
162.可见,实施图4所描述的装置还能够在更新子项目的功能时直接对子项目的源码进行更新,而引入该子项目功能的所有项目只需通过源码地址即可实现同步更新,减少了由于分别拷贝子项目源码而导致需要对多个项目逐个进行更新的情况,提高了项目更新和代码维护的便捷性和效率。
163.在又一个可选的实施例中,如图4所示,该装置还可以包括:
164.数据传输模块306,用于当检测到第一子项目与当前运行项目的第三子项目之间存在交互需求时,基于第一子项目对应的独立项目容器与第三子项目对应的独立项目容器之间的交互接口,向第三子项目对应的独立项目容器发送数据获取请求,以使第三子项目对应的独立项目容器监听数据获取请求并基于交互接口向第一子项目对应的独立项目容器发送数据获取请求对应的交互数据;
165.数据传输模块306,还用于基于交互接口接收交互数据,以便第一子项目对应的独立项目容器对交互数据进行业务处理。
166.可见,实施图4所描述的装置还能够通过独立项目容器之间的数据接口实现不同子项目页面之间的数据交互,丰富了多子项目运行的功能,减少了由于需要实现不同子项目页面之间的交互而导致需要对当前页面进行刷新的情况,从而减少了页面数据保存的工作量。
167.在又一个可选的实施例中,如图4所示,该装置还可以包括;
168.页面操作模块307,用于当检测到用户针对第一页面触发的目标指令时,对第一页面执行目标指令相匹配的目标操作,其中,目标指令包括隐藏指令、关闭指令、退出指令中的其中一个,隐藏指令相匹配的目标操作包括隐藏操作,关闭指令相匹配的目标操作包括关闭操作,退出指令相匹配的目标操作包括退出操作;
169.以及,确定模块301,还用于在页面操作模块307对第一页面执行目标指令相匹配的目标操作之后,当检测到用户针对当前运行项目的第四子项目触发的运行指令时,确定第四子项目对应的独立项目容器以及第四子项目对应的空白页面;
170.运行模块302,还用于在第四子项目对应的空白页面中基于第四子项目对应的独立项目容器,运行第四子项目对应的运行代码,以使第四子项目对应的独立项目容器生成第四子项目对应的第四页面,其中,第一子项目对应的独立项目容器与第四子项目对应的独立项目容器相互独立。
171.可见,实施图4所描述的装置还能够对已展开的页面进行相关的隐藏、关闭和退出操作,丰富了子项目页面操作,减少由于展开的页面过多而导致用户翻看页面的难度和繁琐程度较高的情况发生,此外,还能够满足用户关闭其中一个子项目的页面并重新打开一个新的子项目页面的需求,且由于使用新的独立项目容器打开新的子项目页面,使得不同子项目的页面之间相互隔离,减少新运行的子项目与已运行的子项目之间的冲突。
172.在又一个可选的实施例中,如图4所示,确定模块301,还用于当检测到用户针对一个或多个项目触发的整合指令时,根据每个项目所包含的所有子项目,确定所有项目集合后的整合项目,整合项目包括每个项目所包含的所有子项目;
173.该装置还可以包括:
174.组合模块308,用于将整合项目中相同的多个子项目组合成一个子项目集合;
175.删除模块309,用于对每个子项目集合进行子项目删除处理,以使每个子项目集合只保留一个子项目;
176.确定模块301,还用于将整合项目中的所有剩余子项目确定为整合指令对应的整合结果。
177.可见,实施图4所描述的装置还能够将多个项目包含的子项目整合成一个新的整合项目,提高了项目融合的便捷性和效率,并且进一步提高了项目功能开发的便捷性、灵活性和效率,提高了项目功能的扩展能力,并实现了子项目代码的共享,提高了子项目功能的复用性。
178.实施例四
179.请参阅图5,图5是本发明实施例公开的又一种基于多项目容器的项目运行装置的结构示意图。如图5所示,该基于多项目容器的项目运行装置可以包括:
180.存储有可执行程序代码的存储器401;
181.与存储器401耦合的处理器402;
182.处理器402调用存储器401中存储的可执行程序代码,执行本发明实施例一或本发明实施例二所描述的基于多项目容器的项目运行方法中的步骤。
183.实施例五
184.本发明实施例公开了一种计算机存储介质,该计算机存储介质存储有计算机指令,该计算机指令被调用时,用于执行本发明实施例一或本发明实施例二所描述的基于多项目容器的项目运行方法中的步骤。
185.实施例六
186.本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行实施例一或实施例二中所描述的基于多项目容器的项目运行方法中的步骤。
187.以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
188.通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(read-only memory,rom)、随机存储器(random access memory,ram)、可编程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)、一次可编程只读存储器(one-time programmable read-only memory,otprom)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
189.最后应说明的是:本发明实施例公开的一种基于多项目容器的项目运行方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1