一种混合型应用客户端的资源调用方法、客户端及系统的制作方法

文档序号:6499264阅读:147来源:国知局
一种混合型应用客户端的资源调用方法、客户端及系统的制作方法
【专利摘要】本申请公开了一种HybridApp客户端的资源调用方法、客户端及系统,用以解决现有技术中加载网页时容易出错的问题。该方法客户端接收服务端发送的包含有需调用的资源的地址的页面数据,解析页面数据并生成资源调用请求,根据该客户端本地的保本信息修改该资源调用请求,根据修改后的资源调用请求获取资源。通过上述方法,当客户端与服务端的版本不同时,可在不修改页面数据的条件下提供正常的服务,从而可以保证后续正常的加载网页。
【专利说明】一种混合型应用客户端的资源调用方法、客户端及系统
【技术领域】
[0001]本申请涉及互联网【技术领域】,尤其涉及一种混合型应用客户端的资源调用方法、客户端及系统。
【背景技术】
[0002]目前,HybridApp (混合型应用)客户端由于其兼具了本地化应用(NativeApp)客户端和基于网页的应用(WebApp)客户端的优势而被广泛的应用在移动终端中。HybridApp客户端虽然看上去是一个NativeApp客户端,但其访问的实际上是一个网页。
[0003]图1为现有技术中HybridApp客户端在为用户提供服务的过程,具体包括以下步骤:
[0004]SlOl:HybridApp客户端根据预定的统一资源定位符(URL),向服务端发送携带该URL 的超文本传输协议(Hyper Text Transport Protocol, HTTP)请求。
[0005]即,HybridApp客户端访问预定的该URL对应的页面。
[0006]S102:服务端向HybridApp客户端返回超文本标记语言(Hyper Text MarkupLanguage, HTML)代码。
[0007]该HTML代码具体可以是HTML5代码。
[0008]S103 =HybridApp客户端解析该HTML代码,确定该HTML代码所要调用的javascript 或级联样式表(Cascading Style Sheet, CSS)。
[0009]其中,该HTML代码中包含所要调用的javascript标识或者CSS标识,用于标识所要调用的javascript或者CSS。
[0010]S104:HybridApp客户端向服务端获取所要调用的javascript或CSS。
[0011]S105:HybridApp客户端通过获取的javascript或CSS调用客户端本地的应用程序编程接口(Application Programming Interface, API)。
[0012]S106 =HybridApp客户端通过调用的API启动自身所在的移动终端的相应功能。
[0013]由于单纯的一个javascript或CSS是不能启用移动终端的功能的,需要由HybridApp客户端本地保存的API来启用,因此,HybridApp客户端要启用自身所在的移动终端的相应功能,必须要基于HTML代码获取javascript或CSS,再通过获取到的javascript或CSS调用本地的API来启用移动终端的功能。
[0014]例如,HybridApp客户端提供了一个摄像头拍照功能,服务端中保存的javascript 为 photoV2.0.js, HybridApp 客户端中保存的 API 为 photoV2.0.jar。则Hybr i dApp客户端先访问服务端的页面,确定服务端返回的HTML5代码所要调用的javascript 为photoV2.0.js,向服务端获取photoV2.0.js,并通过photoV2.0.js调用自身的photoV2.0.jar来启用该HybridApp客户端所在的移动终端的摄像头。
[0015]可见,HybridApp客户端可以提供正常服务的前提是:该HybridApp客户端的版本与服务端的版本一致。如果HybridApp客户端的版本与服务端的版本不一致,HybridApp客户端就不能正常提供服务。[0016]例如,HybridApp客户端提供了一个摄像头拍照功能,HybridApp客户端的版本为V1.0,则HybridApp客户端中保存的API为photoVl.0.jar(HybridApp客户端中保存的API的版本与该HybridApp客户端自身的版本一致)。如果服务端的版本为V2.0,则服务端中保存的javascript为photoV2.0.js。那么,服务端向HybridApp客户端返回的HTML5代码所要调用的 javascript 就是 photoV2.0.js。HybridApp 客户端获取到 photoV2.0.js 后,由于 photoV2.0.js 只能调用版本同样为 V2.0 的 API (即 photoV2.0.jar),而 HybridApp客户端中保存的是版本为V1.0的API (即photoVl.0.jar),因此HybridApp客户端通过photoV2.0.js调用不到版本匹配的API,从而不能正常提供该摄像头拍照功能。
[0017]由于并不是每个用户都会及时的更新自身移动终端上安装的HybridApp客户端的版本,因此,为了解决上述HybridApp客户端与服务端版本不同时,HybridApp客户端不能正常提供服务的问题,在现有技术中,HybridApp客户端将可以调用自身当前版本下的所有API的javascript或CSS (以下将javascript和CSS合称为前端资源)保存在本地,当HybridApp客户端接收到服务端返回的HTML代码时,如果确定该HTML代码所要调用的前端资源的版本与该HybridApp客户端本地的版本不一致,则采用本地保存的版本的前端资源的标识替换HTML代码中所要调用的前端资源的标识,并解析替换了前端资源的标识后的HTML代码,调用替换后的前端资源以完成相应功能。
[0018]例如,HybridApp客户端提供了一个摄像头拍照功能,HybridApp客户端的版本为V1.0,则HybridApp客户端中保存的API为photoVl.0.jar,并且,该HybridApp客户端中保存了可以调用photoVl.0.jar的前端资源(javascript) photoVl.0.js。服务端的版本为V2.0,服务端中保存的 javascript 为 photoV2.0.js。
[0019]贝U,服务端向HybridApp客户端返回的HTML代码所要调用的javascript为photoV2.0.js。HybridApp客户端确定该HTML代码中包含的javascript标识为photoV2.0.j s的标识时,采用本地保存的对应于该photoV2.0.j s、但版本不同的photoVl.0.js的标识替换该HTML代码中的photoV2.0.js的标识,再解析HTML代码,根据替换后的标识(photoVl.0.js的标识)调用本地保存的photoVl.0.js,而不从服务端中获取photoV2.0.js。最后,HybridApp客户端通过photoVl.0.js调用本地保存的photoVl.0.jar,以启用移动终端的摄像头功能。
[0020]然而,在现有技术的上述方法中,由于HybridApp客户端需要采用自身保存的photoVl.0.js的标识来替换服务端返回的HTML代码中的photoV2.0.js的标识,因此,这就必然会破坏该HTML代码的原始结构,尤其是当该HTML代码为HTML5代码时,还会使HTML5代码中自身的AppCache功能失效,这就会导致后续基于HTML代码加载网页时容易出现错误。

