CN107463453B - 同一终端不同应用间通信的方法、装置、设备和存储介质 - Google Patents
同一终端不同应用间通信的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN107463453B CN107463453B CN201710681762.6A CN201710681762A CN107463453B CN 107463453 B CN107463453 B CN 107463453B CN 201710681762 A CN201710681762 A CN 201710681762A CN 107463453 B CN107463453 B CN 107463453B
- Authority
- CN
- China
- Prior art keywords
- application
- communication
- address
- service
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种同一终端不同应用间通信的方法,该方法包括:第一应用获取携带有第二应用的服务监听地址的通信指示,该服务监听地址包括第二应用监听的目的端口号;第一应用根据服务监听地址,向设置有第一应用的终端上的目的端口号对应的通信端口发送通信请求,该通信请求用于确定终端上是否安装有第二应用;若第一应用接收到通信响应,该通信响应用于确认终端上安装有第二应用的通信响应,第一应用与第二应用建立通信连接。本发明的实施例同时还公开了一种同一终端不同应用间通信的装置、设备和存储介质。
Description
技术领域
本发明涉及通信领域中的信息处理技术,尤其涉及一种同一终端不同应用间通信的方法、装置、设备和存储介质。
背景技术
随着电子产品的推广与发展,电子产品功能越来越多、性能越来越强、体验越来越丰富,给人们的生活带来很多便利。在智能电子设备联网之后,用户使用最普遍的功能是网络资源搜索。用户网页浏览的过程中,可能需要利用另一应用去获取在网页中查看到的网络资源,例如,使用下载工具下载需要安装的软件,这就需要浏览器通知应用该获取需求。
在相关技术中,浏览器与另一应用间的通信是通过在浏览器中设置插件的方式来实现的。浏览器中设置的插件通常需要由提供该应用的企业,针对不同的浏览器进行定制。
由于目前各种浏览器的种类和数量众多,造成企业针对各种浏览器研发插件版本时,需要承担巨大的研发和维护成本。
发明内容
为解决上述技术问题,本发明实施例期望提供一种同一终端不同应用间通信的方法、装置、设备和存储介质,解决了现有技术方案中为了实现应用间通信研发插件导致的企业成本较高的问题。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种同一终端不同应用间通信的方法,所述方法包括:
第一应用获取携带有第二应用的服务监听地址的通信指示,所述服务监听地址包括所述第二应用监听的通信端口的目的端口号;
所述第一应用根据所述服务监听地址,向设置有所述第一应用的终端上的所述目的端口号对应的通信端口发送通信请求,用以确定所述终端上是否安装有所述第二应用;
若所述第一应用接收到通信响应,所述通信响应用于确认所述终端上安装有所述第二应用,所述第一应用与所述第二应用建立通信连接。
第二方面,本发明实施例提供同一终端不同应用间通信的装置,所述装置包括:第一获取单元、第一发送单元和第一处理单元,其中:
所述第一获取单元,用于第一应用获取携带有第二应用的服务监听地址的通信指示,所述服务监听地址包括所述第二应用监听的通信端口的目的端口号;
所述第一发送单元,用于所述第一应用根据所述服务监听地址,向设置有所述第一应用的终端上的所述目的端口号对应的通信端口发送通信请求,用以确定所述终端上是否安装有所述第二应用;
所述第一处理单元,用于若所述第一应用接收到通信响应,所述通信响应用于确认所述终端上安装有所述第二应用,所述第一应用与所述第二应用建立通信连接。
第三方面,本发明实施例提供一种终端,所述终端包括:通信接口、处理器,其中:
所述通信接口,用于发送通信请求,用以确定设置有第一应用的所述终端上是否安装有第二应用;
所述处理器,用于通过所述第一应用获取携带有所述第二应用的服务监听地址的通信指示,所述服务监听地址包括所述第二应用监听的通信端口的目的端口号;以及,通过所述第一应用根据所述服务监听地址,向所述终端上的所述目的端口号对应的通信端口发送所述通信请求;若所述第一应用接收到用于确认所述终端上安装有所述第二应用的通信响应,所述第一应用与所述第二应用建立通信连接。
第四方面,本发明实施例提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,该计算机可执行指令用于执行第一方面所述的同一终端不同应用间通信的方法。
本发明的实施例所提供的同一终端不同应用间通信的方法、装置、终端和计算机存储介质,通过第一应用获取携带有第二应用的服务监听地址的通信指示,所述服务监听地址包括所述第二应用监听的通信端口的目的端口号;所述第一应用根据所述服务监听地址,向设置有所述第一应用的终端上的所述目的端口号对应的通信端口发送通信请求,用以确定所述终端上是否安装有所述第二应用;若所述第一应用接收到通信响应,所述通信响应用于确认所述终端上安装有所述第二应用,所述第一应用与所述第二应用建立通信连接,由于第一应用只需根据服务监听地址向终端上的与第二应用监听的通信端口发送通信请求,在终端上安装有第二应用时,就可以基于此通信请求,建立第一应用与第二应用之间的通信连接,解决了现有技术中为实现应用间通信研发插件导致的企业成本较高的问题。
附图说明
图1为本发明的实施例提供的同一终端不同应用间通信的方法的流程示意图一;
图2为本发明的实施例提供的同一终端不同应用间通信的方法的流程示意图二;
图3A为本发明的实施例提供的同一终端不同应用间通信的方法的应用场景示意图一;
图3B为本发明的实施例提供的同一终端不同应用间通信的方法的应用场景示意图二;
图4A为本发明的实施例提供的同一终端不同应用间通信的方法的应用场景示意图三;
图4B为本发明的实施例提供的同一终端不同应用间通信的方法的应用场景示意图四;
图5为本发明的实施例提供的同一终端不同应用间通信的方法的交互流程示意图一;
图6为本发明的实施例提供的同一终端不同应用间通信的方法的交互流程示意图二;
图7为本发明的实施例提供的同一终端不同应用间通信的方法的交互流程示意图三;
图8为本发明的实施例提供的同一终端不同应用间通信的方法的交互流程示意图四;
图9为本发明的实施例提供的同一终端不同应用间通信的方法的业务调用架构示意图。
图10为本发明的实施例提供的同一终端不同应用间通信的装置的结构示意图;
图11为本发明的实施例提供的终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一:
本发明的实施例提供一种同一终端不同应用间通信的方法,如图1所示,该方法包括以下步骤:
步骤S101、第一应用获取携带有第二应用的服务监听地址的通信指示,服务监听地址包括第二应用监听的通信端口的目的端口号。
在本发明实施例中,第一应用(Application,APP)和第二应用可以是待建立通信连接的两个应用。其中,第一应用可以是发起建立通信连接的一方的应用,第二应用可以是等待建立通信连接的一方的应用。所述通信指示可以用于指示第一应用在终端上安装有第二应用时,与第二应用建立通信连接。
在本发明实施例中,第一应用可以在需要调用第二应用时,获取用于建立通信连接的通信指示,并在获取通信指示后,触发建立通信连接的步骤。例如,第二应用是可以提供一些与网络资源有关的业务服务的应用,则第一应用可以在检测到需要调用第二应用以执行第二应用可提供的业务服务时,获取上述通信指示。
举例来说,第一应用可以是用于搜索、查找网络资源的应用,第二应用可以是能够提供附加业务服务的应用,如具有下载网络资源功能的应用、具备下载和播放媒体类型的网络资源的应用,或者,具备下载和安装软件安装包类型的网络资源的应用,或者提供其他业务服务的应用。示例性地,第一应用可以是浏览器,第二应用可以是电脑管家、QQ软件、腾讯视频、QQ旋风等可用于提供与网络资源有关的业务服务的应用,则对于软件安装包类型的网络资源,电脑管家或QQ软件可以提供下载并安装软件安装包的业务服务,对于视频文件类型的网络资源,腾讯视频可以提供下载并播放视频文件的业务服务。又如,对于文档、图片、压缩文件等普通文件类型的网络资源,QQ旋风可以提供下载网络资源的业务服务。
在本发明实施例中,第一应用可以是在浏览应用服务器提供的网络资源的搜索结果时,获取由应用服务器触发的上述通信指示。在一示例中,应用服务器可以是与第二应用对应的应用服务器,例如,第二应用与应用服务器可以是由相同的服务提供商提供的,采用这种通过获取由应用服务器触发的上述通信指示的方式,能够激励用户在该终端上使用该应用服务器的服务提供商开发的第二应用。在本发明其他实施例中,第一应用也可以是在检测到待获取的网络资源与第二应用所能够提供的业务服务有关时,由第一应用自身主动生成上述通信指示。在一示例中,第一应用可以预先设置网络资源的类型对应的第二应用,示例性的,该第二应用可提供与该类型的网络资源对应的业务服务。采用这种由第一应用预先设置网络资源的类型对应的第二应用的方式,用户可以在第一应用中根据自身的使用习惯设置相应地第二应用。在又一示例中,第二应用可以是由与第一应用相同的服务提供商提供的应用,或者是与第一应用的服务提供商存在合作关系的服务提供商提供的应用,则采用这种通过由第一应用自身主动生成上述通信指示的方式,能够在终端上已装设有第一应用的情况下激励用户使用第二应用。
在本发明实施例中,需要说明的是,由于第一应用在与第二应用建立通信连接之前,第一应用可能不清楚当前终端上是否装设有第二应用,因此,第一应用需要先确认当前终端上是否装设有第二应用。在一示例中,确认终端上是否装设有第二应用的方法可以是,向第二应用监听的通信端口发送用于请求建立通信连接的通信请求,该通信端口例如可以是传输控制协议/因特网互联协议(Transmission Control Protocol/InternetProtocol,TCP/IP)协议的服务端口,若终端上装设有第二应用,则第二应用能够监听到发送到该通信端口的通信请求,并在接收到该通信请求后向第一应用发送通信响应,由此,第一应用能够确认终端上装设有第二应用,进而可以在第一应用和第二应用之间建立通信连接。在本发明其他实施例中,第二应用可以通过创建监听进程,监听发送到该目的端口号对应的通信端口的通信请求。
在本发明实施例中,第一应用需要在向第二应用发送通信请求之前,获取第二应用的服务监听地址。举例来说,第一应用可以从第二应用对应的应用服务器获取第二应用的服务监听地址,或者,第一应用可以根据网络资源关联的业务服务的类型预先配置第二应用的目的端口号。
以第一应用可以为网页浏览器、应用服务器为网页Web服务器、应用服务器为能够获悉第二应用的服务监听地址的服务器的应用场景为例。其中,网页浏览器可以是用于显示网页服务器或档案系统内的文件,并让用户与这些文件互动的一种软件,网页浏览器可以用来显示在万维网或局部局域网络等内的文字、影像及其他资讯,这些文字或影像,可以是连接其他网址的超链接,用户可以迅速及轻易地浏览各种资讯。Web服务器可以是一台负责提供网页的电脑,主要是各种编程语言构建而成,通过超文本传输协议(Hyper TextTransfer Protocol,HTTP)协议传给客户端,客户端可以是网页浏览器。需要说明的是,HTTP协议可以是客户端,如网页浏览器,或其他程序,与Web服务器之间的应用层通信协议。在互联网Internet上的Web服务器上存放的都是超文本信息,客户端需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
在该场景下,第一应用可以从应用服务器提供的包含第二应用的服务监听地址的网页中获取第二应用的服务监听地址。示例性地,应用服务器可以将第二应用的服务监听地址设置在网页的头文件(head)中发送给第一应用,第一应用在接收到应用服务器发送的携带有头文件的网页后,就可以从网页的头文件中提取第二应用的服务监听地址。在本发明其他实施例中,用户在通过第一应用浏览由应用服务器提供的网页时,可以通过点击操作触发创建脚本标签(script),触发第一应用查询第一应用所在的终端本地是否装设有第二应用,并在终端本地装设有第二应用时,指示第一应用通过第二应用从业务服务器获取业务服务。
在本发明其他实施例中,除了基于HTTP协议实现浏览器与第二应用进行通信外,也可基于以安全为目标的HTTP通道(Hyper Text Transfer Protocol over SecureSocket Layer,HTTPS)协议、基于传输控制协议(TCP)的全双工通信(WebSocket)协议等浏览器/服务器模式(Browser/Server,B/S)标准通信协议实现。需要说明的是,HTTPS是一种网络安全传输协议。在计算机网络上,HTTPS经由超文本传输协议进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。WebSocket协议是基于TCP的一种新协议,WebSocket最初在HTML的第五次重大修改(HTML5)规范中被引用为TCP连接,作为基于TCP的套接字应用程序编程接口(API)的占位符,它实现了浏览器与服务器全双工(full-duplex)通信。
步骤S102、第一应用根据服务监听地址,向设置有第一应用的终端上的目的端口号对应的通信端口发送通信请求,用以确定终端上是否安装有第二应用。
在本发明实施例中,还需要说明的是,第一应用需要根据通信指示中包含的服务监听地址发送通信请求,该服务监听地址除了包含第二应用监听的通信端口的端口号之外,该服务监听地址还用于使得该通信请求发送的目标对象,即接受方,为所述终端自身。例如,服务监听地址还可以包括:预设的目的网络地址,该目的网络地址用于使得所属服务监听地址发送的目标对象为所述终端自身。则上述根据所述服务监听地址,向终端上的目的端口号对应的通信端口发送通信请求,可以包括:根据目的网络地址和目的端口号发送所述通信请求。
在一示例中,服务监听地址可以为映射至所述终端自身的网络地址,例如,本机回送地址127.0.0.1或终端的本地网络地址。若服务监听地址为本机回送地址或终端的本地网络地址,则第一应用可以将通信请求直接发送至终端自身的目的端口号对应的通信端口。
在另一示例中,服务监听地址可以包括预设的域名Domain,该域名在地址解析服务器上配置的解析地址可以为本机回送地址或终端的本地网络地址。则第一应用可以先将域名发送至地址解析服务器,该地址解析服务器上可以预先配置该域名对应的解析地址为本机回送地址,并将域名对应的解析地址发送给第一应用,然后,第一应用可以再根据域名对应的解析地址和目的端口号发送通信请求至终端自身的通信端口。
举例来说,域名可以是应用服务器提供的网页的域名,如,腾讯软件中心的Web服务器所使用的域名“pc.qq.com”。地址解析服务器可以为网络名称系统(Domain NameSystem,DNS),DNS是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。腾讯软件中心的Web服务器的提供商可以在DNS上注册一条DNS A记录,其中定义主机名称Domain到IPv4地址的映射,该IPv4地址可以为本机回送地址127.0.0.1。
在本发明实施例中,上述通信请求可以是HTTP请求、HTTPS请求或WebSocket请求。示例性地,第一应用可以为浏览器,浏览器可以通过发送HTTP请求,该HTTP请求携带包含一预设的域名的HTTP地址或HTTPS地址,利用DNS域名解析服务,将该预设的域名解析到本机回送地址127.0.0.1,进而可以创建浏览器与第二应用之间的连接,由此实现浏览器与其他应用软件通信的目的。在本发明其他实施例中,服务监听地址可以为HTTP地址或者HTTPS地址。
步骤S103、若第一应用接收到通信响应,所述通信响应用于表示终端上安装有第二应用的通信响应,第一应用与第二应用建立通信连接。
在本发明实施例中,上述通信请求还可以携带有第一应用使用的本地网络地址和第一应用使用的源端口号;相应地,第一应用与第二应用建立通信连接,可以包括:根据目的网络地址、目的端口号、本地网络地址和源端口号,建立第一应用与第二应用之间的通信连接。其中,本地网络地址、目的网络地址可以为互联网协议第四版(IPv4)地址或者下一代互联网协议(IPv6)地址,源端口号和目的端口号可以为TCP/IP协议的服务端口的端口号。
在本发明实施例中,通信指示还可以用于指示第一应用在终端上安装有第二应用时,调用第二应用从应用服务器获取网络资源并执行网络资源对应的业务服务指令。则在第一应用与第二应用建立通信连接之后,第一应用还可以向第二应用发送业务服务调用请求,该业务服务调用请求用于请求第二应用从应用服务器获取网络资源并执行网络资源对应的业务服务指令,示例性的,第一应用可以指示第二应用下载并安装软件安装包类型的网络资源。在本发明其他实施例中,若通信指示还用于指示第一应用在终端上安装有第二应用时,调用第二应用从应用服务器获取网络资源并执行网络资源对应的业务服务指令,则在上述第一应用根据服务监听地址,向设置有第一应用的终端上的目的端口号对应的通信端口发送用于确定终端上是否安装有第二应用的通信请求之后,所述方法还可以包括:若在预设时长内,第一应用未接收到用于确认终端上安装有第二应用的通信响应,第一应用从应用服务器获取网络资源。从而保证当终端未安装第二应用时,第一应用仍可获取网络资源,待网络资源获取完成后,可以由用户手动操作来执行网络资源对应的业务服务指令,如安装软件安装包。
在本发明实施例中,通过第一应用获取携带有第二应用的服务监听地址的通信指示,该服务监听地址包括第二应用监听的目的端口号;第一应用根据所述服务监听地址,向设置有第一应用的终端上的目的端口号对应的通信端口发送通信请求,该通信请求用于确定终端上是否安装有第二应用的;若第一应用接收到通信响应,该通信响应用于确认终端上安装有第二应用的通信响应,第一应用与第二应用建立通信连接,由于第一应用只需根据服务监听地址向终端上的与第二应用对应的目的端口发送通信请求,在终端上安装有第二应用时,就可以基于此通信请求,建立第一应用与第二应用之间的通信连接,解决了现有技术中为实现应用间通信研发插件导致的企业成本较高的问题。
实施例二:
在图1所示方法的基础上,本发明的实施例还提供一种同一终端不同应用间通信的方法,其中,第一应用获取的通信指示可以包括:用于查询终端上是否安装有第二应用的第一通信指示和用于在终端上安装有第二应用时调用第二应用从应用服务器获取网络资源并执行网络资源对应的业务服务指令的第二通信指示。
相应地,本发明实施例的步骤可以包括如图2所示的步骤S201和/或步骤S202。
步骤S201:第一应用调用第二应用从应用服务器获取网络资源并执行网络资源对应的业务服务指令。
其中,第一应用可以在步骤S103之后可以执行步骤S201,即终端上安装有第二应用时执行步骤S201。举例来说,网络资源可以为软件安装包,网络资源对应的业务服务指令可以为在当前终端上安装该软件安装包,则第一应用可以在与第二应用建立通信连接后,调用第二应用下载并安装该软件安装包。
示例性地,可参考图3A为本发明的实施例提供的同一终端不同应用间通信的方法的应用场景示意图一,可参考图3A所示,第一应用可以为浏览器31,浏览器31中显示有腾讯软件中心的网页313,腾讯软件中心的域名可以为pc.qq.com,用户在浏览器31上可以通过搜索栏311输入要搜索的网络资源的关键字,或者在分类筛选312中选择要搜索的网络资源的分类,提供腾讯软件中心的网页的Web服务器可以向浏览器31返回携带有网络资源的下载地址的网页313,用户可以点击网页中的下载链接314以请求下载QQ客户端软件安装包,浏览器31可以根据网页313中的点击操作获取用于调用第二应用的第二通信指示,可参看图3B位本发明的实施例提供的同一终端不同应用间通信的方法的应用场景示意图二,如图3B所示,浏览器31调用终端上安装的第二应用,即电脑管家32,从腾讯软件中心对应的Web服务器下载QQ客户端软件安装包,并在软件安装包下载完成后在终端安装该软件安装包,可参见下载进度窗口321所示。
采用这种方式,在第一应用获取包括第二通信指示的通信指示,且终端上安装有第二应用时,第一应用可以调用第二应用一次性完成获取网络资源和执行网络资源对应的业务服务指令的操作,使得用户不需要先使用第一应用获取网络资源,然后手动执行网络资源对应的业务服务指令,可见,这种方式能够简化用户的操作。
在本发明实施例中,第一应用调用第二应用从应用服务器获取网络资源并执行网络资源对应的业务服务指令可以包括:第一应用可以向第二应用发送用于调用第二应用从应用服务器获取网络资源并执行网络资源对应的业务服务指令的业务服务调用指令,第二应用在接收到业务服务调用指令之后,可以从应用服务器获取网络资源,并执行网络资源对应的业务服务指令。需要说明的是,业务服务调用请求可以携带有服务监听地址,第一应用可以根据服务监听地址向第二应用发送业务服务调用请求。
在本发明其他实施例中,业务服务调用指令中可以携带有网络资源、网络资源对应的业务服务指令等和本次业务服务调用操作相关的业务服务调用参数。第二应用可以在接收到携带有业务服务调用参数的业务服务调用指令之后,向应用服务器发送携带有业务服务调用参数的校验请求,应用服务器可以对业务服务调用参数进行校验,并将校验结果携带在校验响应中发送给第二应用。然后,第二应用可以根据校验结果确定是否从应用服务器获取网络资源并执行网络资源对应的业务服务指令。示例性地,若校验结果为本次业务服务调用参数对应的业务服务调用指令为合法操作,第二应用可以确定从应用服务器获取网络资源并执行相应业务服务指令,若校验结果为本次业务服务调用参数对应的业务服务调用指令为非法操作,第二应用可以向第一应用发送调用失败响应。第一应用若接收到调用失败响应可以按照自身设置的默认处理流程从应用服务器获取网络资源。
步骤S202:若在预设时长内,第一应用未接收到通信响应,该通信响应用于确认终端上安装有第二应用,第一应用从应用服务器获取网络资源。
其中,第一应用可以在步骤S102之后可以执行步骤S202,即终端上未安装有第二应用时执行步骤S202。
在本发明实施例中,第一应用可以按照自身设置的默认处理流程,从应用服务器获取网络资源。图4A为本发明的实施例提供的同一终端不同应用间通信的方法的应用场景示意图三,图4B为本发明的实施例提供的同一终端不同应用间通信的方法的应用场景示意图四,可参看图4A所示,仍以网络资源为软件安装包为例,第一应用下载软件安装包的默认处理流程可以包括:在用户点击网络资源的下载链接后,弹出“另存为”对话框401,等待用户在地址栏402中设置软件安装包的存储位置之后开始下载流程。可参看图4B所示,用户需要观察系统下载进度窗口403,并等待软件安装包下载完成后,再打开存储位置对应的文件夹,进而点击软件安装包进行软件安装。
采用这种方式,在第一应用获取包括第二通信指示的通信指示,且终端上未安装有第二应用时,第一应用可以使用默认处理流程从应用服务器获取网络资源,这种方式能够兼容终端上未安装有第二应用的应用场景,从而保证在未安装有第二应用的终端上能够利用第一应用获取网络资源。
本发明实施例的其他技术方案细节和技术效果与图1所示同一终端不同应用间通信的方法类似,具体可参考图1所示实施例中的相关描述。
实施例三:
图5为本发明的实施例提供的同一终端不同应用间通信的方法的交互流程示意图一,如图5所示,当终端上安装有第二应用时,本发明实施例的步骤可以包括:
步骤S501:第二应用创建监听进程,并开始监听发送到目的端口号对应的通信请求。
其中,第二应用可以根据第二应用的当前配置文件确定是否创建监听进程,在本发明其他实施例中,第二应用可以依据第二应用的安装配置文件的设置,在第二应用在终端上安装完成后即创建上述监听进程。
步骤S502:第一应用获取携带有第二应用的服务监听地址的通信指示,该服务监听地址包括目的端口号。
其中,该步骤与步骤S101类似。
步骤S503:第一应用根据服务监听地址,向设置有第一应用的终端上的目的端口号对应的通信端口发送用于确定终端上是否安装有第二应用的通信请求。
其中,该步骤与步骤S102类似,服务监听地址可以包括目的网络地址,该目的网络地址用于使得第一应用向所述终端发送通信请求。在一示例中,目的网络地址可以为本机回送地址127.0.0.1。在本发明其他实施例中,通信请求还可以携带有第一应用使用的本地网络地址和第一应用使用的源端口号。
步骤S504:第二应用监听到发送到目的端口号对应的通信端口的通信请求。
其中,第二应用利用监听进程监听发送到目的端口号对应的通信端口的通信请求。示例性的,监听进程可以为本地WebServer进程。
步骤S505:第二应用向第一应用发送用于确认终端上安装有第二应用的通信响应。
步骤S506:建立第一应用与第二应用之间的通信连接。
在本发明实施例中,第一应用与第二应用之间的通信连接,可以根据目的网络地址、目的端口号、本地网络地址和所述源端口号,建立通信连接。如,目的网络地址为127.0.0.1、目的端口号为15874、本地网络地址为10.10.10.10、源端口号为3000,基于目的网络地址、目的端口号、本地网络地址、源端口号可以建立基于TCP/IP的通信连接。
在本发明其他实施例中,在第二应用向第一应用发送通信响应之后,第一应用与第二应用之间的通信连接可以由第一应用发起建立,也可以由第二应用发起建立。示例性地,第一应用可以在接收到用于确认终端上安装有第二应用的通信响应,响应于所述通信响应,第一应用与第二应用建立通信连接。另一示例中,第二应用可以向第一应用发送用于请求与第一应用建立通信连接的连接建立请求;第一应用可以第二应用发送用于表示第一应用与第二应用之间的通信连接已经建立完成的连接建立响应。
在本发明其他实施例中,第一应用获取携带有第二应用的服务监听地址的通信指示,可以包括:第一应用从应用服务器接收包含第二应用的服务监听地址的网页;第一应用根据所述网页生成携带有所述通信指示的脚本标签。需要说明的是,在所述根据所述网页生成携带有所述通信指示的脚本标签之前,可以包括:第一应用可以在所述网页中接收携带有业务服务调用参数的输入指令;相应地,所述根据所述网页生成携带有所述通信指示的脚本标签,可以包括:所述第一应用根据所述业务服务调用参数和所述服务监听地址生成携带有所述通信指示的脚本标签。
在本发明其他实施例中,第二应用可以为一个或多个,如电脑管家、QQ旋风等。终端上的第一应用可以获取一个或多个第二应用对应的服务监听地址,并依次查询终端上是否安装有任一第二应用。示例性地,第一应用可以获取携带有多个第二应用的服务监听地址的通信指示,所述通信指示用于依次查询终端上是否安装有所述多个第二应用中的任一第二应用,相应地,第一应用可以依次向待查询的第二应用对应的服务监听地址发送通信请求。若任一第二应用监听到通信请求,则第一应用可以与该第二应用建立通信连接。
本发明实施例的其他技术方案细节和技术效果与图1至图4所示同一终端不同应用间通信的方法类似,具体可参考图1至图4所示实施例中的相关描述。
实施例四:
图6为本发明的实施例提供的同一终端不同应用间通信的方法的交互流程示意图二,如图6所示,本发明的实施例还提供一种同一终端不同应用间通信的方法,在该方法中,图6中的步骤S601可以作为图5所示方法中步骤S502的一种替代实现方式,即步骤S502中第一应用获取的通信指示可以仅包括用于查询终端上是否装设有第二应用的第一通信指示。本发明的实施例的步骤可以包括:
步骤S601:第一应用获取用于查询终端上是否安装有第二应用的第一通信指示。
其中,该第一通信指示与步骤S101中的通信指示类似。第一通信指示可以是第一应用从由应用服务器提供的网页的头文件中获取的。例如,第一通信指示可以是在用户打开或者浏览应用服务器的网页时获取的,第一应用读取网页中的头文件,然后根据头文件创建脚本(script)标签,进而生成待发送的业务查询请求,该业务查询请求可以包括从网页中获取的服务监听地址,例如,该业务查询请求可以为JSONP请求http://{Domain}:{PORT}/query。在本发明其他实施例中,该业务查询请求可以通过HTTP协议中的GET方式携带参数。
步骤S602:第一应用根据预先获取的服务监听地址向终端上的目的端口号对应的通信端口发送业务查询请求,该业务查询请求用于查询终端上是否安装有第二应用。
其中,该业务查询请求与步骤S102中的通信请求类似。
步骤S603:第二应用监听到发送到目的端口号对应的通信端口的业务查询请求。
其中,该步骤与步骤S504中第二应用监听到通信请求类似。
S604:第二应用向第一应用发送用于确认终端上安装有第二应用的业务查询响应。
其中,该步骤与步骤S505中第二应用于发送通信响应类似。示例性地,第二应用可以发送200OK消息。
步骤S605:建立第一应用与第二应用之间的通信连接。
其中,该步骤与步骤S506类似。该通信连接可以是为了发送脚本对象使用模式JSONP(JavaScript Object Notation with Padding)请求创建的TCP连接。
步骤S606:第一应用获取第二通信指示,该第二通信指示用于在终端上安装有第二应用时指示第一应用调用第二应用获取网络资源并由第二应用执行网络资源对应的业务服务指令。
其中,该第二通信指示可以是在第一应用与第二应用之间的通信连接完成之后,第一应用从由应用服务器提供的网页中获取的。例如,第二通信指示可以是在用户点击网页中的用于请求获取网络资源的链接时获取的,然后第一应用可以根据网页创建脚本(script)标签,进而生成待发送的业务服务调用请求,该业务服务调用请求可以包括从网页中获取的服务监听地址,例如,该业务服务调用请求可以为JSONP请求http://{Domain}:{PORT}/callsoft。在本发明其他实施例中,该业务服务调用请求可以是通过HTTP协议中的GET方式携带参数,如业务服务调用参数,在一示例中,业务服务调用参数可以包括待获取的网络资源的标识和待执行的业务服务指令。
步骤S607:第一应用向第二应用发送业务服务调用请求,该业务服务调用请求携带有第二通信指示对应的业务服务调用参数。
其中,在一示例中,第一应用可以基于在步骤S605中建立的通信连接向第二应用发送业务服务调用请求。在另一示例中,业务服务调用请求也可以包括服务监听地址,则第一应用也可以根据服务监听地址向第二应用发送业务服务调用请求。
步骤S608:第二应用根据第二通信指示对应的业务服务调用参数向第一应用提供业务服务。
其中,第二应用可以根据业务服务调用请求中的业务服务调用参数所指示的待获取网络资源的标识和待执行的业务服务指令,从应用服务器获取网络资源和执行网络资源对应的业务服务指令。
本发明实施例的其他技术方案细节和技术效果与图1至图5所示同一终端不同应用间通信的方法类似,具体可参考图1至图5所示实施例中的相关描述。
图7为本发明的实施例提供的同一终端不同应用间通信的方法的交互流程示意图三,如图7所示,本发明实施例还提供一种同一终端不同应用间通信的方法,其中,第一应用也可以在获取到第一通信指示之前获取到用于调用第二应用的第二通信指示,并根据第二通信指示生成第一通信指示。其中包括:
步骤S701:第二应用预先设置服务查询成功标志的值为假。
其中,该服务查询成功(serviceIsOk)标志的值可以为真(true)或假(false),在第二应用未与第一应用建立通信连接时,第二应用可以将该标识的初始值设置为false。该变量可以为全局变量。
步骤S702:第一应用获取第二通信指示,该第二通信指示用于指示第一应用调用第二应用获取网络资源并由第二应用执行网络资源对应的业务服务指令。
其中,该第二通信指示可以是在第一应用与第二应用之间的通信连接完成之前,第一应用从由应用服务器提供的网页中获取的。例如,第二通信指示可以是在用户点击网页中的用于请求获取网络资源的链接时获取的,然后第一应用可以根据网页创建脚本(script)标签,进而生成待发送的业务服务调用请求,该业务服务调用请求可以包括从网页中获取的服务监听地址,例如,该业务服务调用请求可以为JSONP请求http://{Domain}:{PORT}/callsoft。在本发明其他实施例中,在本发明其他实施例中,该业务服务调用请求可以是通过HTTP协议中的GET方式携带参数,如业务服务调用参数,在一示例中,业务服务调用参数可以包括待获取的网络资源的标识和待执行的业务服务指令。
步骤S703:第一应用判断服务查询成功标识为假,生成用于指示第一应用查询终端上是否安装有第二应用的第一通信指示。
其中,第一应用可以从应用服务器提供的网页中获取第二应用的服务监听地址,以生成第一通信指示,该服务监听地址可以包括第二应用监听的目的端口号。
步骤704:第一应用根据第一通信指示向终端上的目的端口号对应的通信端口发送业务查询请求,该业务查询请求用于查询终端上是否安装有第二应用。
其中,业务查询请求可以为JSONP请求http://{Domain}:{PORT}/query。在本发明其他实施例中,该业务查询请求可以通过HTTP协议中的GET方式携带参数。
步骤S705:第二应用监听到发送到目的端口号对应的通信端口的业务查询请求。
其中,该步骤与步骤S603类似。
步骤S706:第二应用向第一应用发送用于确认终端上安装有第二应用的业务查询响应。
其中,该步骤与步骤S604类似。
步骤S707:第二应用设置服务查询成功标识为真。
步骤S708:建立第一应用与第二应用之间的通信连接。
其中,该步骤与步骤S605类似。该通信连接可以是为发送JSONP请求创建的TCP连接。
步骤S709:第一应用向第二应用发送业务服务调用请求,该业务服务调用请求携带有第二通信指示对应的业务服务调用参数。
其中,业务服务调用请求可以为JSONP请求http://{Domain}:{PORT}/callsoft。在本发明其他实施例中,在本发明其他实施例中,该业务服务调用请求可以是通过HTTP协议中的GET方式携带业务服务调用参数。
步骤S710:第二应用根据第二通信指示对应的业务服务调用参数向第一应用提供业务服务。
其中,该步骤与步骤S608类似。
步骤S711:第一应用获取第三通信指示,该第三通信指示用于在终端上安装有第二应用时指示第一应用调用第二应用获取网络资源并由第二应用执行网络资源对应的业务服务指令的。
其中,与第二通信指示类似,该第三通信指示可以用于指示第一应用调用第二应用获取网络资源并执行网络资源对应的业务服务指令,第三通信指示可以与第二通信指示请求不同的网络资源和/或请求执行不同的业务服务指令。
步骤S712:第一应用判断服务查询成功标识为真,向第二应用发送业务服务调用请求,该业务服务调用请求携带有第三通信指示对应的业务服务调用参数。
其中,该步骤与步骤S606类似。业务服务调用请求可以为JSONP请求http://{Domain}:{PORT}/callsoft。在本发明其他实施例中,在本发明其他实施例中,该业务服务调用请求可以是通过HTTP协议中的GET方式携带业务服务调用参数。
步骤S713:第二应用根据第三通信指示对应的业务服务调用参数向第一应用提供业务服务。
其中,该步骤与步骤S608类似。
本发明实施例的其他技术方案细节和技术效果与图1至图6所示同一终端不同应用间通信的方法类似,具体可参考图1至图6所示实施例中的相关描述。
实施例五:
本发明的实施例还提供一种同一终端不同应用间通信的方法,在该方法中,服务监听地址中的目的网络地址可以为预设的域名,其中,该域名在地址解析服务器配置的域名与解析地址映射记录表中匹配的解析地址为本机回送地址。相应地,本发明实施例除涉及第一应用和第二应用外,还涉及地址解析服务器。下面以第一应用为浏览器(Browser)、第二应用的监听进程为本地WebServer进程、地址解析服务器为DNS进行举例说明。
图8为本发明的实施例提供的同一终端不同应用间通信的方法的交互流程示意图四。如图8所示,本发明实施例的步骤可以包括:
步骤S801:在DNS上注册域名A的映射记录为127.0.0.1。
其中,配置DNS域名解析服务,为指定服务域名“{DOMAIN}”添加A记录,将其解析到本机地址127.0.0.1。
步骤S802:本地WebServer进程启动,监听指定端口PORT。
其中,该指定端口可以为TCP/IP的一个服务端口PORT。
需要说明的是,在应用软件端,可以通过实现本地Web Server服务器进程来提供服务:创建监听套接字,监听本机地址127.0.0.1未被占用的网络端口{PORT},根据url规则实现查询服务与业务服务,等待浏览器创建连接来提供相应的响应服务,Node.js伪代码实现如下:
步骤S803:浏览器向DNS发送DNS查询请求,该DNS查询请求用于请求返回域名A对应的映射记录。
其中,域名A可以为与电脑管家应用对应的预设的域名“localhost.guanjia.qq.com”。
需要说明的是,在浏览器端,可以通过发送JSONP请求,实现查询服务调用与业务服务调用逻辑:1)、首先,通过创建script标签发送查询服务调用GET请求:http://{DOMAIN}:{PORT}/query,此时浏览器通过DNS将该域名解析到本机地址127.0.0.1,从而创建浏览器进程到应用软件本地Web Server服务器进程之间的连接,查询本机是否支持业务服务,若本机已安装应用软件服务,则响应200OK,执行回调函数,将全局变量serviceIsOk标记为true;2)、当检测到serviceIsOk等于true时,就可以使用同样方法发送业务服务调用GET请求:http://{DOMAIN}:{PORT}/callsoft,通过GET方式携带业务相关参数id,从而实现浏览器与应用软件通信的目的,Javascript伪代码实现如下:
步骤S804:DNS向浏览器发送DNS查询结果,DNS查询结果携带有域名A的映射地址为127.0.0.1的映射记录。
其中,映射记录例如可以为包括域名、地址类型、映射地址,示例性的,查询结果中的映射记录可以为“localhost.guanjia.qq.com,A,127.0.0.1”。
步骤S805:浏览器创建自身与本地WebServer之间的TCP连接,发送基于HTTP协议的查询服务请求,携带查询标志“/query”。
其中,查询服务请求为的HTTP查询服务请求/query。
步骤S806:查询成功,本地WebServer向浏览器发送200OK,并更新全局标志位ServiceIsOK。
其中,将ServiceIsOK设置为true。
步骤S807:浏览器复用TCP连接,发送HTTP业务服务调用请求,携带业务服务调用参数“/callsoft?id={ID}”。
其中,业务服务调用请求为HTTP业务服务调用请求//callsoft?id={id}。
步骤S808:本地WebServer在本地下载安装服务调用成功,返回200OK。
其中,本地是指终端。
图9为本发明的实施例提供的同一终端不同应用间通信的方法的业务调用架构示意图。如图所示,浏览器可以为Browser、本地WebServer为第二应用的监听进程、DNS可以由DNS服务来与浏览器进行交互,三者之间的交互包括DNS查询阶段、查询服务阶段和业务调用服务阶段。在DNS查询阶段,浏览器向DNS发送发送DNS查询消息,DNS返回映射记录“localhost.guanjia.qq.com,A,127.0.0.1”。在查询服务阶段,浏览器向本地WebServer发送查询服务消息,消息中携带标志信息“/query”,本地WebServer向浏览器发送表示请求成功的200OK消息。在业务调用服务阶段,浏览器向本地WebServer发送业务调用服务消息,消息中携带业务服务调用参数“/callsoft?id={id}”,通知WebServer调用响应本地进程执行相应任务,本地WebServer可以向浏览器发送表示请求成功的200OK消息,并执行浏览器所请求的任务。
在本发明实施例中,需要说明的是,JavaScript:JavaScript,简称JS,是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言,主要运行于浏览器端和Node.js环境中。Node.js是一个基于谷歌公司开发的浏览器(Chrome)V8引擎的JavaScript运行环境。Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。
本发明应用软件端本地Web Server服务器进程实现基于Node.js实现,也可基于C/C++、Java、Python等服务器端开发语言实现;本发明浏览器端服务调用实现是通过创建script标签发送JSONP请求来实现,也可基于可扩展超文本传输请求(XMLHttpRequest,XHR)、iframe等浏览器已知的通用请求对象方法实现。
需要说明的是,XMLHttpRequest对象可以在不向服务器提交整个页面的情况下,实现局部更新网页。当页面全部加载完毕后,客户端通过该对象向服务器请求数据,服务器端接受数据并处理后,向客户端反馈数据。XMLHttpRequest对象提供了对HTTP协议的完全的访问,包括做出POST和HEAD请求以及普通的GET请求的能力。其中,PSET方式是指数据作为HTTP消息的实体内容发给WEB服务器,而不是作为url传递。HEAD方式是指发送一个HTTP协议的头文件实现Web客户端和Web服务器之间的信息传递。GET方式是指数据可以追加到HTTP的header中发送,这种方式消息的数据量小、效率高。XMLHttpRequest可以同步或异步返回Web服务器的响应,并且能以文本或者一个文档对象模型(Document Object Model,DOM)文档形式返回内容。尽管名为XMLHttpRequest,它并不限于和可扩展标记语言(Extensible Markup Language,XML)文档一起使用:它可以接收任何形式的文本文档。XMLHttpRequest对象是名为异步JavaScript和XML(Asynchronous Javascript And XML,AJAX)的Web应用程序架构的一项关键功能。
此外,本发明实现基于HTTP协议实现浏览器与应用软件通信的目的,也可基于HTTPS、WebSocket等B/S标准通信协议实现。
本发明实施例可以应用于腾讯软件中心pc.qq.com站点高速下载功能,实现一键安全下载安装应用软件的用户体验,能够缩短传统浏览器网页下载应用软件安装流程体验,堤升了网站的用户操作体验。本发明实施例的技术方案的实现原理具备平台无关性,适用于桌面平台,移动平台等,极大降低了开发维护成本。本技术基于标准的B/S通信协议,利用DNS,HTTP等标准协议,实现浏览器与应用软件通信的目的,技术实现简单,且具备平台无关性,可运行于一切常见的软件平台。本发明实施例的方法能够适用于配置有不同的操作系统平台的终端,或者,安装有不同的浏览器的终端,均能够实现浏览器与应用软件或APP通信的目的,各个平台、浏览器的实现具备通用性,使得提供应用服务的企业的开发维护成本大幅下降。
本发明实施例的其他技术方案细节和技术效果与图1至图7所示同一终端不同应用间通信的方法类似,具体可参考图1至图7所示实施例中的相关描述。
实施例六:
基于前述实施例,本发明的实施例提供一种同一终端不同应用间通信的装置,该装置可以应用于上述实施例所述的同一终端不同应用间通信的方法中,图10为本发明的实施例提供的同一终端不同应用间通信的装置的结构示意图,参照图10所示,该装置包括:第一获取单元1001、第一发送单元1002和第一处理单元1003,其中:
第一获取单元1001,用于第一应用获取携带有第二应用的服务监听地址的通信指示,所述服务监听地址包括所述第二应用监听的目的端口号;
第一发送单元1002,用于所述第一应用根据所述服务监听地址,向设置有所述第一应用的终端上的所述目的端口号对应的通信端口发送通信请求,用以确定所述终端上是否安装有所述第二应用;
第一处理单元1003,用于若所述第一应用接收到通信响应,所述通信响应用于确认所述终端上安装有所述第二应用,所述第一应用与所述第二应用建立通信连接。
其中,所述服务监听地址还可以包括:预设的目的网络地址;所述第一发送单元,还用于根据所述目的网络地址和所述目的端口号发送所述通信请求。所述通信指示用于指示所述第一应用在所述终端上安装有所述第二应用时,与所述第二应用建立通信连接。
在其他实施例中,第一发送单元还用于当所述服务监听地址中的目的网络地址为所述域名时,向地址解析服务器发送携带有所述域名的地址解析请求;接收携带有所述域名的解析地址的地址解析响应:根据所述域名的解析地址和所述目的端口号发送所述通信请求。
在其他实施例中,所述通信请求还携带有所述第一应用使用的本地网络地址和所述第一应用使用的源端口号;相应地,第一处理单元63,还用于根据所述目的网络地址、所述目的端口号、所述本地网络地址和所述源端口号,建立所述通信连接。
在其他实施例中,所述通信指示还用于指示所述第一应用在所述终端上安装有第二应用时,调用所述第二应用从应用服务器获取网络资源并执行所述网络资源对应的业务服务指令;相应地,第一处理单元1003,还用于在所述第一应用与所述第二应用建立通信连接之后,通过所述第一应用向所述第二应用发送业务服务调用请求,所述业务服务调用请求用于请求所述第二应用从所述应用服务器获取网络资源并执行所述网络资源对应的业务服务指令。
在其他实施例中,第一处理单元1003,还用于在所述第一应用根据所述服务监听地址,向设置有所述第一应用的终端上的所述目的端口号对应的通信端口发送通信请求之后,若在预设时长内,所述第一应用未接收到通信响应,所述通信响应用于确认所述终端上安装有第二应用,所述第一应用从所述应用服务器获取所述网络资源。
在其他实施例中,所述网络资源为软件安装包,所述网络资源对应的业务服务指令为下载并安装所述软件安装包;相应地,第一处理单元1003,还用于在所述第一应用向所述第二应用发送业务服务调用请求之后,通过所述第二应用向所述应用服务器发送请求下载所述软件安装包的下载请求;通过所述第二应用接收所述应用服务器发送的携带有所述软件安装包的下载响应,并在所述软件安装包下载完成后在所述终端上安装所述软件安装包。
在其他实施例中,当终端上安装有第二应用时;所述装置还包括:监听单元1004,监听单元1004用于通过所述第二应用监听发送到所述目的端口号对应的通信端口的所述通信请求;若监听到所述通信请求,响应于所述通信请求,通过所述第二应用向所述第一应用发送用于确认所述终端上安装有所述第二应用的通信响应。
需要说明的是,当终端上未安装有第二应用时,监听单元1004不是同一终端不同应用间通信的装置所必须的组成单元。
在其他实施例中,监听单元1004还用于在通过所述第二应用监听发送到所述目的端口号对应的通信端口的所述通信请求之前,创建所述第二应用的监听进程;
监听单元1004,还用于利用所述监听进程监听所述通信请求。
在本发明其他实施例中,所述装置还可以包括:第二处理单元1005,第二处理单元1005用于在所述通过所述第二应用向所述第一应用发送用于确认所述终端上安装有所述第二应用的通信响应之后,通过所述第二应用向所述第一应用发送用于请求与所述第一应用建立通信连接的连接建立请求;通过所述第二应用接收所述第一应用发送的用于表示所述第一应用与所述第二应用之间的通信连接已经建立完成的连接建立响应。
需要说明的是,当终端上未安装有第二应用时,第二处理单元1005不是同一终端不同应用间通信的装置所必须的组成单元。
在其他实施例中,第二处理单元1005还用于在所述第一应用与所述第二应用建立通信连接之后,通过所述第二应用接收所述第一应用发送的携带有业务服务调用参数的业务服务调用请求,所述业务服务调用请求用于请求所述第二应用从应用服务器获取网络资源并执行所述网络资源对应的业务服务指令;通过所述第二应用向所述应用服务器发送携带有所述业务服务调用参数的校验请求;通过所述第二应用接收所述应用服务器发送的携带有所述业务服务调用参数的校验结果的校验响应;根据所述校验结果确定是否通过所述第二应用从所述应用服务器获取所述网络资源并执行所述网络资源对应的业务服务指令。
在其他实施例中,第一获取单元1001,还用于在第一应用获取携带有第二应用的服务监听地址的通信指示之前,通过所述第一应用从应用服务器接收包含所述第二应用的服务监听地址的网页;
第一获取单元1001,还用于通过所述第一应用根据所述网页生成携带有所述通信指示的脚本标签。
进一步地,第一获取单元1001,还用于在通过所述第一应用从所述应用服务器接收包含所述第二应用的服务监听地址的网页之后,通过所述第一应用在所述网页中接收用于标识待获取网络资源的资源标识的的输入指令;根据所述输入指令获取所述资源标识对应的业务服务调用参数;根据所述业务服务调用参数和所述服务监听地址生成第二脚本标签。
本发明实施例的同一终端不同应用间通信的终端可用于执行图1至图9所示任一同一终端不同应用间通信的方法,本发明实施例的其他技术方案细节和技术效果具体可参考图1至图9所示实施例中的相关描述。
实施例七:
基于前述实施例,本发明的实施例提供一种终端,该终端可以用于执行上述实施例所述的同一终端不同应用间通信的方法,图11为本发明的实施例提供的终端的结构示意图,参照图11所示,该终端包括:通信接口1101、处理器1102,其中:
通信接口1101,用于发送通信请求用于确定设置有第一应用的终端上是否安装有第二应用;
处理器1102,用于通过第一应用获取携带有所述第二应用的服务监听地址的通信指示,所述服务监听地址包括所述第二应用监听的目的端口号;第一应用根据所述服务监听地址,向所述终端上的所述目的端口号对应的通信端口发送所述通信请求;若所述第一应用接收到通信响应,所述通信响应用于确认所述终端上安装有所述第二应用,通过所述第一应用与所述第二应用建立通信连接。
其中,,所述通信指示用于指示所述第一应用在所述终端上安装有所述第二应用时,与所述第二应用建立通信连接。
本实施例中各个器件之间的交互过程,可以参照上述实施例提供的同一终端不同应用间通信的方法中的交互过程,此处不再赘述。
本发明实施例的终端可以用于执行上述实施例所述的同一终端不同应用间通信的方法,本发明实施例的其他技术方案细节和技术效果与图1至图9所示同一终端不同应用间通信的方法类似,具体可参考图1至图9所示实施例中的相关描述。
实施例八:
基于前述实施例,本发明的实施例提供一种计算机存储介质,该计算机存储介质中存储有计算机可执行指令,该计算机可执行指令用于执行上述实施例提供的同一终端不同应用间通信的方法。
本发明实施例的其他技术方案细节和技术效果与图1至图9所示同一终端不同应用间通信的方法类似,具体可参考图1至图9所示实施例中的相关描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (12)
1.一种同一终端不同应用间通信的方法,其特征在于,所述方法包括:
第二应用创建监听进程,所述监听进程为本地WebServer进程,并开始监听发送到目的端口号的通信请求;
第一应用获取携带有所述第二应用的服务监听地址的通信指示,所述服务监听地址包括预设的目的网络地址,以及所述第二应用监听的通信端口的目的端口号;所述通信指示用于指示第一应用调用第二应用获取网络资源并执行网络资源对应的业务服务指令;
所述第一应用根据所述目的网络地址和所述目的端口号,向所述目的端口号对应的通信端口发送用于请求建立通信连接的通信请求;
所述第二应用在监听到所述通信请求时,向所述第一应用发送用于表示终端上安装有所述第二应用的通信响应;
建立所述第一应用与所述第二应用的通信连接;
其中,所述目的网络地址为本机回送地址或者所述终端的本地网络地址或者预设的域名,所述域名的解析地址为本机回送地址;
其中,当所述服务监听地址中的目的网络地址为所述域名时,所述根据所述目的网络地址和所述目的端口号向所述目的端口号对应的通信端口发送用于请求建立通信连接的通信请求包括:向地址解析服务器发送携带有所述域名的地址解析请求;接收携带有所述域名的解析地址的地址解析响应:根据所述域名的解析地址和所述目的端口号发送所述通信请求。
2.根据权利要求1所述的方法,其特征在于,所述通信请求还携带有所述第一应用使用的本地网络地址和所述第一应用使用的源端口号;
相应地,所述第一应用与所述第二应用建立通信连接,包括:根据所述目的网络地址、所述目的端口号、所述本地网络地址和所述源端口号,建立所述通信连接。
3.根据权利要求1所述的方法,其特征在于,
在所述第一应用与所述第二应用建立通信连接之后,所述方法还包括:所述第一应用向所述第二应用发送业务服务调用请求,所述业务服务调用请求用于请求所述第二应用从应用服务器获取所述网络资源并执行所述网络资源对应的业务服务指令。
4.根据权利要求3所述的方法,其特征在于,所述网络资源为软件安装包,所述网络资源对应的业务服务指令为下载并安装所述软件安装包;
相应地,在所述第一应用向所述第二应用发送业务服务调用请求之后,所述方法还包括:所述第二应用向所述应用服务器发送请求下载所述软件安装包的下载请求;所述第二应用接收所述应用服务器发送的携带有所述软件安装包的下载响应,并在所述软件安装包下载完成后在所述终端上安装所述软件安装包。
5.根据权利要求1所述的方法,其特征在于,所述终端上安装有所述第二应用;相应地,所述方法还包括:
所述第二应用监听发送到所述目的端口号对应的通信端口的所述通信请求;
若监听到所述通信请求,响应于所述通信请求,向所述第一应用发送用于确认所述终端上安装有所述第二应用的通信响应。
6.根据权利要求5所述的方法,其特征在于,在所述向所述第一应用发送用于确认所述终端上安装有所述第二应用的通信响应之后,所述方法还包括:
所述第二应用向所述第一应用发送用于请求与所述第一应用建立通信连接的连接建立请求;
所述第二应用接收所述第一应用发送的用于表示所述第一应用与所述第二应用之间的通信连接已经建立完成的连接建立响应。
7.根据权利要求1所述的方法,其特征在于,在所述第一应用与所述第二应用建立通信连接之后,所述方法还包括:
所述第二应用接收所述第一应用发送的携带有业务服务调用参数的业务服务调用请求,所述业务服务调用请求用于请求所述第二应用从应用服务器获取网络资源并执行所述网络资源对应的业务服务指令;
所述第二应用向所述应用服务器发送携带有所述业务服务调用参数的校验请求;
所述第二应用接收所述应用服务器发送的携带有所述业务服务调用参数的校验结果的校验响应;
所述第二应用根据所述校验结果确定是否从所述应用服务器获取所述网络资源并执行所述网络资源对应的业务服务指令。
8.根据权利要求1-7任一所述的方法,其特征在于,在所述第一应用获取携带有第二应用的服务监听地址的通信指示之前,包括:所述第一应用从应用服务器接收包含所述第二应用的服务监听地址的网页;
所述终端上的第一应用获取携带有第二应用的服务监听地址的通信指示,包括:所述第一应用根据所述网页生成携带有所述通信指示的第一脚本标签。
9.根据权利要求8所述的方法,其特征在于,在所述第一应用从所述应用服务器接收包含所述第二应用的服务监听地址的网页之后,所述方法还包括:所述第一应用在所述网页中接收用于标识待获取网络资源的资源标识的输入指令;根据所述输入指令获取所述资源标识对应的业务服务调用参数;根据所述业务服务调用参数和所述服务监听地址生成第二脚本标签。
10.一种同一终端不同应用间通信的装置,其特征在于,所述装置包括:第一获取单元、第一发送单元、第一处理单元、监听单元和第二处理单元,其中:
所述监听单元,用于第二应用创建监听进程,所述监听进程为本地WebServer进程,并开始监听发送到目的端口号的通信请求;
所述第一获取单元,用于第一应用获取携带有所述第二应用的服务监听地址的通信指示,所述服务监听地址包括预设的目的网络地址,以及所述第二应用监听的通信端口的目的端口号;所述通信指示用于指示第一应用调用第二应用获取网络资源并执行网络资源对应的业务服务指令;
所述第一发送单元,用于所述第一应用根据所述目的网络地址和所述目的端口号,向所述目的端口号对应的通信端口发送用于请求建立通信连接的通信请求;
所述第二处理单元,用于所述第二应用在监听到所述通信请求时,向所述第一应用发送用于表示终端上安装有所述第二应用的通信响应;
所述第一处理单元,用于建立所述第一应用与所述第二应用的通信连接;
其中,所述目的网络地址为本机回送地址或者所述终端的本地网络地址或者预设的域名,所述域名的解析地址为本机回送地址;
其中,当所述服务监听地址中的目的网络地址为所述域名时,所述根据所述目的网络地址和所述目的端口号向所述目的端口号对应的通信端口发送用于请求建立通信连接的通信请求包括:向地址解析服务器发送携带有所述域名的地址解析请求;接收携带有所述域名的解析地址的地址解析响应:根据所述域名的解析地址和所述目的端口号发送所述通信请求。
11.一种终端,其特征在于,所述终端包括:通信接口、处理器,其中:
所述通信接口,用于发送通信请求,该通信请求用于确定设置有第一应用的所述终端上是否安装有第二应用;
所述处理器,用于通过第二应用创建监听进程,所述监听进程为本地WebServer进程,并开始监听发送到目的端口号的通信请求;以及通过所述第一应用获取携带有所述第二应用的服务监听地址的通信指示,所述服务监听地址包括预设的目的网络地址,以及所述第二应用监听的通信端口的目的端口号;所述通信指示用于指示第一应用调用第二应用获取网络资源并执行网络资源对应的业务服务指令;以及,通过所述第一应用根据所述目的网络地址和所述目的端口号,向所述终端上的所述目的端口号对应的通信端口发送所述通信请求;若所述第一应用接收到用于确认所述终端上安装有所述第二应用的通信响应,所述第一应用与所述第二应用建立通信连接;其中,所述目的网络地址为本机回送地址或者所述终端的本地网络地址或者预设的域名,所述域名的解析地址为本机回送地址;其中,当所述服务监听地址中的目的网络地址为所述域名时,所述根据所述目的网络地址和所述目的端口号向所述目的端口号对应的通信端口发送用于请求建立通信连接的通信请求包括:向地址解析服务器发送携带有所述域名的地址解析请求;接收携带有所述域名的解析地址的地址解析响应:根据所述域名的解析地址和所述目的端口号发送所述通信请求。
12.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机可执行指令,该计算机可执行指令用于执行权利要求1至9任一项所述的同一终端不同应用间通信的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710681762.6A CN107463453B (zh) | 2017-08-10 | 2017-08-10 | 同一终端不同应用间通信的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710681762.6A CN107463453B (zh) | 2017-08-10 | 2017-08-10 | 同一终端不同应用间通信的方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107463453A CN107463453A (zh) | 2017-12-12 |
CN107463453B true CN107463453B (zh) | 2023-06-27 |
Family
ID=60547349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710681762.6A Active CN107463453B (zh) | 2017-08-10 | 2017-08-10 | 同一终端不同应用间通信的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107463453B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108650285B (zh) | 2018-03-08 | 2020-04-21 | 深圳市盛铂科技有限公司 | 一种网络应用互相连接的方法及网络接入装置 |
CN110297663B (zh) * | 2018-03-21 | 2022-10-04 | 阿里巴巴集团控股有限公司 | 应用程序的唤醒方法、装置、终端和介质 |
CN108762732B (zh) * | 2018-05-30 | 2019-06-11 | 南京焦点领动云计算技术有限公司 | 一种HTML内联CSS和内联JavaScript合并方法 |
CN110708346B (zh) * | 2018-07-09 | 2023-03-21 | 北京高绎信息技术有限公司 | 信息处理系统和方法 |
CN111385265A (zh) * | 2018-12-29 | 2020-07-07 | 北京奇虎科技有限公司 | 一种iOS系统中的通信方法和装置 |
CN110830492B (zh) * | 2019-11-14 | 2021-11-12 | 浙江九州云信息科技有限公司 | 一种基于CoreDNS注册服务的边缘应用相互调度的方法及系统 |
CN115442027A (zh) * | 2019-12-26 | 2022-12-06 | 支付宝(杭州)信息技术有限公司 | Scheme请求校验方法、装置及设备 |
CN112165531A (zh) * | 2020-10-13 | 2021-01-01 | 广州欢网科技有限责任公司 | 基于监听设备端口实现的通信方法、设备和存储介质 |
CN112468611B (zh) * | 2020-11-27 | 2023-04-21 | 深圳市欢太科技有限公司 | 应用程序启动方法、终端设备及计算机存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7031441B1 (en) * | 1996-12-30 | 2006-04-18 | Intel Corporation | Method and apparatus for supporting on-demand connectivity for network applications |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140259028A1 (en) * | 2013-03-05 | 2014-09-11 | Google Inc. | Mechanism for establishing temporary background communication between applications |
US10110564B2 (en) * | 2015-10-14 | 2018-10-23 | Adobe Systems Incorporated | Detecting application state using a DNS-controlled proxy |
CN105897902B (zh) * | 2016-05-05 | 2018-10-19 | 北京思特奇信息技术股份有限公司 | 一种通过浏览器启动本地应用的方法及系统 |
-
2017
- 2017-08-10 CN CN201710681762.6A patent/CN107463453B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7031441B1 (en) * | 1996-12-30 | 2006-04-18 | Intel Corporation | Method and apparatus for supporting on-demand connectivity for network applications |
Also Published As
Publication number | Publication date |
---|---|
CN107463453A (zh) | 2017-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107463453B (zh) | 同一终端不同应用间通信的方法、装置、设备和存储介质 | |
EP2256646B1 (en) | Improvements in and relating to remote user interfaces | |
US20130246504A1 (en) | Method for subscribing to notification, apparatus and system | |
JP2005149387A (ja) | リアルタイムWeb共有システム | |
US11038968B2 (en) | Device and media redirection technique for a browser-based remote desktop client | |
EP1684169A1 (en) | System and Method for Provisioning Component Applications | |
GB2520246A (en) | Method for accessing business object resources and machine-to-machine communication environment | |
JP5347429B2 (ja) | ユニフォームリソースロケータ書換方法及び装置 | |
US9986057B2 (en) | UI framework support for portal systems | |
EP1684482A1 (en) | System and method for managing communication for component applications | |
US10873643B2 (en) | Unified content posting | |
WO2017211302A1 (zh) | 应用程序的开发方法、装置及系统 | |
WO2019119974A1 (zh) | 对象上传方法及装置 | |
US7418712B2 (en) | Method and system to support multiple-protocol processing within worker processes | |
US9866614B2 (en) | Methods for website version control using bucket cookies | |
KR20130072907A (ko) | 단축 url 생성 방법 및 이를 지원하는 시스템 | |
EP1715647A1 (en) | System and Method for Generic Data Mapping Between Wireless Component Applications and Application Data Sources | |
CN115296915B (zh) | 网页数据访问方法及其装置、设备、介质、产品 | |
CN115037572B (zh) | 一种应用请求的识别方法和装置 | |
US8745169B2 (en) | Intelligent system of unified content posting | |
JP5322972B2 (ja) | ウェブ画面復元装置及びウェブ画面復元方法及びウェブ画面復元プログラム | |
CN112948727A (zh) | 基于WebView的数据注入方法、装置、设备及存储介质 | |
EP1715646A1 (en) | System and method for connecting applications to heterogeneous backend servers via a gateway server | |
CN118018613A (zh) | 通信方法、系统、客户端、网关设备及全局负载均衡设备 | |
CN117014531A (zh) | 访问处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |