功能组件的创建与管理方法、系统、设备及可读存储介质与流程

文档序号:24428428发布日期:2021-03-26 23:37阅读:61来源:国知局
功能组件的创建与管理方法、系统、设备及可读存储介质与流程

1.本发明实施例涉及研发管理技术领域,尤其涉及一种功能组件的创建与管理方法、系统、设备及可读存储介质。


背景技术:

2.前端技术日新月异,最近几年出现了大量的前端技术框架,比如微信的小程序、facebook推出的reactnative、阿里推出的weex、google推出的flutter等等。这些前端技术框架为前端人员在项目开发过程中提供多样化选择。但是,由于前端技术框架会存在多技术栈的问题,例如,在实际业务开发中,如果要实现跨业务场景实现业务功能,就会因技术栈不同需要做大量的兼容工作。因此,如何解决跨业务场景实现业务功能的兼容问题,从而提高业务开发效率,成为了当前亟需解决的技术问题。


技术实现要素:

3.有鉴于此,有必要提供一种功能组件的创建与管理方法、系统、计算机设备及计算机可读存储介质,以解决跨业务场景实现业务功能的兼容问题,以及当前业务开发的效率较低等技术问题。
4.为实现上述目的,本发明实施例提供了一种功能组件的创建与管理方法,所述方法步骤包括:
5.获取多个功能和各个功能的功能信息,其中,每个ability;
6.对每个功能信息进行规范化处理,以得到多个功能描述文件和各个功能描述文件所对应的功能id;
7.基于功能描述文件为每个功能配置对应的功能接口,以得到多个功能组件;及
8.将各个功能描述文件所对应的功能id发送到客户端,以便所述客户端根据所述功能id调用对应的功能组件。
9.示例性的,对每个功能信息进行规范化处理的步骤,包括:
10.预先创建用于规范所述功能信息的描述文件框架;
11.将所述功能信息加载到所述描述文件框架中,其中,所述描述文件框架配置有多个配置项,每个配置项用于规范所述功能信息的一个参数;
12.根据所述功能信息对应的描述文件获取所述功能信息对应的功能id;及
13.对加载后的描述文件框架配置对应的api接口,以得到所述功能信息对应的描述文件。
14.示例性的,所述配置项包括接口项,所述接口项用于声明所述功能接口;
15.所述基于功能描述文件为每个功能配置对应的功能接口,以得到多个功能组件的步骤,包括:
16.预先为每个功能组件配置对应的接口声明;
17.将每个接口声明加载到对应的功能描述文件的接口项中,以得到各个功能描述文
件的功能接口;及
18.对配置了所述功能接口的各个功能描述文件进行封装,以得到所述多个功能组件,将并将所述多个功能组件存储到组件数据包中。
19.示例性的,所述将各个功能描述文件所对应的功能id发送到客户端的步骤之后,还包括功能组件的调用步骤:
20.提供一个或多个轻应用;
21.提供多个宿主app,其中,每个宿主app关联一个或多个功能组件的功能实现;及
22.管理和调用所述多个宿主app提供的多个功能实现;其中,每个轻应用通过预先配置的调用引擎调用相应的宿主app提供的功能实现,所述轻应用包括多个使用功能组件相关联的业务场景的应用。
23.示例性的,所述管理和调用所述多个宿主app提供的多个功能实现的步骤,包括:
24.接收所述管理和调用模块转发的目标轻应用的调用请求,所述调用请求携带有对应的功能id;
25.根据所述功能id获取所述功能id对应的调用信息,并将所述调用信息发送到所述解析模块;
26.接收并解析所述调用信息,以得到所述调用信息中的参数;及
27.将所述调用信息中的参数,发送到所述管理和调用模块,以便所述管理和调用模块根据所述调用信息中的参数查找对应的宿主app提供的目标功能组件,并将所述目标功能组件加载到所述目标轻应用。
28.示例性的,所述管理和调用所述多个宿主app提供的多个功能实现的步骤,包括:
29.接收查找请求,所述查找请求携带有查找信息和目标功能组件的功能id;
30.根据所述查找信息和所述目标功能组件的功能id查找所述目标功能组件的功能接口和功能条件;及
31.将所述功能接口和所述功能条件发送到所述管理和调用模块,以便所述管理和调用模块根据所述功能接口和所述功能条件查找对应的宿主app提供的目标功能组件,并将所述目标功能组件加载到所述目标轻应用。
32.示例性的,还包括:将所述多个功能组件和对应的多个功能id上传到区块链中。
33.为实现上述目的,本发明实施例还提供了一种功能组件的创建与管理系统,包括:
34.获取模块,用于获取多个功能和各个功能的功能信息,其中,每个ability;
35.处理模块,用于对每个功能信息进行规范化处理,以得到多个功能描述文件和各个功能描述文件所对应的功能id;
36.配置模块,用于基于功能描述文件为每个功能配置对应的功能接口,以得到多个功能组件;及
37.发送模块,用于将各个功能描述文件所对应的功能id发送到客户端,以便所述客户端根据所述功能id调用对应的功能组件。
38.为实现上述目的,本发明实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如上述的功能组件的创建与管理方法的步骤。
39.为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机
可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上述的功能组件的创建与管理方法的步骤。
40.本发明实施例提供的功能组件的创建与管理方法、系统、计算机设备及计算机可读存储介质,本实施例通过为业务功能进行规范化处理,统一了各个业务功能的功能接口,解决了跨业务场景实现业务功能的兼容问题,实现了对功能组件的中心化管理,确保了业务功能是完整性和安全性,提高了业务开发的效率。
附图说明
41.图1为本发明实施例功能组件的创建与管理方法的流程示意图。
42.图2为本发明功能组件的创建与管理系统实施例二的程序模块示意图。
43.图3为本发明功能组件的调用系统实施例三的程序模块示意图。
44.图4为本发明计算机设备实施例四的硬件结构示意图。
具体实施方式
45.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
47.以下实施例中,将以计算机设备2为执行主体进行示例性描述。
48.实施例一
49.参阅图1,示出了本发明实施例之功能组件的创建与管理方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备2为执行主体进行示例性描述。具体如下。
50.步骤100,获取多个功能和各个功能的功能信息。
51.所述功能(ability,以下以ability进行描述)可以是应用中一项功能,这项功能可以包括基础功能和业务功能等。例如,在页面场景中的,计算机设备2目标设备的设备信息获取功能、离线功能(在没有网络的情况下仍然可以访问app的重要信息的功能)。所述功能信息(ability信息)可以包括ability的开发公司、功能类型、版本型号、功能名称、功能说明、功能范围、功能描述等信息。
52.步骤102,对每个功能信息进行规范化处理,以得到多个功能描述文件和各个功能描述文件所对应的功能id。
53.所述功能描述文件是一种文件格式,用于声明和规范ability对应的功能的ability信息,如,所述ability的描述文件用于声明和规范所述ability对应的功能的开发
公司、功能类型、版本型号、功能名称、功能说明、功能范围、功能描述、输出信息、输入信息、对外暴露的api等信息。
54.在示例性的实施例中,所述短连切换方法还可以包括长连通道的建立步骤s200~步骤s206,其中:步骤s200,预先创建用于规范所述功能信息的描述文件框架;步骤s202,将所述功能信息加载到所述描述文件框架中,其中,所述描述文件框架配置有多个配置项,每个配置项用于规范所述功能信息的一个参数;步骤s204,根据所述功能信息对应的描述文件获取所述功能信息对应的功能id;步骤s206,及对加载后的描述文件框架配置对应的api接口,以得到所述功能信息对应的描述文件。
55.示例性的,计算机设备2可以通过预先定义一个用于规范所述ability信息的描述文件框架(ability框架),并将所述ability信息加载到所述描述文件框架中。描述文件框架可以预先设定需要配置参数,并为需要配置参数设定配置项,当所述ability信息加载到所述描述文件框架时,所述描述文件框架可以根据配置项确定所述ability信息对应的参数,当配置项配置了对应的参数后可以为所述描述文件框架配置对应的api接口,以得到所述ability信息对应的功能描述文件。其中,所述功能id(abilityid)可以是所述功能描述文件中前三个参数的组合。
56.为方便理解,本实施例还提供了一个ability的功能描述文件的实例,以ability为获取设备信息id的功能为例,所述描述文件如下:
57.[0058][0059]
上述company为开发公司的描述、category为功能类型的描述、version为版本型号的描述、description为功能说明的描述、limit为功能使用范围的描述、abilities为功能描述。exports为输出的描述、imports为输入的描述,其中,actions就是此ability对外暴露的api。另外,该功能abilityid可以是pifsr.base.device。
[0060]
步骤s104,基于功能描述文件为每个功能配置对应的功能接口,以得到多个功能组件。
[0061]
计算机设备2可以在每个ability对应的文件描述的native中声明对应的ability接口。在native中声明对应的ability的ability接口,例如:
[0062][0063]
其中,所述action需要与该ability接口对应的描述文件中的action保存一一对应的关系。
[0064]
在示例性的实施例中,所述步骤s104还可以进一步的包括步骤s300~步骤s304,其中:所述基于功能描述文件为每个功能配置对应的功能接口,以得到多个功能组件的步骤,包括:步骤s300,预先为每个功能组件配置对应的接口声明;步骤s302,将每个接口声明加载到对应的功能描述文件的接口项中,以得到各个功能描述文件的功能接口;及步骤s304,对配置了所述功能接口的各个功能描述文件进行封装,以得到所述多个功能组件,将并将所述多个功能组件存储到组件数据包中。
[0065]
示例性的,所述组件数据包可以是js

