组件调用的方法和装置、组件数据处理的方法和装置转让专利

申请号 : CN201610912893.6

文献号 : CN107957911B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡豪俊林庆杰

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明涉及一种组件调用的方法和装置,组件数据处理的方法和装置,包括:获取子应用对应的组件调用数据,所述组件调用数据包括组件标识;将所述组件调用数据通过与当前系统平台对应的通信管道传递至母应用对应的原生层;所述原生层根据所述组件调用数据调用母应用中的与当前系统平台对应的第一原生组件,所述组件标识用于标识所述第一原生组件和运行于其它系统平台的具备相同功能的第二原生组件,能减少存储空间的占用,提高开发效率。

权利要求 :

1.一种组件调用的方法,所述方法包括:

获取子应用对应的组件调用数据,所述组件调用数据包括组件标识,所述子应用是依附于母应用运行的应用程序,在所述母应用提供的环境中实现的应用,通过所述母应用下载、启动、运行、关闭子应用;

将所述组件调用数据通过与当前系统平台对应的通信管道传递至母应用对应的原生层;

所述原生层根据所述组件调用数据调用母应用中的与当前系统平台对应的第一原生组件,所述组件标识用于标识所述第一原生组件和运行于其它系统平台的具备相同功能的第二原生组件。

2.根据权利要求1所述的方法,其特征在于,所述组件调用数据为通过标签语言对应的初始组件调用数据编译生成的脚本语言数据。

3.根据权利要求1所述的方法,其特征在于,所述获取子应用对应的组件调用数据的步骤之前,还包括:下载与当前系统平台对应的第一母应用数据包,所述第一母应用数据包中包括所述第一原生组件,在其它系统平台存在与所述第一母应用数据包具备相同功能的第二母应用数据包,所述第二母应用数据包包括所述第二原生组件。

4.根据权利要求1所述的方法,其特征在于,所述获取子应用对应的组件调用数据的步骤之前,还包括:在所述母应用的页面中下载所述子应用对应的数据包,所述数据包包括所述组件调用数据。

5.根据权利要求1所述的方法,其特征在于,所述将所述组件调用数据通过与当前系统平台对应的通信管道传递至母应用对应的原生层的步骤包括:与当前系统平台对应的通信管道将所述组件调用数据序列化为JSON字符串传递至母应用对应的原生层;

所述原生层根据所述组件调用数据调用母应用中的与当前系统平台对应的第一原生组件的步骤包括:所述原生层将所述JSON字符串反序列化为组件调用信息,根据所述组件调用信息获取组件调用位置和组件标识,获取所述组件标识对应的第一原生组件,根据所述组件调用位置在所述子应用的页面绘制所述第一原生组件。

6.根据权利要求1所述的方法,其特征在于,所述第一原生组件包括多媒体组件、绘图组件、地图组件中的至少一种。

7.根据权利要求1所述的方法,其特征在于,所述通信管道为系统平台提供的用于规定JavaScript脚本语言数据与原生层进行交互的通信规则。

8.一种组件数据处理的方法,所述方法包括:

获取第一系统平台对应的第一母应用数据包和第二系统平台对应的第二母应用数据包,所述第一母应用数据包包括第一原生组件,所述第二母应用数据包包括与所述第一原生组件具有相同功能的第二原生组件,所述第一原生组件与所述第二原生组件的组件标识相同,所述第一母应用数据包用于发送至第一系统平台终端,所述第二母应用数据包用于发送至第二系统平台终端;

获取母应用对应的子应用的组件调用数据,所述组件调用数据包括所述组件标识,所述组件调用数据用于发送至所述第一系统平台终端和所述第二系统平台终端,所述子应用是依附于母应用运行的应用程序,在所述母应用提供的环境中实现的应用,通过所述母应用下载、启动、运行、关闭子应用。

9.根据权利要求8所述的方法,其特征在于,所述获取母应用对应的子应用的组件调用数据的步骤包括:接收与所述子应用对应的通过标签语言编写的初始组件调用数据;

将所述初始组件调用数据编译生成脚本语言数据得到目标组件调用数据。

10.根据权利要求8所述的方法,其特征在于,所述方法还包括:

接收第一系统平台终端发送的第一母应用下载请求,将所述第一系统平台对应的第一母应用数据包发送至第一系统平台终端,以使所述第一系统平台终端安装所述第一母应用数据包以运行第一母应用;和/或接收第二系统平台终端发送的第二母应用下载请求,将所述第二系统平台对应的第二母应用数据包发送至第二系统平台终端,以使所述第二系统平台终端安装所述第二母应用数据包以运行第二母应用。

11.根据权利要求10所述的方法,其特征在于,所述方法还包括:

接收第一系统平台终端发送的组件调用数据下载第一请求,将所述组件调用数据发送至所述第一系统平台终端,以使所述第一系统平台终端将所述组件调用数据通过第一通信管道传递至第一系统平台终端运行的第一母应用对应的第一原生层,第一原生层根据所述组件调用数据调用所述第一原生组件;和/或接收第二系统平台终端发送的组件调用数据下载第二请求,将所述组件调用数据发送至所述第二系统平台终端,以使所述第二系统平台终端将所述组件调用数据通过第二通信管道传递至第二系统平台终端运行的第二母应用对应的第二原生层,第二原生层根据所述组件调用数据调用所述第二原生组件。

12.一种组件调用的装置,其特征在于,所述装置包括:

