一种实现web页面与本地应用通信的方法及系统与流程

文档序号:12694612阅读:302来源:国知局
一种实现web页面与本地应用通信的方法及系统与流程

本申请涉及通信技术领域,尤其是涉及一种实现web页面与本地应用通信的方法及系统。



背景技术:

一般的,新开发的应用(application,简称app)往往需要进行网络推广,其推广形式一般是在web页面中部署一张推广图片(比如Banner图片亦或一张二维码),然后直接给推广图片加了一个带有下载提示(一种操作提示)的链接,当用户点击Banner或扫描二维码,弹出带有下载提示的链接。对于已经安装了该应用的用户来说,这种下载提示给用户带来的体验显然较差。然而,由于目前web页面与本地应用之间一般是无法进行通信的,因此,浏览器无法根据用户终端实际的应用安装情况,来个性化调整用户所请求的web页面中的应用的操作提示(比如用户终端请求的web页面中的应用是用户终端上已安装的版本,则可将web页面中该应用的操作提示由“下载”调整为“已安装”后展示给用户),这样,当前的应用便无法提高用户体验。



技术实现要素:

本申请实施例的目的在于提供一种实现web页面与本地应用通信的方法及系统,以提高用户体验。

为实现上述目的,本申请实施例提供了一种实现web页面与本地应用通信的方法,所述方法包括:接收web服务端基于用户发起的web页面访问请求所返回的第一响应信息;当所述第一响应信息中含有应用的配置信息时,从注册端口集中选取一个端口号,并向本地服务端发起携带所述端口号的访问请求;其中,所述配置信息包括应用的标识、下载链接及版本信息中的至少一种;当收到所述本地服务端返回的第二响应信息时,判断所述第二响应信息中的本地应用与所述第一响应信息中的应用是否为相同应用;如果为相同应用,通过所述本地应用生成web页面中的数据;如果不是相同应用,向所述第一响应信息中应用的后台服务器发起数据访问请求。

进一步地,通过所述本地应用生成web页面中的数据包括:将web页面中生成的字符串存储于预设队列中,所述字符串按照预设格式进行编写并且所述字符串中包括指向本地应用的操作指令和与所述操作指令相绑定的回调函数;所述本地应用从所述预设队列中读取所述字符串;所述本地应用执行所述字符串中的操作指令并将执行得到的数据通过与所述操作指令相绑定的回调函数反馈至所述web页面处。

进一步地,所述本地应用从所述预设队列中读取所述字符串包括:通过在所述web页面中执行的预设脚本,所述本地应用从所述预设队列中读取所述操作指令。

进一步地,所述预设脚本通过目标接口指令执行,所述目标接口指令按照下述方式确定:确定用于执行所述预设脚本的通用接口指令;从预设接口指令集中确定所述通用接口指令对应的接口指令子集;从所述接口指令子集中提取与所述本地应用的当前版本相匹配的目标接口指令。

进一步地,所述预设接口指令集按照下述方式确定:获取预设数量的目标接口指令集,各个所述目标接口指令集分别与所述本地应用的不同版本相对应,各个所述目标接口指令集中均包括至少一个目标接口指令;将各个所述目标接口指令集中属于同一类型的目标接口指令划分于同一接口指令子集中,并为各个所述接口指令子集分配对应的通用接口指令;将各个所述接口指令子集的集合确定为所述预设接口指令集。

进一步地,在所述本地应用从所述预设队列中读取所述字符串之后,所述方法还包括:将读取的所述字符串从所述预设队列中清除;或者为读取的所述字符串添加表征已处理的标识。

进一步地,所述本地应用从所述预设队列中读取所述字符串包括:所述本地应用按照预设时间周期从所述预设队列中读取所述字符串。

为实现上述目的,本申请另一方面还提供一种实现web页面与本地应用通信的系统,所述系统包括:第一响应信息接收单元,用于接收web服务端基于用户发起的web页面访问请求所返回的第一响应信息;端口选取单元,用于当所述第一响应信息中含有应用的配置信息时,从注册端口集中选取一个端口号,并向本地服务端发起携带所述端口号的访问请求;其中,所述配置信息包括应用的标识、下载链接及版本信息中的至少一种;判断单元,用于当收到所述本地服务端返回的第二响应信息时,判断所述第二响应信息中的本地应用与所述第一响应信息中的应用是否为相同应用;数据生成单元,用于如果为相同应用,通过所述本地应用生成web页面中的数据;如果不是相同应用,向所述第一响应信息中应用的后台服务器发起数据访问请求。

进一步地,所述数据生成单元包括:字符串存储模块,用于将web页面中生成的字符串存储于预设队列中,所述字符串按照预设格式进行编写并且所述字符串中包括指向本地应用的操作指令和与所述操作指令相绑定的回调函数;字符串读取模块,用于从所述预设队列中读取所述字符串;执行模块,用于执行所述字符串中的操作指令并将执行得到的数据通过与所述操作指令相绑定的回调函数反馈至所述web页面处。