【发明内容】

[0021]本申请实施例提供一种混合型应用客户端的资源调用方法、客户端及系统,用以解决现有技术中加载网页时容易出错的问题。
[0022]本申请实施例提供的一种混合型应用客户端的资源调用方法,包括:
[0023]向服务端发送页面请求消息;
[0024]接收服务端根据所述页面请求消息返回的页面数据;[0025]解析所述页面数据,获取需要调用的资源的地址,生成资源调用请求;
[0026]获取客户端本地的版本信息,根据客户端本地的版本信息修改所述资源调用请求;
[0027]根据修改后的资源调用请求获取资源。
[0028]本申请实施例提供的一种混合型应用客户端,包括:浏览器插件及内置模块;
[0029]所述浏览器插件,用于向服务端发送页面请求消息,接收服务端根据所述页面请求消息返回的页面数据,解析所述页面数据,获取需要调用的资源的地址,生成资源调用请求;
[0030]所述内置模块包括监听单元、解析单元及资源读取单元;
[0031]所述监听单元,用于监听所述浏览器插件发送的资源调用请求;
[0032]所述解析单元,用于获取客户端本地的版本信息,根据客户端本地的版本信息修改所述监听单元监听到的所述资源调用请求;
[0033]所述资源读取单元,用于根据修改后的资源调用请求获取资源,并将获取到的资源返回给所述浏览器插件。
[0034]本申请实施例提供的一种混合型应用系统,包括:
[0035]服务端,用于接收客户端发送的页面请求消息,根据所述页面请求消息,向所述客户端返回页面数据;
[0036]客户端,用于接收服务端返回的页面数据,解析所述页面数据,获取需要调用的资源的地址,生成资源调用请求;获取所述客户端本地的版本信息,根据客户端本地的版本信息修改接收到的所述资源调用请求,根据修改后的资源调用请求获取资源。
[0037]本申请实施例提供一种混合型应用客户端的资源调用方法、客户端及系统,该方法客户端接收服务端发送的包含有需调用的资源的地址的页面数据,解析页面数据并生成资源调用请求,根据该客户端本地的保本信息修改该资源调用请求,根据修改后的资源调用请求获取资源。通过上述方法,当客户端与服务端的版本不同时,可在不修改页面数据的条件下提供正常的服务,从而可以保证后续正常的加载网页。
【专利附图】