获取模块,用于获取子应用对应的组件调用数据,所述组件调用数据包括组件标识,所述子应用是依附于母应用运行的应用程序,在所述母应用提供的环境中实现的应用,通过所述母应用下载、启动、运行、关闭子应用;

传递模块,用于将所述组件调用数据通过与当前系统平台对应的通信管道传递至母应用对应的原生层;

调用模块,用于所述原生层根据所述组件调用数据调用母应用中的与当前系统平台对应的第一原生组件,所述组件标识用于标识所述第一原生组件和运行于其它系统平台的具备相同功能的第二原生组件。

13.根据权利要求12所述的装置,其特征在于,所述组件调用数据为通过标签语言对应的初始组件调用数据编译生成的脚本语言数据。

14.根据权利要求12所述的装置,其特征在于,所述装置还包括:

第一下载模块,用于下载与当前系统平台对应的第一母应用数据包,所述第一母应用数据包中包括所述第一原生组件,在其它系统平台存在与所述第一母应用数据包具备相同功能的第二母应用数据包,所述第二母应用数据包包括所述第二原生组件。

15.根据权利要求12所述的装置,其特征在于,所述装置还包括:

第二下载模块,用于在所述母应用的页面中下载所述子应用对应的数据包,所述数据包包括所述组件调用数据。

16.根据权利要求12所述的装置,其特征在于,所述传递模块还用于与当前系统平台对应的通信管道将所述组件调用数据序列化为JSON字符串传递至母应用对应的原生层;

所述调用模块还用于所述原生层将所述JSON字符串反序列化为组件调用信息,根据所述组件调用信息获取组件调用位置和组件标识,获取所述组件标识对应的第一原生组件,根据所述组件调用位置在所述子应用的页面绘制所述第一原生组件。

17.根据权利要求12所述的装置,其特征在于,所述第一原生组件包括多媒体组件、绘图组件、地图组件中的至少一种。

18.根据权利要求12所述的装置,其特征在于,所述通信管道为系统平台提供的用于规定JavaScript脚本语言数据与原生层进行交互的通信规则。

19.一种组件数据处理的装置,其特征在于,所述装置包括:

第一获取模块,用于获取第一系统平台对应的第一母应用数据包和第二系统平台对应的第二母应用数据包,所述第一母应用数据包包括第一原生组件,所述第二母应用数据包包括与所述第一原生组件具有相同功能的第二原生组件,所述第一原生组件与所述第二原生组件的组件标识相同,所述第一母应用数据包用于发送至第一系统平台终端,所述第二母应用数据包用于发送至第二系统平台终端;

第二获取模块,用于获取母应用对应的子应用的组件调用数据,所述组件调用数据包括所述组件标识,所述组件调用数据用于发送至所述第一系统平台终端和所述第二系统平台终端,所述子应用是依附于母应用运行的应用程序,在所述母应用提供的环境中实现的应用,通过所述母应用下载、启动、运行、关闭子应用。

20.根据权利要求19所述的装置,其特征在于,所述第二获取模块包括:

组件数据获取单元,用于接收与所述子应用对应的通过标签语言编写的初始组件调用数据;

编译单元,用于将所述初始组件调用数据编译生成脚本语言数据得到目标组件调用数据。

21.根据权利要求19所述的装置,其特征在于,所述装置还包括:

母应用下载响应模块,用于接收第一系统平台终端发送的第一母应用下载请求,将所述第一系统平台对应的第一母应用数据包发送至第一系统平台终端,以使所述第一系统平台终端安装所述第一母应用数据包以运行第一母应用;和/或用于接收第二系统平台终端发送的第二母应用下载请求,将所述第二系统平台对应的第二母应用数据包发送至第二系统平台终端,以使所述第二系统平台终端安装所述第二母应用数据包以运行第二母应用。

22.根据权利要求21所述的装置,其特征在于,所述装置还包括:

组件调用数据下载响应模块,用于接收第一系统平台终端发送的组件调用数据下载第一请求,将所述组件调用数据发送至所述第一系统平台终端,以使所述第一系统平台终端将所述组件调用数据通过第一通信管道传递至第一系统平台终端运行的第一母应用对应的第一原生层,第一原生层根据所述组件调用数据调用所述第一原生组件;和/或用于接收第二系统平台终端发送的组件调用数据下载第二请求,将所述组件调用数据发送至所述第二系统平台终端,以使所述第二系统平台终端将所述组件调用数据通过第二通信管道传递至第二系统平台终端运行的第二母应用对应的第二原生层,第二原生层根据所述组件调用数据调用所述第二原生组件。

说明书 :

组件调用的方法和装置、组件数据处理的方法和装置

技术领域

[0001] 本发明涉及计算机技术领域,特别是涉及一种组件调用的方法和装置、组件数据处理的方法和装置。

背景技术

[0002] 随着计算机技术和终端的发展,基于各类终端的应用需求也逐渐增加。终端的操作系统类型多种多样,包括Android安卓操作系统、Symbian塞班操作系统、Windows mobile操作系统、苹果iPhone OS操作系统、以及Windows操作系统等。
[0003] 组件是自包含,可重用的,具有特定功能的编程单元,一个完整的应用往往需要调用不同的组件完成相应的功能。现有的应用通过使用不同的操作系统平台相应支持的开发工具和语言生成组件和调用组件,每个应用都需要形成一套与系统对应的完整的代码数据,占用存储空间大,开发难度大。

发明内容

[0004] 基于此,有必要针对上述技术问题,提供一种组件调用的方法和装置、组件数据处理的方法和装置,对于不同的系统平台实现组件调用数据的共享,减少存储空间的占用,提高开发效率。
[0005] 一种组件调用的方法,所述方法包括:
[0006] 获取子应用对应的组件调用数据,所述组件调用数据包括组件标识;
[0007] 将所述组件调用数据通过与当前系统平台对应的通信管道传递至母应用对应的原生层;
[0008] 所述原生层根据所述组件调用数据调用母应用中的与当前系统平台对应的第一原生组件,所述组件标识用于标识所述第一原生组件和运行于其它系统平台的具备相同功能的第二原生组件。
[0009] 一种组件调用的装置,所述装置包括:
[0010] 获取模块,用于获取子应用对应的组件调用数据,所述组件调用数据包括组件标识;
[0011] 传递模块,用于将所述组件调用数据通过与当前系统平台对应的通信管道传递至母应用对应的原生层;
[0012] 调用模块,用于所述原生层根据所述组件调用数据调用母应用中的与当前系统平台对应的第一原生组件,所述组件标识用于标识所述第一原生组件和运行于其它系统平台的具备相同功能的第二原生组件。
[0013] 上述组件调用的方法和装置,通过获取子应用对应的组件调用数据,组件调用数据包括组件标识,将组件调用数据通过与当前系统平台对应的通信管道传递至母应用对应的原生层,原生层根据组件调用数据调用母应用中的与当前系统平台对应的第一原生组件,组件标识用于标识第一原生组件和运行于其它系统平台的具备相同功能的第二原生组件,子应用可以通过组件调用数据调用母应用的原生组件,从而不用每个子应用都重新编写原生组件,节省了存储空间,且由于同一组件标识可标识不同系统平台具有相同的功能的不同原生组件,从而只需要一份组件调用数据就可在不同的系统平台分别调用具有相同功能的不同原生组件,实现组件调用的跨平台,开发人员只需要编写一份组件调用数据,提高了开发的效率。
[0014] 一种组件数据处理的方法,所述方法包括:
[0015] 获取第一系统平台对应的第一母应用数据包和第二系统平台对应的第二母应用数据包,所述第一母应用数据包包括第一原生组件,所述第二母应用数据包包括与所述第一原生组件具有相同功能的第二原生组件,所述第一原生组件与所述第二原生组件的组件标识相同,所述第一母应用数据包用于发送至第一系统平台终端,所述第二母应用数据包用于发送至第二系统平台终端;
[0016] 获取母应用对应的子应用的组件调用数据,所述组件调用数据包括所述组件标识,所述组件调用数据用于发送至所述第一系统平台终端和所述第二系统平台终端。
[0017] 一种组件数据处理的装置,所述装置包括:
[0018] 第一获取模块,用于获取第一系统平台对应的第一母应用数据包和第二系统平台对应的第二母应用数据包,所述第一母应用数据包包括第一原生组件,所述第二母应用数据包包括与所述第一原生组件具有相同功能的第二原生组件,所述第一原生组件与所述第二原生组件的组件标识相同,所述第一母应用数据包用于发送至第一系统平台终端,所述第二母应用数据包用于发送至第二系统平台终端;
[0019] 第二获取模块,用于获取母应用对应的子应用的组件调用数据,所述组件调用数据包括所述组件标识,所述组件调用数据用于发送至所述第一系统平台终端和所述第二系统平台终端。
[0020] 上述组件数据处理的方法和装置,通过获取第一系统平台对应的第一母应用数据包和第二系统平台对应的第二母应用数据包,第一母应用数据包包括第一原生组件,第二母应用数据包包括与所述第一原生组件具有相同功能的第二原生组件,第一原生组件与所述第二原生组件的组件标识相同,第一母应用数据包用于发送至第一系统平台终端,第二母应用数据包用于发送至第二系统平台终端,获取母应用对应的子应用的组件调用数据,组件调用数据包括所述组件标识,组件调用数据用于发送至所述第一系统平台终端和所述第二系统平台终端,母应用中包括了供子应用调用的原生组件,从而不用每个子应用都重新编写原生组件,节省了存储空间,且由于同一组件标识可标识不同系统平台具有相同的功能的不同原生组件,从而只需要一份组件调用数据就可在不同的系统平台分别调用具有相同功能的不同原生组件,实现组件调用的跨平台,开发人员只需要编写一份组件调用数据,提高了开发的效率。

附图说明

[0021] 图1为一个实施例中组件调用的方法、组件数据处理的方法的应用环境图;
[0022] 图2为一个实施例中图1中第一终端110或第二终端130的内部结构图;
[0023] 图3为一个实施例中图1中服务器120的内部结构图;
[0024] 图4为一个实施例中组件调用的方法的流程图;
[0025] 图5为一个实施例中不同系统平台的终端组件调用的示意图;
[0026] 图6为一个实施例中组件数据处理的方法的流程图;
[0027] 图7为一个实施例中组件调用的装置的结构框图;
[0028] 图8为另一个实施例中组件调用的装置的结构框图;
[0029] 图9为再一个实施例中组件调用的装置的结构框图;
[0030] 图10为一个实施例中组件数据处理的装置的结构框图;
[0031] 图11为一个实施例中第二获取模块的结构框图;
[0032] 图12为另一个实施例中组件数据处理的装置的结构框图;
[0033] 图13为再一个实施例中组件数据处理的装置的结构框图。

具体实施方式

