应用的跨平台实现方法、系统以及插件管理器的制造方法

文档序号:6539004阅读:159来源:国知局
应用的跨平台实现方法、系统以及插件管理器的制造方法
【专利摘要】本发明提出一种应用的跨平台实现方法、系统以及插件管理器,其中,应用的跨平台实现方法包括:接收应用发送的插件访问请求;以及根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结果。本发明实施例的应用的跨平台实现方法,从应用侧获得插件访问请求,根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结果,使得插件可以在不同平台或不同应用下运行,从而使用户在不同平台运行应用时可以获得一致的体验。
【专利说明】应用的跨平台实现方法、系统以及插件管理器
【技术领域】
[0001]本发明涉及互联网【技术领域】,特别涉及一种应用的跨平台实现方法、系统以及插
件管理器。
【背景技术】
[0002]随着移动终端技术的快速发展,移动终端(例如手机等)已非常普及,并且移动终端提供的功能也越来越多。例如,用户可以自由地安装各种用web技术编写的应用(webApp),而在移动终端中安装几十个应用已是非常普遍的情况。但是,应用具有一定局限性,例如,在某个平台上开发的应用只能应用于该平台,其他平台并不支持。
[0003]目前,开发者通过开发JavaApplet (Java语言编写的应用程序)插件,可以在多个不同浏览器上运行,并能够获得一致的体验。
[0004]但是,在实现本发明过程中,发明人发现现有技术中至少存在如下问题:JavaApplet插件体积过大,运行速度慢,并且移动操作系统对Java语言的支持不够,因此只能运行在个人电脑上,无法在移动终端上运行。

【发明内容】