【附图说明】
[0038]图1为现有技术中HybridApp客户端在为用户提供服务的过程;
[0039]图2为本申请实施例提供的客户端与服务端的交互过程;
[0040]图3为本申请实施例提供的第二客户端向第一客户端发送注册信息的示意图;
[0041]图4为本申请实施例提供的第一客户端的内置模块未启用时,第二客户端启用自身的内置模块的示意图;
[0042]图5为本申请实施例提供的HybridApp客户端结构示意图;
[0043]图6为本申请实施例提供的资源调用系统结构示意图。
【具体实施方式】
[0044]本申请实施例服务端向客户端发送的页面数据中包含需调用的资源的地址,解析页面数据并生成资源调用请求,根据该客户端本地的版本信息修改该资源调用请求,根据修改后的资源调用请求获取资源,实现了当客户端与服务端的版本不一致时,客户端可在不修改页面数据的条件下正常提供服务,保证后续可以正常的基于页面数据加载网页。
[0045]下面结合说明书附图对本申请实施例进行详细描述。
[0046]图2为本申请实施例提供的客户端与服务端的交互过程,具体包括以下步骤:
[0047]S201:向服务端发送页面请求消息。
[0048]本申请实施例中所述的客户端为混合型应用(HybridApp)客户端。当客户端提供服务时,客户端中的浏览器插件先根据预设的URL,向服务端发送页面请求消息,用于向服务端请求获取该URL对应的网页。其中,所述服务端为网络服务端。该页面请求消息可以是HTTP请求消息。
[0049]S202:接收服务端根据该页面请求消息返回的页面数据。
[0050]服务端接收到该页面请求消息后,则根据该页面请求消息中携带的URL,向客户端返回该URL对应的网页的页面数据。
[0051]其中,为实现页面特定的功能,该页面数据中包含所要调用的资源的相关信息,如该资源的地址。该资源的地址可以是该客户端本地的地址。该资源包括用于执行特定的本地功能(比如,拍照、语音功能等)所需的依赖资源,即前端资源。
[0052]在本申请实施例中,该地址中包含资源名称以及版本占位符。
[0053]具体的,服务端返回的页面数据为HTML代码。该HTML代码中包含的地址可以是SRC路径,该HTML代码可 以是HTML5代码。
[0054]例如,服务端可以根据预先设定的协议返回HTML代码,返回的HTML代码的格式如下:
[0055]
【权利要求】
1.一种混合型应用客户端的资源调用方法,其特征在于,包括: 向服务端发送页面请求消息; 接收服务端根据所述页面请求消息返回的页面数据; 解析所述页面数据,获取需要调用的资源的地址,生成资源调用请求; 获取客户端本地的版本信息,根据客户端本地的版本信息修改所述资源调用请求; 根据修改后的资 源调用请求获取资源。
2.如权利要求1所述的方法,其特征在于,所述页面数据为超文本标记语言HTML代码,所述HTML代码中包含需要调用的资源的地址。
3.如权利要求1所述的方法,其特征在于,所述地址中包含需要调用的资源的名称及版本占位符,版本占位符标识所述资源为限制性资源。
4.如权利要求3所述的方法,其特征在于,根据本地的版本信息修改所述资源调用请求,具体包括:对所述资源调用请求进行监听; 判断所述资源调用请求中是否包含版本占位符,当所述资源调用请求包含版本占位符时,将版本占位符替换为客户端本地的版本信息。
5.如权利要求1所述的方法,其特征在于,根据修改后的资源调用请求获取资源,具体包括: 基于修改后的资源调用请求包含的资源的名称及版本信息,从所述客户端本地获取相应的资源; 当所述客户端本地未保存相应的资源时,从所述服务端中获取相应的资源,并将获取到的资源保存在本地。
6.如权利要求4所述的方法,其特征在于,所述客户端包括第一客户端及第二客户端;所述方法还包括: 所述第一客户端接收第二客户端发送的注册信息,保存所述注册信息中携带的所述第二客户端当前的版本信息; 当接收到所述第二客户端发送的资源调用请求时,所述第一客户端将所述资源调用请求中携带的地址中包含的版本占位符修改为保存的所述第二客户端当前的版本信息,根据修改后的资源调用请求中携带的地址,获取相应的资源,并将获取到的资源返回给所述第二客户端。
7.一种混合型应用客户端,其特征在于,包括:浏览器插件及内置模块; 所述浏览器插件,用于向服务端发送页面请求消息,接收服务端根据所述页面请求消息返回的页面数据,解析所述页面数据,获取需要调用的资源的地址,生成资源调用请求;所述内置模块包括监听单元、解析单元及资源读取单元; 所述监听单元,用于监听所述浏览器插件生成的资源调用请求; 所述解析单元,用于获取客户端本地的版本信息,根据客户端本地的版本信息修改所述监听单元监听到的所述资源调用请求; 所述资源读取单元,用于根据修改后的资源调用请求获取资源,并将获取到的资源返回给所述浏览器插件。
8.如权利要求7所述的客户端,其特征在于,所述页面数据为超文本标记语言HTML代码,所述HTML代码中包含需要调用的资源的地址。
9.如权利要求7所述的客户端,其特征在于,所述地址中包含需要调用的资源的名称及版本占位符,版本占位符标识所述资源为限制性资源;所述解析单元判断所述监听单元监听到的资源调用请求中是否包含版本占位符,当该资源调用请求包含版本占位符时,采用客户端本地的版本信息替换该版本占位符。
10.如权利要求9所述的客户端,其特征在于,所述资源读取单元具体用于,基于修改后的资源调用请求包含的资源的名称及版本信息,从本地获取相应的资源,当本地未保存相应的资源时,从所述服务端中获取相应的资源,并将获取到的资源保存在本地。
11.一种资源调用系统,其特征在于,包括: 服务端,用于接收客户端发送的页面请求消息,根据所述页面请求消息,向所述客户端返回页面数据; 客户端,用于接收服务端返回的页面数据,解析所述页面数据,获取需要调用的资源的地址,生成资源调用请求;获取所述客户端本地的版本信息,根据客户端本地的版本信息修改接收到的所述资源调 用请求,根据修改后的资源调用请求获取资源。
【文档编号】G06F17/30GK103942225SQ201310024460
【公开日】2014年7月23日 申请日期:2013年1月23日 优先权日:2013年1月23日
【发明者】曲子深 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1