sdk(javascript

softwaredevelopment kit,软件开发工具包),为了方便理解,本方案还提供了一下几个事例:
[0066]
(1)例如,银行、证券的业务都使用到了登录场景,如果银行的页面投放到证券中,则银行、证券该银行的页面就需要兼容证券的登录场景,这样就多了维护与开发的工作量。
[0067]
若将银行、证券的业务的登录功能均定义为登录ability,则双方就可以使用同一套协议,由框架进行差异化抹平,这样就达到编写一次,在不同的app中、android以及ios平台中运行。
[0068]
具体的,以ability为登录功能为例,那么该ability的接口可以定义为:
[0069]
public void login(string phonenum,string password,abilitycallback callback)。
[0070]
其中,phonenum是登录时需的账号,password为登录时需的密码。abilitycallback是异步请求的回调。
[0071]
(2)以ability为网络功能为例,那么该ability的接口可以定义为:
[0072]
public void request(requestparam params,abilitycallback callback)。
[0073]
其中,params是网络请求的参数,这些参数可以是url地址、请求方式(get、post等)、头部参数、body信息等。abilitycallback是异步请求的回调。
[0074]
ability的定义其实就是定义统一的抽象接口,并增加目录、名称、条件等描述信息。
[0075]
步骤s106,将各个功能描述文件所对应的功能id发送到客户端,以便所述客户端根据所述功能id调用对应的功能组件。
[0076]
当所述客户端得到所述功能id后,可以根据所述功能id生成调用请求,并将所述调用请求发送到计算机设备2,以通过计算机设备2从所述js