进一步地,所述字符串读取模块包括:脚本执行模块,用于通过在所述web页面中执行的预设脚本,从所述预设队列中读取所述操作指令。

本申请实施例中,本地应用在接收到web服务端基于用户发起的web页面访问请求所返回的第一响应信息,且第一响应信息中含有应用的标识、下载链接及版本信息时,浏览器客户端可从注册端口集中选取一个端口号,并向本地终端上的本地服务端发起携带有该端口号的访问请求,以获得本地应用的数据;如果收到的所述本地服务端返回的第二响应信息中的本地应用与第一响应信息中的应用是相同的应用,从而可以通过所述本地应用生成web页面中的数据,从而实现了web页面与本地应用之间的通信,进而使得浏览器客户端可根据用户终端实际的应用安装情况,来个性化调整用户所请求的web页面中各应用的下载链接的操作提示,因而提高了用户体验。

附图说明

此处所说明的附图用来提供对本申请实施例的进一步理解,构成本申请实施例的一部分,并不构成对本申请实施例的限定。在附图中:

图1为本申请一实施例的实现web页面与本地应用通信的方法流程图;

图2为本申请另一实施例的实现web页面与本地应用通信的系统功能模块图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本申请实施例做进一步详细说明。在此,本申请实施例的示意性实施例及其说明用于解释本申请实施例,但并不作为对本申请实施例的限定。

下面结合附图,对本申请实施例的具体实施方式作进一步的详细说明。

参考图1所示,本申请实施例的web页面与本地应用通信的方法包括以下步骤。

步骤S1:接收web服务端基于用户发起的web页面访问请求所返回的第一响应信息;

步骤S2:当所述第一响应信息中含有应用的配置信息时,从注册端口集中选取一个端口号,并向本地服务端发起携带所述端口号的访问请求;其中,所述配置信息包括应用的标识、下载链接及版本信息中的至少一种;

步骤S3:当收到所述本地服务端返回的第二响应信息时,判断所述第二响应信息中的本地应用与所述第一响应信息中的应用是否为相同应用;

步骤S4:如果为相同应用,通过所述本地应用生成web页面中的数据;如果不是相同应用,向所述第一响应信息中应用的后台服务器发起数据访问请求。

在本申请实施例中,如果一个被请求的web页面中推广有某一应用,一般的,web服务器返回的第一响应信息中会包含该应用的名称、下载链接及版本信息。其中,所述下载链接可以为带有操作提示的虚拟按钮,所述的操作提示比如可以为“下载”。

在本申请实施例中,根据TCP/IP协议,服务器的逻辑端口的端口号取值范围为0~65535。这些端口又可分为周知端口(其端口号取值范围为0~1023)、动态端口(其端口号取值范围为49152~65535)和注册端口(其端口号取值范围为1024~49151)。其中,一般只有注册端口可以被固定分配给某个服务。因此,在本申请实施例中,浏览器客户端取端口号时,可从注册端口集(即1024~49151范围)中选取一个端口号,所述的选取可以是顺序的,也可以是随机的。其中被选取出的一个端口号有可能是未被绑定的端口号,也有可能是已被绑定的端口号。

在本申请实施例中,所述的相同应用是指名称相同应用,比如本地终端上的一个本地应用为支付宝,则在所述第一响应信息中与其相同应用也是支付宝。

在本申请实施例中,向本地终端上的本地服务端发起携带有注册端口的访问请求比如可以为:http://本地终端IP+注册端口号的形式。

本申请实施例以应用的名称作为应用的识别标识,在本申请其他实施例中,还可以采用字符串等作为应用的识别标识。

本申请实施例的执行主体可以为浏览器客户端,也可以是其他具有类似功能的模块或应用。

本申请实施例中,本地服务端在收到浏览器客户端发送的携带端口号的访问请求后,会根据请求中携带的端口号,从预先保存的本地应用与对应绑定端口的对应关系表中,查找是否存在有绑定有该端口号的本地应用。如果存在绑定有该端口号的本地应用,则从所述对应关系表中读取与该端口号对应的本地应用的名称及版本信息,并向浏览器客户端返回包含该名称及版本信息的第二响应信息;如果不存在绑定该端口号的本地应用,则向浏览器客户端返回请求失败的提示信息。

当浏览器客户端收到本地服务端返回的第二响应信息时,通过解析该第二响应可以获知第二响应信息中的本地应用的名称及版本信息。然后将该本地应用的名称与此前已获得的第一响应信息中的应用的名称进行匹配,以判断第二响应信息中的本地应用与第一响应信息中的应用是否为相同应用。如果第二响应信息中的本地应用的名称与第一响应信息中的应用的名称相同,则确认二者属于相同应用。从而可以通过本地应用生成web页面中的数据。