[0005]本发明旨在至少在一定程度上解决上述技术问题。
[0006]为此,本发明的第一个目的在于提出一种应用的跨平台实现方法,该方法能使用户在不同平台运行应用时获得一致的体验。
[0007]为达上述目的,根据本发明第一方面实施例提出了一种应用的跨平台实现方法,包括:接收应用发送的插件访问请求;以及根据所述插件访问请求加载实现所述插件访问请求的插件代码,并向所述应用返回对应的执行结果。
[0008]本发明实施例的应用的跨平台实现方法,从应用侧获得插件访问请求,根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结果,使得插件可以在不同平台或不同应用下运行,从而使用户在不同平台运行应用时可以获得一致的体验。
[0009]本发明第二方面实施例提出了一种插件管理器,包括:接收模块,用于接收应用发送的插件访问请求;以及处理模块,用于根据所述插件访问请求加载实现所述插件访问请求的插件代码,并向所述应用返回对应的执行结果。
[0010]本发明实施例的插件管理器,从应用侧获得插件访问请求,根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结果,使得插件可以在不同平台或不同应用下运行,从而使用户在不同平台运行应用时可以获得一致的体验。
[0011]本发明第三方面实施例提出了一种应用的跨平台实现系统,包括:所述应用以及第二方面实施例的所述插件管理器。
[0012]本发明实施例的应用的跨平台实现系统,从应用侧获得插件访问请求,根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结果,使得插件可以在不同平台或不同应用下运行,从而使用户在不同平台运行应用时可以获得一致的体验。
[0013]本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0014]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0015]图1为根据本发明一个实施例的应用的跨平台实现方法的流程图;
[0016]图2为根据本发明一个实施例的应用的跨平台实现系统的结构示意图;
[0017]图3为根据本发明另一个实施例的应用的跨平台实现方法的流程图;
[0018]图4为根据本发明一个实施例的插件管理器的结构示意图;
[0019]图5为根据本发明另一个实施例的插件管理器的结构示意图;
[0020]图6为根据本发明另一个实施例的应用的跨平台实现系统的结构示意图。
【具体实施方式】
[0021]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0022]下面参考附图描述根据本发明实施例的应用的跨平台实现方法、系统以及插件管理器。
[0023]图1为根据本发明一个实施例的应用的跨平台实现方法的流程图,本发明实施例的应用的跨平台实现方法是基于图2所示的系统完成,该系统包括分开设置的插件管理器100和应用200。
[0024]其中,插件管理器100用于接收应用200发送的插件访问请求,并根据插件访问请求加载实现插件访问请求的插件代码,并向应用200返回对应的执行结果。应用200用于向插件管理器100发送插件访问请求,并接收插件管理器100返回的对应的执行结果。所谓“插件”是指用户基于插件机制提供的API和插件机制支持的语言编写的可执行代码。
[0025]在本发明实施例的应用的跨平台实现系统中,插件管理器100和应用200分别进行设置并运行,两者通过IPC进行通讯。因此,插件管理器100不受到应用200的限制。当应用需要访问插件的功能时,浏览器200通过JS应用程序接口(API)接口接收插件访问请求,然后将插件访问请求转成IPC,并发送至插件管理器100,插件管理器100根据插件访问请求,发送至相应的插件,以使应用200可以访问使用相应的插件功能。
[0026]其中,上述应用200可以为浏览器。
[0027]如图1所示,本发明实施例的应用的跨平台实现方法,该方法从插件管理器侧进行描述,包括以下步骤:
[0028]S101,接收应用发送的插件访问请求。
[0029]在本发明的实施例中,当应用需要访问到插件功能的时候,插件管理器可通过进程间通信(IPC)接口接收应用发送的插件访问请求。其中,插件管理器是一个可运行于多个平台的独立服务。插件管理器的进程与应用的进程是分开独立运行的,两者之间通过IPC接口,使用TCP (Transmission Control Protocol,传输控制协议)进行通讯。
[0030]插件访问请求为应用将JS应用程序接口(API)转换成的通讯协议,其中,JS即Javascript,是一种针对应用的脚本语言。具体地,可以有两种方式:第一种方式通过脚本语言,为不同的应用编写相对应的扩展程序,以使JS应用程序接口 API转换成的通讯协议。第二种方式通过Javascript插件将JS应用程序接口 API转换成的通讯协议。
[0031]S102,根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结果。
[0032]在本发明的实施例中,插件管理器可以从预先创建的进程中获取一个空闲进程,通过空闲进程根据插件访问请求加载实现插件访问请求的插件代码,也可以通过新创建的进程根据插件访问请求加载实现插件访问请求的插件代码。
[0033]插件管理器与应用的通讯协议是应用层协议,可以对协议进行自定义,也可以直接采用HTTP (Hypertext transfer protocol,超文本转移协议)协议。本实施例中使用HTTP协议,并不进行限定。
[0034]插件管理器负责管理所有应用的插件,并存储在本地目录中。在接收到应用发送的插件访问请求后,通过进程管理算法,获取一个空闲进程。该空闲进程可以是一个Webkit实例,根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结
果O
[0035]本发明实施例的应用的跨平台实现方法,从应用侧获得插件访问请求,根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结果,使得插件可以在不同平台或不同应用下运行,从而使用户在不同平台运行应用时可以获得一致的体验。
[0036]图3为根据本发明另一个实施例的应用的跨平台实现方法的流程图,该实施例以浏览器为例进行描述。
[0037]如图3所示,本发明实施例的应用的跨平台实现方法,包括:
[0038]S301,将使用浏览器所基于的操作系统提供的语言编写的API转变成JSAPI。
[0039]在本发明的实施例中,插件管理器通过Webkit的扩展功能,将浏览器所基于的操作系统提供的语言即本地语言(例如:C语言、Java语言)编写的API,转变成JS API,使得基于JS编写的插件功能更加丰富强大,能够灵活应用。
[0040]S302,建立包含资源和权限对应关系的权限树,确定当前插件访问的资源所对应的权限大于预设等级时,弹出提示信息。
[0041]在本发明的实施例中,插件管理器可能会访问到本地权限,因此可建立包含资源和权限对应关系的权限树,确定当前插件访问的资源所对应的权限大于预设等级时,弹出提示信息。其中,预设等级为预先设定。例如:在运行在手机上时,可能会访问到手机通讯录,因此在访问到敏感信息的时候,需要弹出提示信息,经过用户确认后才可以获得继续使用的权限。
[0042]S303,接收浏览器发送的插件访问请求。
[0043]在本发明的实施例中,当应用需要访问到插件功能的时候,插件管理器可通过进程间通信(IPC)接口接收浏览器发送的插件访问请求。其中,插件管理器是一个可运行于多个平台的独立服务。插件管理器的进程与浏览器的进程是分开独立运行的,两者之间通过IPC接口,使用TCP (Transmission Control Protocol,传输控制协议)进行通讯。
[0044]插件访问请求为浏览器将JS应用程序接口(API)转换成的通讯协议,其中,JS即Javascript,是一种针对浏览器的脚本语言。具体地,可以有两种方式:第一种方式通过脚本语言,为不同的浏览器编写相对应的扩展程序,以使JS应用程序接口 API转换成的通讯协议。第二种方式通过Javascript插件将JS应用程序接口 API转换成的通讯协议。
[0045]S304,根据插件访问请求加载实现插件访问请求的插件代码,并向浏览器返回对应的执行结果。
[0046]在本发明的实施例中,插件管理器可以从预先创建的进程中获取一个空闲进程,通过空闲进程根据插件访问请求加载实现插件访问请求的插件代码,也可以通过新创建的进程根据插件访问请求加载实现插件访问请求的插件代码。
[0047]插件管理器与浏览器的通讯协议是应用层协议,可以对协议进行自定义,也可以直接采用HTTP (Hypertext transfer protocol,超文本转移协议)协议。本实施例中使用HTTP协议,并不进行限定。
[0048]插件管理器负责管理所有应用的插件,并存储在本地目录中。在接收到浏览器发送的插件访问请求后,通过进程管理算法,获取一个空闲进程。该空闲进程是一个Webkit(开源浏览器引擎)实例,根据插件访问请求加载实现插件访问请求的插件代码,并向浏览器返回对应的执行结果。
[0049]本发明实施例的应用的跨平台实现方法,通过将使用浏览器所基于的操作系统提供的语言编写的API转变成JS API,使得基于JS编写的插件功能更加丰富强大,能够灵活应用;通过建立包含资源和权限对应关系的权限树,确定当前插件访问的资源所对应的权限大于预设等级时,弹出提示信息,增加了访问插件的安全性。
[0050]为了实现上述实施例,本发明还提出一种插件管理器。
[0051]图4为根据本发明一个实施例的插件管理器。
[0052]如图4所示,本发明实施例的插件管理器包括:接收模块110以及处理模块120。
[0053]具体地,接收模块110用于接收应用发送的插件访问请求。该应用可以为浏览器。
[0054]在本发明的实施例中,当应用需要访问到插件功能的时候,接收模块110可通过进程间通信(IPC)接口接收应用发送的插件访问请求。具体地,插件管理器是一个可运行于多个平台的独立服务。插件管理器的进程与应用的进程是分开独立运行的,两者之间通过IPC接口,使用TCP (Transmission Control Protocol,传输控制协议)进行通讯。
[0055]插件访问请求为应用将JS应用程序接口(API)转换成的通讯协议,其中,JS即Javascript,是一种针对应用例如浏览器的脚本语言。具体地,可以有两种方式:第一种方式通过脚本语言,为不同的应用编写相对应的扩展程序,以使JS应用程序接口 API转换成的通讯协议。第二种方式通过Javascript插件将JS应用程序接口 API转换成的通讯协议。
[0056]处理模块120用于根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结果。
[0057]在本发明的实施例中,处理模块120可以从预先创建的进程中获取一个空闲进程,通过空闲进程根据插件访问请求加载实现插件访问请求的插件代码,也可以通过新创建的进程根据插件访问请求加载实现插件访问请求的插件代码。[0058]插件管理器与应用的通讯协议是应用层协议,可以对协议进行自定义,也可以直接采用HTTP (Hypertext transfer protocol,超文本转移协议)协议。本实施例中使用HTTP协议,并不进行限定。
[0059]处理模块120负责管理所有应用的插件,并存储在本地目录中。在接收到应用发送的插件访问请求后,通过进程管理算法,获取一个空闲进程。该空闲进程是一个Webkit实例,根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结
果O
[0060]本发明实施例的插件管理器,从应用侧获得插件访问请求,根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结果,使得插件可以在不同平台不同应用下运行,从而使用户在不同平台运行应用时可以获得一致的体验。
[0061]图5为根据本发明另一个实施例的插件管理器的结构示意图。
[0062]如图5所示,本发明实施例的插件管理器包括:接收模块110、处理模块120、转换模块130以及权限管理模块140。
[0063]转换模块130用于在接收模块接收应用例如浏览器发送的插件访问请求之前,将使用应用所基于的操作系统提供的语言编写的API转变成JS API。
[0064]在本发明的实施例中,转换模块130通过Webkit的扩展功能,将应用所基于的操作系统提供的语言即本地语言(例如:C语言、Java语言)编写的API,转变成JS API,使得基于JS编写的插件功能更加丰富强大,能够灵活应用。
[0065]权限管理模块140用于在转换模块130将使用应用所基于的操作系统提供的语言编写的API转变成JS API之后,建立包含资源和权限对应关系的权限树,确定当前插件访问的资源所对应的权限大于预设等级时,弹出提示信息。
[0066]在本发明的实施例中,插件管理器可能会访问到本地权限,因此权限管理模块140可建立包含资源和权限对应关系的权限树,确定当前插件访问的资源所对应的权限大于预设等级时,弹出提示信息。其中,预设等级为预先设定。例如:在运行在手机上时,可能会访问到手机通讯录,因此在访问到敏感信息的时候,需要弹出提示信息,经过用户确认后才可以获得继续使用的权限。
[0067]本发明实施例的插件管理器,通过将使用应用所基于的操作系统提供的语言编写的API转变成JS API,使得基于JS编写的插件功能更加丰富强大,能够灵活应用;通过建立包含资源和权限对应关系的权限树,确定当前插件访问的资源所对应的权限大于预设等级时,弹出提示信息,增加了访问插件的安全性。
[0068]为了实现上述实施例,本发明还提出一种应用的跨平台实现系统。
[0069]图6为根据本发明另一个实施例的应用的跨平台实现系统的结构示意图。
[0070]如图6所示,本发明实施例的应用的跨平台实现系统包括:插件管理器100和应用200。
[0071]本发明实施例的应用的跨平台实现系统与图2所示的系统结构一致,且功能相同,在此不赘述。
[0072]该应用200可以为浏览器。
[0073]本发明实施例的应用的跨平台实现系统,从应用侧获得插件访问请求,根据插件访问请求加载实现插件访问请求的插件代码,并向应用返回对应的执行结果,使得插件可以在不同平台或不同应用下运行,从而使用户在不同平台运行应用时可以获得一致的体验。
[0074]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0075]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(R0M),可擦除可编辑只读存储器(EPR0M或闪速存储器),光纤装置,以及便携式光盘只读存储器(⑶ROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
[0076]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0077]本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0078]此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0079]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0080]尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。
【权利要求】
1.一种应用的跨平台实现方法,其特征在于,所述方法包括: 接收应用发送的插件访问请求;以及 根据所述插件访问请求加载实现所述插件访问请求的插件代码,并向所述应用返回对应的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述接收应用发送的插件访问请求包括: 通过进程间通信IPC接口接收应用发送的插件访问请求。
3.根据权利要求1所述的方法,其特征在于,所述根据所述插件访问请求加载实现所述插件访问请求的插件代码包括: 从预先创建的进程中获取一个空闲进程,通过所述空闲进程根据所述插件访问请求加载实现所述插件访问请求的插件代码;或者 通过新创建的进程根据所述插件访问请求加载实现所述插件访问请求的插件代码。
4.根据权利要求1所述的方法,其特征在于,所述插件访问请求为所述应用通过插件将脚本语言JS应用程序接口 API转换成的通讯协议。
5.根据权利要 求4所述的方法,其特征在于,在所述接收应用发送的插件访问请求之前,所述方法还包括: 将使用所述应用所基于的操作系统提供的语言编写的API转变成所述JSAPI。
6.根据权利要求5所述的方法,其特征在于,在所述将使用所述应用所基于的操作系统提供的语言编写的API转变成所述JS API之后,所述方法还包括: 建立包含资源和权限对应关系的权限树,确定当前插件访问的资源所对应的权限大于预设等级时,弹出提示信息。
7.一种插件管理器其特征在于,所述插件管理器包括: 接收模块,用于接收应用发送的插件访问请求;以及 处理模块,用于根据所述插件访问请求加载实现所述插件访问请求的插件代码,并向所述应用返回对应的执行结果。
8.根据权利要求7所述的插件管理器,其特征在于,所述接收模块,具体用于: 通过进程间通信IPC接口接收应用发送的插件访问请求。
9.根据权利要求7所述的插件管理器,其特征在于,所述处理模块,具体用于: 从预先创建的进程中获取一个空闲进程,通过所述空闲进程根据所述插件访问请求加载实现所述插件访问请求的插件代码;或者 通过新创建的进程根据所述插件访问请求加载实现所述插件访问请求的插件代码。
10.根据权利要求7所述的插件管理器,其特征在于,所述插件访问请求为所述应用通过插件将脚本语言JS应用程序接口 API转换成的通讯协议。
11.根据权利要求10所述的插件管理器,其特征在于,所述装置还包括: 转换模块,用于在所述接收模块接收应用发送的插件访问请求之前,将使用所述应用所基于的操作系统提供的语言编写的API转变成所述JS API。
12.根据权利要求11所述的插件管理器,其特征在于,所述装置还包括: 权限管理模块,用于在所述转换模块将使用所述应用所基于的操作系统提供的语言编写的API转变成JS API之后,建立包含资源和权限对应关系的权限树,确定当前插件访问的资源所对应的权限大于预设等级时,弹出提示信息。
13.一种应用的跨平台实现系统,其特征在于,包括:应用以及如权利要求7-12任一权利要求所述的插件管理器,其中: 所述应用,用于向所述插件管理器发送插件访问请求,并接收所述插件管理器返回的对应的执行 结果。
【文档编号】G06F9/445GK103823697SQ201410069281
【公开日】2014年5月28日 申请日期:2014年2月27日 优先权日:2014年2月27日
【发明者】肖伟, 柳俊中 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1