sdk(javascript

softwaredevelopment kit,软件开发工具包)调用所述功能组件。
[0077]
示例性的,本实施例中计算机设备2通过为业务功能定义抽象的spi,即,通过将业
务功能统一注册到描述文件框架中以为业务功能定义统一的接口,解决了跨业务场景实现业务功能的兼容问题,并通过组件数据包对功能组件进行中心化管理,确保了业务功能是完整性和安全性,提高了业务开发的效率。
[0078]
示例性的,在所述步骤106之后,还包括功能组件的调用步骤:步骤s400~步骤404,其中:
[0079]
步骤s400,提供一个或多个轻应用。
[0080]
所述轻应用可以是基于h5页面的应用。
[0081]
步骤s402,提供多个宿主app,其中,每个宿主app关联一个或多个功能组件的功能实现。
[0082]
示例性的,计算机设备2可以从所述宿主app中获取一个或多个功能,还可以通过预定的协议将从所述宿主app中获取的一个或多个功能进行定义为功能组件。如,可以将目标宿主app中的登陆功能定义为loginability(登陆组件),还可以将网络请求功能定义为networkability(网络请求组件)。
[0083]
步骤s404,管理和调用所述多个宿主app提供的多个功能实现;其中,每个轻应用通过预先配置的调用引擎调用相应的宿主app提供的功能实现,所述轻应用包括多个使用功能组件相关联的业务场景的应用。
[0084]
示例性的,在所述步骤s404还可以进一步的包括:步骤s500,接收所述管理和调用模块转发的目标轻应用的调用请求,所述调用请求携带有对应的功能id;步骤s502,根据所述功能id获取所述功能id对应的调用信息,并将所述调用信息发送到所述解析模块;步骤s504,接收并解析所述调用信息,以得到所述调用信息中的参数;及步骤s506,将所述调用信息中的参数,发送到所述管理和调用模块,以便所述管理和调用模块根据所述调用信息中的参数查找对应的宿主app提供的目标功能组件,并将所述目标功能组件加载到所述目标轻应用。
[0085]
示例性的,计算机设备2可以通过管理和调用模块304所述管理和调用模块接收目标轻应用的调用请求,并将接收到所述目标轻应用的调用请求转发到所述存储模块,其中,所述存储模块可以是js