如果第二响应信息中的本地应用与第一响应信息中的应用的不相同,那么说明本地不存在与第一响应信息中的应用相适配的数据,那么便可以向所述第一响应信息中应用的后台服务器发起数据访问请求,从而从后台服务器处获取数据。

具体地,在本实施方式中,可以将web页面中生成的字符串存储于预设队列中,所述字符串按照预设格式进行编写并且所述字符串中包括指向本地应用的操作指令和与所述操作指令相绑定的回调函数。其中,所述预设格式可以是开发人员指定的编写格式,所述编写格式可以限定web页面中生成的字符串中各个部分的组成形式和组成顺序。然后,所述本地应用可以从所述预设队列中读取所述字符串。这样,所述本地应用可以执行所述字符串中的操作指令并将执行得到的数据通过与所述操作指令相绑定的回调函数反馈至所述web页面处。

在实际应用场景中,所述本地应用可以通过在所述web页面中执行的预设脚本,从所述预设队列中读取所述操作指令。

在本实施方式中,所述预设脚本可以通过目标接口指令执行,所述目标接口指令可以按照下述方式确定:

首先,可以确定用于执行所述预设脚本的通用接口指令。所述通用接口指令可以将具备相同功能但是名称不同的接口指令进行统一表示。这样,可以从预设接口指令集中确定所述通用接口指令对应的接口指令子集。所述接口指令子集中可以包括多条接口指令,这些接口指令的功能相同,但是随着本地应用版本的不同,呈现的指令名称也不同。这样,可以从所述接口指令子集中提取与所述本地应用的当前版本相匹配的目标接口指令,从而可以通过所述目标接口指令来执行预设脚本。

在本实施方式中,所述预设接口指令集可以按照下述方式确定:

首先,可以获取预设数量的目标接口指令集,各个所述目标接口指令集分别与所述本地应用的不同版本相对应,各个所述目标接口指令集中均包括至少一个目标接口指令。然后将各个所述目标接口指令集中属于同一类型的目标接口指令划分于同一接口指令子集中,并为各个所述接口指令子集分配对应的通用接口指令。这样,各个所述接口指令子集的集合便可以确定为所述预设接口指令集。

在本实施方式中,为了不重复读取预设队列中的字符串,因此在所述本地应用从所述预设队列中读取所述字符串之后,可以将读取的所述字符串从所述预设队列中清除;或者为读取的所述字符串添加表征已处理的标识。

在本实施方式中,由于预设队列中随时可以产生字符串,因此需要定时访问所述预设队列,这样,所述本地应用可以按照预设时间周期从所述预设队列中读取所述字符串,从而不会遗漏所述预设队列中的字符串。

请参阅图2,本申请还提供一种实现web页面与本地应用通信的系统,所述系统包括:

第一响应信息接收单元100,用于接收web服务端基于用户发起的web页面访问请求所返回的第一响应信息;

端口选取单元200,用于当所述第一响应信息中含有应用的配置信息时,从注册端口集中选取一个端口号,并向本地服务端发起携带所述端口号的访问请求;其中,所述配置信息包括应用的标识、下载链接及版本信息中的至少一种;

判断单元300,用于当收到所述本地服务端返回的第二响应信息时,判断所述第二响应信息中的本地应用与所述第一响应信息中的应用是否为相同应用;

数据生成单元400,用于如果为相同应用,通过所述本地应用生成web页面中的数据;如果为不相同应用,向所述第一响应信息中应用的后台服务器发起数据访问请求。

在本申请一个实施方式中,所述数据生成单元400包括:

字符串存储模块,用于将web页面中生成的字符串存储于预设队列中,所述字符串按照预设格式进行编写并且所述字符串中包括指向本地应用的操作指令和与所述操作指令相绑定的回调函数;

字符串读取模块,用于从所述预设队列中读取所述字符串;

执行模块,用于执行所述字符串中的操作指令并将执行得到的数据通过与所述操作指令相绑定的回调函数反馈至所述web页面处。

在本申请一个实施方式中,所述字符串读取模块包括:

脚本执行模块,用于通过在所述web页面中执行的预设脚本,从所述预设队列中读取所述操作指令。

需要说明的是,上述各个功能模块的具体实现方式均与步骤S1至S4中一致,这里便不再赘述。

本申请实施例中,本地应用在接收到web服务端基于用户发起的web页面访问请求所返回的第一响应信息,且第一响应信息中含有应用的标识、下载链接及版本信息时,浏览器客户端可从注册端口集中选取一个端口号,并向本地终端上的本地服务端发起携带有该端口号的访问请求,以获得本地应用的数据;如果收到的所述本地服务端返回的第二响应信息中的本地应用与第一响应信息中的应用是相同的应用,从而可以通过所述本地应用生成web页面中的数据,从而实现了web页面与本地应用之间的通信,进而使得浏览器客户端可根据用户终端实际的应用安装情况,来个性化调整用户所请求的web页面中各应用的下载链接的操作提示,因而提高了用户体验。

以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请实施例的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1