[0034] 图1为一个实施例中组件调用的方法、组件数据处理的方法运行的应用环境图。如图1所示,该应用环境包括第一终端110、服务器120、第二终端130、第三终端140,其中第一终端110、服务器120、第二终端130、第三终端140通过网络进行通信,其中各个终端和服务器的个数不限,服务器120也可为服务器集群。第一终端110、第二终端130和第三终端140,可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。第一终端110、第二终端130、第三终端140可通过网络向服务器120发送请求,服务器120可以响应请求返回对应的数据。
[0035] 其中第一终端110运行第一操作系统,第二终端130运行第二操作系统,第三终端140用于编辑子应用和母应用对应的代码数据,实现第一系统平台对应的第一母应用数据包和第二系统平台对应的第二母应用数据包,以及多个系统平台共用的组件调用数据,并将第一母应用数据包、第二母应用数据包和组件调用数据发送至服务器120,第三终端140可包括多个不同的终端。服务器120接收第一终端110和第二终端130的下载请求,将第一母应用数据包和组件调用数据发送至第一终端110,将第二母应用数据包和组件调用数据发送至第二终端130,第一终端110通过第一通信管道传递组件调用数据至原生层以调用第一母应用数据包中的第一原生组件,第二终端130通过第二通信管道传递组件调用数据至原生层以调用第二母应用数据包中的第二原生组件,达到采用同一组件调用数据可在不同的系统平台调用不同的原生组件,使用一套开发数据将子应用发布到不同的平台,减少终端的资源占用,且简单方便,提高了开发效率。
[0036] 在一个实施例中,图1中的第一终端110或第二终端130的内部结构如图2所示,该第一终端110或第二终端130包括通过系统总线连接的处理器、图形处理单元、存储介质、内存、网络接口、显示屏幕和输入设备。其中,第一终端110或第二终端130的存储介质存储有操作系统,还包括组件调用的装置,该装置用于实现一种适用于终端的组件调用的方法。该处理器用于提供计算和控制能力,支撑整个第一终端110或第二终端130的运行。第一终端110或第二终端130中的图形处理单元用于至少提供显示界面的绘制能力,如在子应用的页面绘制组件等,内存为存储介质中的组件调用的装置的运行提供环境,网络接口用于与服务器120进行网络通信,如向服务器120发送下载请求、接收组件调用数据等。显示屏幕用于显示应用界面等,输入设备用于接收用户输入的命令或数据等。对于带触摸屏的第一终端
110或第二终端130,显示屏幕和输入设备可为触摸屏。图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0037] 在一个实施例中,图1中服务器120的内部结构如图2所示,该服务器120包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器120的存储介质存储有操作系统、数据库和一种组件数据处理的装置,数据库用于存储数据,如母应用数据包、组件调用数据等,该装置用于实现一种适用于服务器120的组件数据处理的方法。该服务器120的处理器用于提供计算和控制能力,支撑整个服务器120的运行。该服务器120的内存为存储介质中的业务测试的装置的运行提供环境。该服务器120的网络接口用于与第一终端
110、第二终端130、第三终端140通过网络连接通信,比如向第一终端110、第二终端130发送组件调用数据等。图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0038] 图4为一个实施例中组件调用的方法的流程图,本实施例主要以该方法应用于上述图1中的第一终端110进行举例说明,该方法具体包括如下步骤:
[0039] 步骤S210,获取子应用对应的组件调用数据,组件调用数据包括组件标识。
[0040] 具体的,子应用是依附于母应用运行的应用程序,可通过母应用下载、启动、运行、关闭子应用。母应用可以是社交应用、专门支持子应用的专用应用、文件管理应用、邮件应用或者游戏应用等。社交应用包括即时通信应用、SNS(Social Network Service,社交网站)应用或者直播应用等。子应用则是可在母应用提供的环境中实现的应用,子应用具体可以是社交应用、文件管理应用、邮件应用或者游戏应用等。子应用可以通过组件调用数据调用母应用的原生组件,从而不用每个子应用都重新编写原生组件,只需要获取组件调用数据就能方便得调用母应用的原生组件。原生组件是指可直接运行于操作系统的采用原生语言编写完成的组件,可通过对母应用的原生组件的选取、配置形成具有绘制了不同组件的子应用中的各个页面,能简单方便的完成子应用的设计和具体实现。在一个实施例中,子应用为多个,则多个子应用可共享母应用的原生组件,进一步减小了子应用的存储空间。组件调用数据是指调用母应用的原生组件所需要的数据,可包括一组标签和组件接口,包括组件标识、组件的属性等,母应用提供统一的标签和组件接口供子应用开发者编写组件调用数据。如一个具体的实施例中,组件调用数据为“”可用于调用组件标识canvas-id为firstCanvas的宽300PX像素,高200PX像素的画布,其中组件标识用于唯一标识一个组件,通过组件标识可在母应用的原生组件中找到对应的目标组件。
[0041] 步骤S220,将组件调用数据通过与当前系统平台对应的通信管道传递至母应用对应的原生层。
[0042] 具体的,由于组件调用数据与原生层往往通过不同的语言实现,为了实现不同语言间的通信,需要通过通信管道进行组件调用数据与原生层之间的交互,通信管道用于将组件调用数据解析为原生层可识别的数据,为组件调用数据提供执行环境。由于原生层只能识别JavaScript语言编写的数据,如果组件调用数据为其它语言数据,则需要先转换为JavaScript脚本语言数据。通信管道可以为自定义的使得组件调用数据与原生层能相互识别进行通信的通信规则,如通信规则中包括了将组件调用数据从其它语言转化为JavaScript语言数据的模块,扩大通信管道对不同语言编写的组件调用数据的适用范围,也可为系统提供的通信管道,不同的操作系统对应的通信管道不同。原生层是指采用原生语言编写的应用程序,原生语言是某一个系统平台,比如iOS或安卓所特有的语言,比如iOS系统平台支持Xcode和Objective-C(扩充C的面向对象编程语言),安卓系统平台支持Eclipse和Java,原生应用程序运行时性能最佳。通信管道在传递组件调用数据时,可先编码转换为预设格式再进行传递,原生层接收到预设格式的组件调用数据可先进行解码得到实际组件调用数据。
[0043] 在一个实施例中,通信管道为系统平台提供的用于规定JavaScript脚本语言数据与原生层进行交互的通信规则。
[0044] 具体的,直接使用系统提供的通信管道,可方便的通过JavaScript脚本语言数据调用原生层提供的功能。只需要将组件调用数据转化为JavaScript脚本语言数据,就可通过通信管道使得原生层识别,不需要自定义通信规则。对于iOS操作系统,系统平台提供的通信管道为javascripCore,对于android安桌操作系统,系统平台提供的通信管道为webview。
[0045] 步骤S230,原生层根据组件调用数据调用母应用中的与当前系统平台对应的第一原生组件,组件标识用于标识第一原生组件和运行于其它系统平台的具备相同功能的第二原生组件。
[0046] 具体的,由于组件调用数据具体描述了需要调用的组件和组件的属性数据,原生层可根据组件标识获取与当前系统平台对应的第一原生组件,并根据组件的属性数据在子应用的页面绘制第一原生组件从而完成对第一原生组件的调用。且组件标识不仅用于标识当前系统平台对应的第一原生组件,还用于标识其它系统平台具备相同功能的第二原生组件,结合图5所示,如第二系统终端通过与当前系统终端相同的组件调用数据,第一系统终端通过第一系统平台对应的第一通信管道传递至第一系统终端的第一母应用对应的第一原生层,第二系统终端通过第二系统平台对应的第二通信管道传递至第二系统终端的第二母应用对应的第二原生层,由于组件调用数据相同,从而可调用第二系统平台对应的与第一原生组件具备相同功能的第二原生组件。可以理解的是,第一母应用和第二母应用可以是实现相同或不同功能的母应用。由于同一组件标识可标识不同系统平台具有相同的功能的不同原生组件,从而只需要一份组件调用数据就可在不同的系统平台分别调用具有相同功能的不同原生组件,使用一份组件调用数据可在不同的系统终端的母应用上运行相同页面具有相同功能的子应用,实现组件调用的跨平台,开发人员只需要编写一份组件调用数据,提高了开发的效率。
[0047] 本实施例中,通过获取子应用对应的组件调用数据,组件调用数据包括组件标识,将组件调用数据通过与当前系统平台对应的通信管道传递至母应用对应的原生层,原生层根据组件调用数据调用母应用中的与当前系统平台对应的第一原生组件,组件标识用于标识第一原生组件和运行于其它系统平台的具备相同功能的第二原生组件,子应用可以通过组件调用数据调用母应用的原生组件,从而不用每个子应用都重新编写原生组件,节省了存储空间,且由于同一组件标识可标识不同系统平台具有相同的功能的不同原生组件,从而只需要一份组件调用数据就可在不同的系统平台分别调用具有相同功能的不同原生组件,实现组件调用的跨平台,开发人员只需要编写一份组件调用数据,提高了开发的效率。
[0048] 在一个实施例中,组件调用数据为通过标签语言对应的初始组件调用数据编译生成的脚本语言数据。
[0049] 具体的,标签语言是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的文字编码,标签语言语法简单,通俗易懂,本实施例中开发人员只需要编写标签语言对应的初始组件调用数据,由置于终端或服务器的编译器将标签语言对应的初始组件调用数据编译生成脚本语言数据。脚本语言是一种编程语言,用来控制软件应用程序,如JavaScript脚本语言。由于母应用对应的原生层只能与脚本语言数据进行通信,保证获取的组件调用数据已经是编译好的脚本语言数据,不需要再获取子应用对应的组件调用数据后再进行编译,进一步提高了组件调用的效率。
[0050] 在一个实施例中,步骤S210之前,还包括:下载与当前系统平台对应的第一母应用数据包,第一母应用数据包中包括第一原生组件,在其它系统平台存在与第一母应用数据包具备相同功能的第二母应用数据包,第二母应用数据包包括所述第二原生组件。
[0051] 具体的,母应用数据包是指支持母应用运行的完整数据,包括供母应用和子应用调用的各种原生组件等。对于不同的操作系统平台,提供了不同版本的母应用数据包,如第一母应用数据包和第二母应用数据包,且第一母应用数据包和第二母应用数据包可实现相同的功能。不同操作系统平台对应的母应用数据包中具有相同标识完成相同功能的在不同平台运行的原生组件。不同操作系统的终端只需要安装与其系统平台对应的母应用数据包就能获得对应的原生组件,原生组件实现了多种功能,包括多媒体功能、表单功能、生活服务类功能等,可供母应用上的子应用进行调用,为子应用的实现提供了强大的功能支持。
[0052] 在一个实施例中,步骤S210之前,还包括:在母应用的页面中下载子应用对应的数据包,所述数据包包括组件调用数据。
[0053] 具体的,子应用对应的数据包是指是指支持子应用运行的完整数据,包括页面配置数据、事件数据等。组件是页面形成的基本单元,页面配置数据中包括了组件调用数据,通过配置不同的组件调用数据在页面上绘制不同的原生组件从而形成不同的页面。可在母应用的页面中提供子应用的下载页面,可提供搜索框供用户搜索感兴趣的子应用,提供子应用的分类搜索与功能摘要说明等信息。组件调用数据可与子应用的页面编码相关联,从而对于不同的子应用页面调用与页面编码匹配的组件,有序的进行组件调用。
[0054] 在一个实施例中,步骤S220包括:与当前系统平台对应的通信管道将组件调用数据序列化为JSON字符串传递至母应用对应的原生层。
[0055] 具体的,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,JSON可以将JavaScript对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串。JSON是JavaScript原生格式,在JavaScript中处理JSON数据不需要任何特殊的API(Application Programming Interface,应用程序编程接口)或工具包,将组件调用数据序列化为JSON字符串便于传递至母应用对应的原生层。
[0056] 步骤S230包括:原生层将JSON字符串反序列化为组件调用信息,根据组件调用信息获取组件调用位置和组件标识,获取组件标识对应的第一原生组件,根据组件调用位置在子应用的页面绘制第一原生组件。
[0057] 具体的,原生层将JSON字符串反序列化后得到组件调用信息,并解析组件调用信息,获取组件调用位置和组件标识,还包括组件属性信息,如显示大小、显示颜色等信息,获取组件标识对应的第一原生组件,根据组件调用位置和组件属性信息在子应用的页面绘制第一原生组件。如果组件调用信息包括多个组件标识,则原生层根据组件标识分别获取对应的多个原生组件,并根据各个原生组件的具体信息在子应用的页面绘制原生组件,各个原生组件构成页面的布局,生成整个子应用的页面。一次性可调用原生组件生成一个子应用页面,也可生成多个子应用页面。
[0058] 在一个实施例中,第一原生组件包括多媒体组件、绘图组件、地图组件中的至少一种。
[0059] 具体的,多媒体组件包括音视频播放组件,用于绘制音视频播放的窗口,并接收音视频数据进行播放,绘图组件可接收绘图数据并将绘图数据通过算法绘制成线条、函数、随时间变化的曲线等。地图组件可绘制地图,并接收位置信息等,用于在地图绘制与位置相关的图标等。多媒体组件、绘图组件、地图组件都由母应用提供,不需要子应用的开发者自行开发,极大得提高了开发效率,减少了开发周期并减少了各个子应用占用终端的存储空间。且母应用提供的各种组件只需要同一份组件调用数据就可在多个不同的系统平台进行调用,进一步提高了便利性。如在一个具体的实施中,母应用为社交软件应用,子应用为股票选择服务应用,子应用的组件调用数据调用母应用中的绘图组件,并接收实时变化的股票数据,将股票曲线绘制在子应用页面。服务器中只需要存储一份股票选择服务应用的组件调用数据就可下发至不同的操作系统终端,在不同的操作系统上完成相同的股票曲线绘制。极大的方便了股票选择服务生成服务页面的便利性,提高了企业构建服务应用的积极性。
[0060] 在一个实施例中,如图6所示,提供了一种组件数据处理的方法,本实施例主要以该方法应用于上述图1中的服务器120进行举例说明,该方法具体包括如下步骤:
[0061] 步骤S310,获取第一系统平台对应的第一母应用数据包和第二系统平台对应的第二母应用数据包,第一母应用数据包包括第一原生组件,第二母应用数据包包括与所述第一原生组件具有相同功能的第二原生组件,第一原生组件与所述第二原生组件的组件标识相同,第一母应用数据包用于发送至第一系统平台终端,第二母应用数据包用于发送至第二系统平台终端。
[0062] 具体的,母应用数据包是指支持母应用运行的完整数据,包括供母应用和子应用调用的各种原生组件等。对于不同的操作系统平台,提供了不同版本的母应用数据包。但不同操作系统平台对应的母应用数据包中具有相同标识完成相同功能的在不同平台运行的原生组件。如第一母应用数据包包括第一原生组件,第二母应用数据包包括与第一原生组件具有相同功能的第二原生组件,第一原生组件与第二原生组件的组件标识相同。第一系统平台终端可从服务器下载第一母应用数据包并安装和运行母应用,第二系统平台终端可从服务器下载第二母应用数据包并安装和运行母应用。可以理解的是,第一母应用数据包与第二应用数据包可为在不同操作系统完成相同功能的应用数据包,也可为在不同操作系统完成不同功能的应用数据包。不同操作系统的终端只需要安装与其系统平台对应的母应用数据包就能获得对应的原生组件,原生组件实现了多种功能,包括多媒体功能、表单功能、生活服务类功能等,可供母应用上的子应用进行调用,为子应用的实现提供了强大的功能支持。服务器可接收由母应用开发终端上传的母应用数据包并保存。
[0063] 步骤S320,获取母应用对应的子应用的组件调用数据,组件调用数据包括组件标识,组件调用数据用于发送至第一系统平台终端和第二系统平台终端。
[0064] 具体的,子应用是依附于母应用运行的应用程序,可通过母应用下载、启动、运行、关闭子应用。子应用可以通过组件调用数据调用母应用的原生组件,从而不用每个子应用都重新编写原生组件,只需要获取组件调用数据就能方便得调用母应用的原生组件。可通过对母应用的原生组件的选取、配置形成具有绘制了不同组件的子应用中的各个页面,能简单方便的完成子应用的设计和具体实现。组件调用数据可以与子应用的应用标识匹配,对于有多个页面的子应用,组件调用数据还可与子应用的页面标识匹配,不同的子应用页面可匹配不同的组件调用数据。第一系统平台终端与第二系统平台终端上,可运行实现不同或相同功能的母应用,运行实现相同或不同功能的子应用,但是可调用相同的组件调用数据在相同或不同的母应用以及子应用上绘制相同的组件。组件调用数据的具体存储形式可根据需要自定义。服务器可接收由各个开发子应用的企业或个人根据子应用的具体实现通过不同的终端上传的组件调用数据。
[0065] 本实施例中,通过获取第一系统平台对应的第一母应用数据包和第二系统平台对应的第二母应用数据包,第一母应用数据包包括第一原生组件,第二母应用数据包包括与所述第一原生组件具有相同功能的第二原生组件,第一原生组件与所述第二原生组件的组件标识相同,第一母应用数据包用于发送至第一系统平台终端,第二母应用数据包用于发送至第二系统平台终端,获取母应用对应的子应用的组件调用数据,组件调用数据包括所述组件标识,组件调用数据用于发送至所述第一系统平台终端和所述第二系统平台终端,母应用中包括了供子应用调用的原生组件,从而不用每个子应用都重新编写原生组件,节省了存储空间,且由于同一组件标识可标识不同系统平台具有相同的功能的不同原生组件,从而只需要一份组件调用数据就可在不同的系统平台分别调用具有相同功能的不同原生组件,实现组件调用的跨平台,开发人员只需要编写一份组件调用数据,提高了开发的效率。
[0066] 在一个实施例中,步骤S320中获取母应用对应的子应用的组件调用数据的步骤包括:接收与子应用对应的通过标签语言编写的初始组件调用数据,将初始组件调用数据编译生成脚本语言数据得到目标组件调用数据。
[0067] 具体的,标签语言是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的文字编码,标签语言语法简单,通俗易懂,本实施例服务器接收开发人员通过标签语言编写的对应的初始组件调用数据,并将标签语言对应的初始组件调用数据编译生成脚本语言数据。脚本语言是一种编程语言,用来控制软件应用程序,如JavaScript脚本语言。由于母应用对应的原生层只能与脚本语言数据进行通信,在服务器上进行编译,保证获取的组件调用数据已经是编译好的脚本语言数据,不需要终端获取子应用对应的组件调用数据后再进行编译,进一步提高了组件调用的效率。
[0068] 在一个实施例中,方法还包括:接收第一系统平台终端发送的第一母应用下载请求,将第一系统平台对应的第一母应用数据包发送至第一系统平台终端,以使第一系统平台终端安装第一母应用数据包以运行第一母应用,和/或接收第二系统平台终端发送的第二母应用下载请求,将第二系统平台对应的第二母应用数据包发送至第二系统平台终端,以使第二系统平台终端安装第二母应用数据包以运行第二母应用。
[0069] 具体的,第一系统平台终端和第二系统平台终端分别安装第一母应用数据包和第二母应用数据包,以完成各个不同的系统平台的原生组件的获取,为子应用的运行提供环境和支持。如果第一母应用数据包和第二母应用数据包完成相同的功能,则运行的第一母应用和第二母应用为运行在不同系统平台完成相同功能的母应用。如果第一母应用数据包和第二母应用数据包完成不同的功能,则也可通过完成不同功能的第一母应用和第二母应用调用完成相同功能的第一原生组件和第二原生组件。
[0070] 在一个实施例中,方法还包括:接收第一系统平台终端发送的组件调用数据下载第一请求,将组件调用数据发送至第一系统平台终端,以使第一系统平台终端将组件调用数据通过第一通信管道传递至第一系统平台终端运行的第一母应用对应的第一原生层,第一原生层根据所述组件调用数据调用所述第一原生组件;和/或接收第二系统平台终端发送的组件调用数据下载第二请求,将组件调用数据发送至所述第二系统平台终端,以使第二系统平台终端将组件调用数据通过第二通信管道传递至第二系统平台终端运行的第二母应用对应的第二原生层,第二原生层根据组件调用数据调用第二原生组件。
[0071] 具体的,当终端需要生成一个新的子应用或生成子应用的一个新的页面时,可向服务器发送组件调用数据下载请求,以下载对应的组件调用数据,以根据组件调用数据调用母应用中的原生组件在页面上显示组件。组件调用数据是指调用母应用的原生组件所需要的数据,可包括一组标签和组件接口,包括组件标识、组件的属性等。如一个具体的实施例中,组件调用数据为“”可用于调用组件标识canvas-id为firstCanvas的宽300PX,高200PX的画布,其中组件标识用于唯一标识一个组件,通过组件标识可在母应用的原生组件中找到对应的目标组件。第一系统平台终端和第二系统平台终端分别获取相同的组件调用数据后,分别通过不同的通信管道传递组件调用数据至不同的原生层,以分别调用实现相同功能的具有相同标识的不同原生组件。
[0072] 通信管道用于组件调用数据与原生层之间进行交互,由于原生层只能识别JavaScript语言编写的数据,如果组件调用数据为其它语言数据,则需要先转换为JS脚本语言数据。不同的操作系统对应的通信管道不同,由系统提供。原生层是指采用原生语言编写的应用程序,原生语言是某一个系统平台,比如iOS或安卓所特有的语言,比如iOS系统平台支持Xcode和Objective-C,安卓系统平台支持Eclipse和Java,原生应用程序运行时性能最佳。通信管道在传递组件调用数据时,可先编码转换为预设格式再进行传递,原生层接收到预设格式的组件调用数据可先进行解码得到实际组件调用数据。
[0073] 由于组件调用数据具体描述了需要调用的组件和组件的属性数据,第一原生层可根据组件标识获取与第一系统平台对应的第一原生组件,第二原生层可根据组件标识获取与第二系统平台对应的第二原生组件,并根据组件的属性数据在第一系统平台终端运行的子应用的页面绘制第一原生组件从而完成对第一原生组件的调用,在第二系统平台终端运行的子应用的页面绘制第二原生组件从而完成对第二原生组件的调用。由于组件标识标识的第一原生组件和第二原生组件具备相同功能,从而只需要一份组件调用数据就可在不同的系统平台分别调用具有相同功能的不同原生组件,使用一份组件调用数据可在不同的系统终端的母应用上运行相同页面具有相同功能的子应用,实现组件调用的跨平台,开发人员只需要编写一份组件调用数据,提高了开发的效率。
[0074] 在一个实施例中,如图7所示,提供了一种组件调用的装置,包括:
[0075] 获取模块410,用于获取子应用对应的组件调用数据,组件调用数据包括组件标识。
[0076] 传递模块420,用于将组件调用数据通过与当前系统平台对应的通信管道传递至母应用对应的原生层。
[0077] 调用模块430,用于原生层根据所述组件调用数据调用母应用中的与当前系统平台对应的第一原生组件,组件标识用于标识第一原生组件和运行于其它系统平台的具备相同功能的第二原生组件。
[0078] 在一个实施例中,组件调用数据为通过标签语言对应的初始组件调用数据编译生成的脚本语言数据。
[0079] 在一个实施例中,如图8所示,装置还包括:
[0080] 第一下载模块440,用于下载与当前系统平台对应的第一母应用数据包,第一母应用数据包中包括所述第一原生组件,在其它系统平台存在与第一母应用数据包具备相同功能的第二母应用数据包,第二母应用数据包包括所述第二原生组件。
[0081] 在一个实施例中,如图9所示,装置还包括:
[0082] 第二下载模块450,用于在母应用的页面中下载子应用对应的数据包,数据包包括组件调用数据。
[0083] 在一个实施例中,传递模块420还用于与当前系统平台对应的通信管道将所述组件调用数据序列化为JSON字符串传递至母应用对应的原生层;
[0084] 调用模块430还用于原生层将所述JSON字符串反序列化为组件调用信息,根据组件调用信息获取组件调用位置和组件标识,获取组件标识对应的第一原生组件,根据组件调用位置在子应用的页面绘制第一原生组件。
[0085] 在一个实施例中,第一原生组件包括多媒体组件、绘图组件、地图组件中的至少一种。
[0086] 在一个实施例中,所述通信管道为系统平台提供的用于规定JavaScript脚本语言数据与原生层进行交互的通信规则。
[0087] 在一个实施例中,如图10所示,提供了一种组件数据处理的装置,包括:
[0088] 第一获取模块510,用于获取第一系统平台对应的第一母应用数据包和第二系统平台对应的第二母应用数据包,第一母应用数据包包括第一原生组件,第二母应用数据包包括与第一原生组件具有相同功能的第二原生组件,第一原生组件与所述第二原生组件的组件标识相同,第一母应用数据包用于发送至第一系统平台终端,第二母应用数据包用于发送至第二系统平台终端。
[0089] 第二获取模块520,用于获取母应用对应的子应用的组件调用数据,组件调用数据包括组件标识,组件调用数据用于发送至第一系统平台终端和第二系统平台终端。
[0090] 在一个实施例中,如图11所示,第二获取模块520包括:
[0091] 组件数据获取单元521,用于接收与所述子应用对应的通过标签语言编写的初始组件调用数据;
[0092] 编译单元522,用于将初始组件调用数据编译生成脚本语言数据得到目标组件调用数据。
[0093] 在一个实施例中,如图12所示,装置还包括:
[0094] 母应用下载响应模块530,用于接收第一系统平台终端发送的第一母应用下载请求,将第一系统平台对应的第一母应用数据包发送至第一系统平台终端,以使所述第一系统平台终端安装第一母应用数据包以运行第一母应用;和/或用于接收第二系统平台终端发送的第二母应用下载请求,将第二系统平台对应的第二母应用数据包发送至第二系统平台终端,以使第二系统平台终端安装第二母应用数据包以运行第二母应用。
[0095] 在一个实施例中,如图13所示,装置还包括:
[0096] 组件调用数据下载响应模块540,用于接收第一系统平台终端发送的组件调用数据下载第一请求,将组件调用数据发送至所述第一系统平台终端,以使第一系统平台终端将组件调用数据通过第一通信管道传递至第一系统平台终端运行的第一母应用对应的第一原生层,第一原生层根据组件调用数据调用所述第一原生组件;和/或用于接收第二系统平台终端发送的组件调用数据下载第二请求,将组件调用数据发送至所述第二系统平台终端,以使第二系统平台终端将组件调用数据通过第二通信管道传递至第二系统平台终端运行的第二母应用对应的第二原生层,第二原生层根据组件调用数据调用第二原生组件。
[0097] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0098] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0099] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。