sdk(javascript

softwaredevelopment kit,软件开发工具包),所述js

sdk存储有多个ability的调用信息,每个调用信息包括多个参数。
[0086]
当所述js

sdk接收到所述调用请求后;所述js

sdk可以对所述调用请求进行解析以得到功能id,根据所述功能id匹配所述功能id对应的调用信息,并将所述调用信息发送到所述解析模块,所述解析模块可以是native与h5通信的bridge(解析通道)。
[0087]
当所述bridge接收到所述调用信息后,可以对所述调用信息进行解析,以得到所述调用信息的参数(分类、名称、条件等信息),并将所述调用信息的参数发送到所述管理和调用模块,以便所述管理和调用模块根据所述调用信息中的参数查找对应的宿主app提供的目标功能组件,并将所述目标功能组件加载到所述目标轻应用。
[0088]
示例性的,在所述步骤s404还可以进一步的包括:步骤s600,接收查找请求,所述查找请求携带有查找信息和目标功能组件的功能id;步骤s602,
[0089]
根据所述查找信息和所述目标功能组件的功能id查找所述目标功能组件的功能接口和功能条件;及步骤s604,将所述功能接口和所述功能条件发送到所述管理和调用模块,以便所述管理和调用模块根据所述功能接口和所述功能条件查找对应的宿主app提供
的目标功能组件,并将所述目标功能组件加载到所述目标轻应用。
[0090]
示例性的,计算机设备2可以直接接收轻应用的查找请求,以通过所述查找请求携带的查找信息和目标功能组件的功能id从所述js

sdk获取对应的查找所述目标功能组件的功能接口和功能条件;及将所述功能接口和所述功能条件发送到所述管理和调用模块,以便所述管理和调用模块根据所述功能接口和所述功能条件查找对应的宿主app提供的目标功能组件,并将所述目标功能组件加载到所述目标轻应用。
[0091]
示例性的,当客户端打开某一个轻应用时,所述管理和调用模块(ability调用框架)可以根据轻应用的描述文件加载ability的描述文件,并且将ability的api注入到h5中,以便h5端在调用ability时,所述ability调用框架可以根据h5端传来的ability的参数(分类、名称、条件等信息)加载此ability在客户端的具体实现,完成整个链路的调用。其中,当轻应用需要在客户端运行时,需要在轻应用的描述文件增加ability的引用。且客户端sdk必须引入相关ability的接口,并根据ability的接口来提供具体实现。
[0092]
示例性的,所述功能组件的创建与管理方法还包括:将所述多个功能组件和对应的多个功能id上传到区块链中。
[0093]
示例性的,将所述调用结果上传至区块链可保证其安全性和公正透明性。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0094]
实施例二
[0095]
图2为本发明功能组件的创建与管理系统实施例二的程序模块示意图。功能组件的创建与管理系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述功能组件的创建与管理方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述功能组件的创建与管理系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
[0096]
获取模块200,用于获取多个功能和各个功能的功能信息,其中,每个ability。
[0097]
所述功能(ability,以下以ability进行描述)可以是应用中一项功能,这项功能可以包括基础功能和业务功能等。例如,在页面场景中的,功能组件的创建与管理系统20目标设备的设备信息获取功能、离线功能(在没有网络的情况下仍然可以访问app的重要信息的功能)。所述功能信息(ability信息)可以包括ability的开发公司、功能类型、版本型号、功能名称、功能说明、功能范围、功能描述等信息。
[0098]
处理模块202,用于对每个功能信息进行规范化处理,以得到多个功能描述文件和各个功能描述文件所对应的功能id。
[0099]
所述功能描述文件是一种文件格式,用于声明和规范ability对应的功能的ability信息,如,所述ability的描述文件用于声明和规范所述ability对应的功能的开发公司、功能类型、版本型号、功能名称、功能说明、功能范围、功能描述、输出信息、输入信息、对外暴露的api等信息。
[0100]
示例性的,所述处理模块202还用于:预先创建用于规范所述功能信息的描述文件框架;将所述功能信息加载到所述描述文件框架中,其中,所述描述文件框架配置有多个配置项,每个配置项用于规范所述功能信息的一个参数;根据所述功能信息对应的描述文件获取所述功能信息对应的功能id;及对加载后的描述文件框架配置对应的api接口,以得到所述功能信息对应的描述文件。
[0101]
示例性的,功能组件的创建与管理系统20可以通过预先定义一个用于规范所述ability信息的描述文件框架(ability框架),并将所述ability信息加载到所述描述文件框架中。描述文件框架可以预先设定需要配置参数,并为需要配置参数设定配置项,当所述ability信息加载到所述描述文件框架时,所述描述文件框架可以根据配置项确定所述ability信息对应的参数,当配置项配置了对应的参数后可以为所述描述文件框架配置对应的api接口,以得到所述ability信息对应的功能描述文件。其中,所述功能id(abilityid)可以是所述功能描述文件中前三个参数的组合。
[0102]
为方便理解,本实施例还提供了一个ability的功能描述文件的实例,以ability为获取设备信息id的功能为例,所述描述文件如下:
[0103]
[0104][0105]
上述company为开发公司的描述、category为功能类型的描述、version为版本型号的描述、description为功能说明的描述、limit为功能使用范围的描述、abilities为功能描述。exports为输出的描述、imports为输入的描述,其中,actions就是此ability对外暴露的api。另外,该功能abilityid可以是pifsr.base.device。
[0106]
配置模块204,用于基于功能描述文件为每个功能配置对应的功能接口,以得到多个功能组件。
[0107]
功能组件的创建与管理系统20可以在每个ability对应的文件描述的native中声明对应的ability接口。在native中声明对应的ability的ability接口,例如:
[0108][0109][0110]
其中,所述action需要与该ability接口对应的描述文件中的action保存一一对应的关系。
[0111]
示例性的,所述配置项包括接口项,所述接口项用于声明所述功能接口;所述配置
模块204,还用于预先为每个功能组件配置对应的接口声明;将每个接口声明加载到对应的功能描述文件的接口项中,以得到各个功能描述文件的功能接口;及对配置了所述功能接口的各个功能描述文件进行封装,以得到所述多个功能组件,将并将所述多个功能组件存储到组件数据包中。
[0112]
示例性的,所述组件数据包可以是js

sdk(javascript

softwaredevelopment kit,软件开发工具包),为了方便理解,本方案还提供了一下几个事例:
[0113]
(1)例如,银行、证券的业务都使用到了登录场景,如果银行的页面投放到证券中,则银行、证券该银行的页面就需要兼容证券的登录场景,这样就多了维护与开发的工作量。
[0114]
若将银行、证券的业务的登录功能均定义为登录ability,则双方就可以使用同一套协议,由框架进行差异化抹平,这样就达到编写一次,在不同的app中、android以及ios平台中运行。
[0115]
具体的,以ability为登录功能为例,那么该ability的接口可以定义为:
[0116]
public void login(string phonenum,string password,abilitycallback callback)。
[0117]
其中,phonenum是登录时需的账号,password为登录时需的密码。abilitycallback是异步请求的回调。
[0118]
(2)以ability为网络功能为例,那么该ability的接口可以定义为:
[0119]
public void request(requestparam params,abilitycallback callback)。
[0120]
其中,params是网络请求的参数,这些参数可以是url地址、请求方式(get、post等)、头部参数、body信息等。abilitycallback是异步请求的回调。
[0121]
ability的定义其实就是定义统一的抽象接口,并增加目录、名称、条件等描述信息。
[0122]
发送模块206,用于将各个功能描述文件所对应的功能id发送到客户端,以便所述客户端根据所述功能id调用对应的功能组件。
[0123]
当所述客户端得到所述功能id后,可以根据所述功能id生成调用请求,并将所述调用请求发送到功能组件的创建与管理系统20,以通过功能组件的创建与管理系统20从所述js

sdk(javascript

softwaredevelopment kit,软件开发工具包)调用所述功能组件。
[0124]
示例性的,本实施例中功能组件的创建与管理系统20通过为业务功能定义抽象的spi,即,通过将业务功能统一注册到描述文件框架中以为业务功能定义统一的接口,并通过组件数据包对功能组件进行中心化管理,确保了业务功能是完整性和安全性。
[0125]
示例性的,所述功能组件的创建与管理系统20还包括,上传模块,所述上传模块,用于将所述调用结果上传到区块链中。
[0126]
示例性的,将所述调用结果上传至区块链可保证其安全性和公正透明性。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0127]
实施例三
[0128]
图3示意性示出了根据本申请实施例三的功能组件的调用系统30的框图,该功能组件的调用系统30可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
[0129]
如图3所示,该功能组件的调用系统30可以包括轻应用模块300、确定模块302、和升级模块304,其中:
[0130]
轻应用模块300,用于提供一个或多个轻应用。
[0131]
所述轻应用可以是基于h5页面的应用。
[0132]
宿主app模块302,用于多个宿主app,其中,每个宿主app关联一个或多个功能组件的功能实现。
[0133]
示例性的,功能组件的调用系统30可以从所述宿主app中获取一个或多个功能,还可以通过预定的协议将从所述宿主app中获取的一个或多个功能进行定义为功能组件。如,可以将目标宿主app中的登陆功能定义为loginability(登陆组件),还可以将网络请求功能定义为networkability(网络请求组件)。
[0134]
管理和调用模块304,用于管理和调用所述多个宿主app提供的多个功能实现;其中,每个轻应用通过预先配置的调用引擎调用相应的宿主app提供的功能实现,所述轻应用包括多个使用功能组件相关联的业务场景的应用;(如,类似微信小程序概念的h5离线包)。
[0135]
在示例性的实施例中,所述调用引擎包括存储模块和解析模块,其中:
[0136]
所述存储模块,用于接收所述管理和调用模块转发的目标轻应用的调用请求,所述调用请求携带有对应的功能id;所述存储模块,还用于根据所述功能id获取所述功能id对应的调用信息,并将所述调用信息发送到所述解析模块;所述解析模块,用于接收并解析所述调用信息,以得到所述调用信息中的参数;及所述解析模块,还用于将所述调用信息中的参数,发送到所述管理和调用模块,以便所述管理和调用模块根据所述调用信息中的参数查找对应的宿主app提供的目标功能组件,并将所述目标功能组件加载到所述目标轻应用。
[0137]
示例性的,功能组件的调用系统30可以通过管理和调用模块304所述管理和调用模块接收目标轻应用的调用请求,并将接收到所述目标轻应用的调用请求转发到所述存储模块,其中,所述存储模块可以是js

sdk(javascript

softwaredevelopment kit,软件开发工具包),所述js

sdk存储有多个ability的调用信息,每个调用信息包括多个参数。
[0138]
当所述js

sdk接收到所述调用请求后;所述js

sdk可以对所述调用请求进行解析以得到功能id,根据所述功能id匹配所述功能id对应的调用信息,并将所述调用信息发送到所述解析模块,所述解析模块可以是native与h5通信的bridge(解析通道)。
[0139]
当所述bridge接收到所述调用信息后,可以对所述调用信息进行解析,以得到所述调用信息的参数(分类、名称、条件等信息),并将所述调用信息的参数发送到所述管理和调用模块,以便所述管理和调用模块根据所述调用信息中的参数查找对应的宿主app提供的目标功能组件,并将所述目标功能组件加载到所述目标轻应用。
[0140]
在示例性的实施例中,所述存储模块,还用于:接收查找请求,所述查找请求携带有查找信息和目标功能组件的功能id;根据所述查找信息和所述目标功能组件的功能id查
找所述目标功能组件的功能接口和功能条件;及将所述功能接口和所述功能条件发送到所述管理和调用模块,以便所述管理和调用模块根据所述功能接口和所述功能条件查找对应的宿主app提供的目标功能组件,并将所述目标功能组件加载到所述目标轻应用。
[0141]
示例性的,功能组件的调用系统30可以直接接收轻应用的查找请求,以通过所述查找请求携带的查找信息和目标功能组件的功能id从所述js

sdk获取对应的查找所述目标功能组件的功能接口和功能条件;及将所述功能接口和所述功能条件发送到所述管理和调用模块,以便所述管理和调用模块根据所述功能接口和所述功能条件查找对应的宿主app提供的目标功能组件,并将所述目标功能组件加载到所述目标轻应用。
[0142]
示例性的,当客户端打开某一个轻应用时,所述管理和调用模块(ability调用框架)可以根据轻应用的描述文件加载ability的描述文件,并且将ability的api注入到h5中,以便h5端在调用ability时,所述ability调用框架可以根据h5端传来的ability的参数(分类、名称、条件等信息)加载此ability在客户端的具体实现,完成整个链路的调用。其中,当轻应用需要在客户端运行时,需要在轻应用的描述文件增加ability的引用。且客户端sdk必须引入相关ability的接口,并根据ability的接口来提供具体实现。
[0143]
示例性的,为了更好的理解,本实施例还提供了一个在轻应用的描述文件增加ability的引用(即,将所述目标功能组件加载到所述目标轻应用)的实例:如果需要使用ability只需要在轻应用的描述文件中,依赖这个ability即可。具体如下:
[0144]
[0145]
[0146][0147]
其中,上述是轻应用的描述文件,字段imports表示此轻应用需要哪些ability。当轻应用加载时,框架sdk会根据这个依赖关系加载所需要的ability。
[0148]
当客户端打开某一个轻应用时,ability框架可以根据轻应用的描述文件加载ability的描述文件,例如,将所述ability的描述文件添加到上述轻应用的描述文件的"imports"中即可实现所述ability调用。
[0149]
示例性的,当客户端调用的ability时,以h5页面要使用存储功能为例:
[0150]
客户端可以调用window.ability.base.storage.setglobaldata({"key":"123"},function(e)),其中,所述客户端的调用框架拦截转换到window.kiwi.onaction(category,ability,action,json.stringify(_data),json.stringify(callback),conditions)上(其中:kiwi是前端容器初始化后挂载到webview的全局监听),然后通过h5

native的bridge转发到native框架中,native框架通过传递过来的category,ability,conditions来转发调用到该ability的具体现实类中。
[0151]
其中,category是ability的类别,ability是名称,action是api名称,conditions是条件,同一个ability可以有多个实现方案,condition是为确认具体使用哪个实现方)。
[0152]
示例性的,所述客户端还可以为所述ability配置筛选模块,以通过所述筛选模块根据条件对ability进行筛选,增加了ability调用的灵活性。另外,宿主app还可以对ability进行加密。例如,某公司定义了一个统一的加密ability,但是各个公司的加密过程可能不一致,这样各个公司可以按照自己的特点提供自己的实现方式,由h5通过condition动态选择。
[0153]
示例性的,本实施例通过将ability注册到ability管理框架中,保证了ability的功能的完整性和标准性。通过js

sdk对所述ability进行统一管理,提高了ability的中心化管控的能力。
[0154]
实施例四
[0155]
参阅图4,是本发明实施例四之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及功能组件的创建与管理系统20。
[0156]
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施
例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例二的功能组件的创建与管理系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0157]
处理器22在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行功能组件的创建与管理系统20,以实现实施例一的功能组件的创建与管理方法。
[0158]
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(global system of mobile communicati/on,gsm)、宽带码分多址(wideband code divisi/on multiple access,wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi

fi等无线或有线网络。
[0159]
需要指出的是,图3仅示出了具有部件20

23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
[0160]
在本实施例中,存储于存储器21中的功能组件的创建与管理系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
[0161]
例如,图2示出了本发明实施例二之所述实现功能组件的创建与管理系统20的程序模块示意图,该实施例中,所述功能组件的创建与管理系统20可以被划分为生成模块200、判断模块202、切换模块204和发送模块206。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述功能组件的创建与管理系统20在所述计算机设备2中的执行过程。所述程序模块200

206的具体功能在实施例二中已有详细描述,在此不再赘述。
[0162]
实施例五
[0163]
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于功能组件的创建与管理系统20,被处理器执行时实现实施例一的功能组件的创建与管理方法。
[0164]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0165]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
[0166]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1