CN109218275A - 应用交互方法及装置 - Google Patents

应用交互方法及装置 Download PDF

Info

Publication number
CN109218275A
CN109218275A CN201710553148.1A CN201710553148A CN109218275A CN 109218275 A CN109218275 A CN 109218275A CN 201710553148 A CN201710553148 A CN 201710553148A CN 109218275 A CN109218275 A CN 109218275A
Authority
CN
China
Prior art keywords
virtual
target
preset
network request
network
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.)
Granted
Application number
CN201710553148.1A
Other languages
English (en)
Other versions
CN109218275B (zh
Inventor
陈顺
董红光
董俊杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201710553148.1A priority Critical patent/CN109218275B/zh
Priority to EP17913542.1A priority patent/EP3627322A4/en
Priority to PCT/CN2017/114508 priority patent/WO2018227899A1/zh
Priority to CN201780002125.XA priority patent/CN108139952B/zh
Publication of CN109218275A publication Critical patent/CN109218275A/zh
Priority to US16/699,416 priority patent/US10990461B2/en
Priority to US17/207,251 priority patent/US11360834B2/en
Application granted granted Critical
Publication of CN109218275B publication Critical patent/CN109218275B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application

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)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开提供一种应用交互方法及装置,其中,所述方法包括:在当前应用与预设虚拟服务器之间建立虚拟网络连接;基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,所述目标网络请求用于跳转到目标应用;从所述目标网络请求中提取目标应用参数,所述目标应用参数至少包括:目标应用的身份标识;根据所述目标应用参数打开所述目标应用。采用本公开提供的应用交互方法,通过用户终端的操作系统可以实现应用间的交互,不仅提高了应用间的交互效率,还确保了目标应用跳转的准确性,提升了终端的用户体验。

Description

应用交互方法及装置
技术领域
本公开涉及通信技术领域,尤其涉及一种应用交互方法及装置。
背景技术
随着计算机通信技术的发展,各种应用软件给人们带来了极好的通信体验。通过采用应用深度链接Deep Link技术还可实现应用间的跳转。例如,在应用A适配Deep Link技术的情况下,用户在应用A中触发一个用于跳转到另一应用的链接,可以通过Deep Link技术跳转到另一个应用比如应用B的一个内页。但是如果应用A中没有适配Deep Link技术,则上述应用间的页面跳转功能不可用,影响终端的用户体验。
发明内容
有鉴于此,本公开提供一种应用交互方法及装置,可以不受限于应用是否适配Deep Link技术,实现应用间页面的跳转。
根据本公开实施例的第一方面,提供了一种应用交互的方法,所述方法包括:在当前应用与预设虚拟服务器之间建立虚拟网络连接;
基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,所述目标网络请求用于跳转到目标应用;
从所述目标网络请求中提取目标应用参数,所述目标应用参数至少包括:目标应用的身份标识;
根据所述目标应用参数打开所述目标应用。
可选地,所述在当前应用与预设虚拟服务器之间建立虚拟网络连接,包括:
在当前应用与预设虚拟HTTP服务器之间,建立虚拟传输控制协议TCP连接;
所述基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,包括:
基于所述虚拟TCP连接,通过设置有钩子Hook函数的发送接口获取经由操作系统的目标HTTP请求。
可选地,所述在当前应用与预设虚拟HTTP服务器之间,建立虚拟传输控制协议TCP连接,包括:
根据所述网络请求获取虚拟域名;
通过第一域名解析接口将所述虚拟域名解析为对应的虚拟IP地址,并将所述虚拟IP地址返回给所述当前应用;
向第一预设网络连接接口发送所述虚拟IP地址;
通过所述第一预设网络连接接口将所述虚拟IP地址转换为所述虚拟HTTP服务器的地址,并发送TCP握手数据包;
通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
可选地,所述在当前应用与预设虚拟HTTP服务器之间,建立虚拟传输控制协议TCP连接,包括:
根据所述网络请求获取虚拟域名;
通过第二域名解析接口将所述虚拟域名解析为所述虚拟HTTP服务器的地址,并将所述虚拟HTTP服务器的地址返回给所述当前应用;
向网络连接接口发送所述虚拟HTTP服务器的地址;
通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
可选地,所述在当前应用与预设虚拟HTTP服务器之间,建立虚拟传输控制协议TCP连接,包括:
根据所述网络请求获取虚拟HTTP服务器的地址,将所述虚拟HTTP服务器的地址发送给网络连接接口;
通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
可选地,所述根据网络请求获取虚拟域名,包括:
获取HTTP地址中的域名信息;
根据所述域名信息查询预设虚拟域名白名单;
若所述预设虚拟域名白名单中包括所述域名信息,确定所述域名信息属于虚拟域名。
可选地,所述通过预设网络接口获取经由操作系统的目标网络请求,包括:
通过预设网络发送接口获取经由操作系统的网络请求;
确定所述网络请求中是否包括预设特征信息;
若所述网络请求中包括预设特征信息,确定所述网络请求为目标网络请求。
可选地,所述从目标网络请求中提取目标应用参数,包括:
通过所述预设网络发送接口从所述目标网络请求中提取目标应用参数。
可选地,所述从目标网络请求中提取目标应用参数,包括:
将所述目标网络请求发送给预设消息服务;
通过所述消息服务提取所述目标网络请求中的目标应用参数。
可选地,所述将所述目标网络请求发送给预设消息服务,包括:
通过所述预设网络发送接口将所述目标网络请求发送给预设消息服务;或者,
依次通过所述预设网络发送接口、防火墙、所述虚拟HTTP服务器,将所述目标网络请求传输至所述预设消息服务。
可选地,所述通过所述预设网络发送接口将所述目标网络请求发送给预设消息服务,包括:
通过所述预设网络发送接口将所述目标网络请求转发给所述消息服务;或者,
通过所述预设网络发送接口复制所述目标网络请求,将复制的目标网络请求发送给所述消息服务。
可选地,所述将目标网络请求发送给预设消息服务,包括:
过滤所述目标网络请求中的预设特征信息,获得过滤后的目标网络请求;
将所述过滤后的目标网络请求发送给所述预设消息服务。
可选地,所述通过所述消息服务提取所述目标网络请求中的目标应用参数,包括:
对所述目标网络请求进行信息验证;
从信息验证成功的有效网络请求中提取目标应用参数。
可选地,所述根据目标应用参数打开所述目标应用,包括:
根据所述目标应用的身份标识确定本地是否安装所述目标应用;
若本地未安装所述目标应用,下载和安装所述目标应用;
通过预设应用平台根据所述目标应用参数打开所述目标应用。
根据本公开实施例的第二方面,提供了一种应用交互装置,所述装置包括:
连接建立模块,被配置为在当前应用与预设虚拟服务器之间建立虚拟网络连接;
目标请求获取模块,被配置为基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,所述目标网络请求用于跳转到目标应用;
参数提取模块,被配置为从所述目标网络请求中提取目标应用参数,所述目标应用参数至少包括:目标应用的身份标识;
应用跳转模块,被配置为根据所述目标应用参数打开所述目标应用。
可选的,所述连接建立模块包括:
TCP连接建立子模块,被配置为在当前应用与预设虚拟HTTP服务器之间,建立虚拟传输控制协议TCP连接;
所述目标请求获取模块包括:
目标HTTP请求获取子模块,被配置为基于所述虚拟TCP连接,通过设置有钩子Hook函数的发送接口获取经由操作系统的目标HTTP请求。
可选的,所述TCP连接建立子模块包括:
虚拟域名获取单元,被配置为根据所述网络请求获取虚拟域名;
虚拟IP确定单元,被配置为通过第一域名解析接口将所述虚拟域名解析为对应的虚拟IP地址,并将所述虚拟IP地址返回给所述当前应用;
虚拟地址发送单元,被配置为向第一预设网络连接接口发送所述虚拟IP地址;
地址转换单元,被配置为通过所述第一预设网络连接接口将所述虚拟IP地址转换为所述虚拟HTTP服务器的地址,并发送TCP握手数据包;
第一连接建立单元,被配置为通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。可选的,所述TCP连接建立子模块包括:
虚拟域名获取单元,被配置为根据所述网络请求获取虚拟域名;
地址解析单元,被配置为通过第二域名解析接口将所述虚拟域名解析为所述虚拟HTTP服务器的地址,并将所述虚拟HTTP服务器的地址返回给所述当前应用;
地址发送单元,被配置为向网络连接接口发送所述虚拟HTTP服务器的地址;
握手数据发送单元,被配置为通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
第二连接建立单元,被配置为通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
可选的,所述TCP连接建立子模块包括:
地址获取单元,被配置为根据所述网络请求获取虚拟HTTP服务器的地址,将所述虚拟HTTP服务器的地址发送给网络连接接口;
握手数据发送单元,被配置为通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
第三连接建立单元,被配置为通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
可选的,所述虚拟域名获取单元包括:
域名获取子单元,被配置为获取HTTP地址中的域名信息;
查询子单元,被配置为根据所述域名信息查询预设虚拟域名白名单;
确定子单元,被配置为在所述预设虚拟域名白名单中包括所述域名信息的情况下,确定所述域名信息属于虚拟域名。
可选的,所述目标请求获取模块包括:
请求获取子模块,被配置为通过预设网络发送接口获取经由操作系统的网络请求;
检测子模块,被配置为确定所述网络请求中是否包括预设特征信息;
目标请求确定子模块,被配置为在所述网络请求中包括预设特征信息的情况下,确定所述网络请求为目标网络请求。
可选的,所述参数提取模块包括:
第一参数提取子模块,被配置为通过所述预设网络发送接口从所述目标网络请求中提取目标应用参数。
可选的,所述参数提取模块包括:
发送子模块,被配置为将所述目标网络请求发送给预设消息服务;
第二参数提取子模块,被配置为通过所述消息服务提取所述目标网络请求中的目标应用参数。
可选的,所述发送子模块包括:
第一发送单元,被配置为通过所述预设网络发送接口将所述目标网络请求发送给预设消息服务;或者,
第二发送单元,被配置为依次通过所述预设网络发送接口、防火墙、所述虚拟HTTP服务器,将所述目标网络请求传输至所述预设消息服务。
可选的,所述第一发送单元包括:
转发子单元,被配置为通过所述预设网络发送接口将所述目标网络请求转发给所述消息服务;或者,
备份发送子单元,被配置为通过所述预设网络发送接口复制所述目标网络请求,将复制的目标网络请求发送给所述消息服务。
可选的,所述发送子模块包括:
过滤单元,被配置为过滤所述目标网络请求中的预设特征信息,获得过滤后的目标网络请求;
发送单元,被配置为将所述过滤后的目标网络请求发送给所述预设消息服务。
可选的,所述第二参数提取子模块包括:
信息验证单元,被配置为对所述目标网络请求进行信息验证;
参数提取单元,被配置为从信息验证成功的有效网络请求中提取目标应用参数。
可选的,所述应用跳转模块包括:
检测子模块,被配置为根据所述目标应用的身份标识确定本地是否安装所述目标应用;
安装子模块,被配置为若本地未安装所述目标应用,下载和安装所述目标应用;
跳转子模块,被配置为通过预设应用平台根据所述目标应用参数打开所述目标应用。
根据本公开实施例的第三方面,提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面任一所述方法的步骤。
根据本公开实施例的第四方面,提供了一种应用交互装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
在当前应用与预设虚拟服务器之间建立虚拟网络连接;
基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,所述目标网络请求用于跳转到目标应用;
从所述目标网络请求中提取目标应用参数,所述目标应用参数至少包括:目标应用的身份标识;
根据所述目标应用参数打开所述目标应用。
本公开实施例提供的技术方案可以包括以下有益效果:
本公开中提供的应用交互方法,当用户想从当前应用界面中跳转到另一目标应用时,在应用双方没有适配Deep Link技术实现应用兼容的情况下,用户终端可以在当前应用和预设虚拟服务器之间建立虚拟网络连接,建立经由操作系统的通信通道,使得当前应用可以通过上述虚拟网络连接向操作系统发送网络请求时,操作系统中的预设网络接口可以监听到包含目标应用参数的目标网络请求,进而提取目标应用参数,并通过该目标应用参数为用户打开目标应用,增强了操作系统的功能,使应用间交互不受双方应用是否支持Deep Link技术的限制,提升了终端的用户体验。
本公开中,通过预设的虚拟HTTP服务器,在当前应用与虚拟HTTP服务器之间建立虚拟TCP连接通道,将当前应用发出的网络请求重定向到本地,以便操作系统中设置有钩子Hook函数的发送接口可以获取到携带目标应用参数的目标网络请求,进而提取目标应用参数并利用此参数打开目标应用页面。本公开通过建立稳定性的虚拟TCP连接,可以确保应用交互的可靠性;通过增设有钩子Hook函数的发送接口获取目标HTTP请求,由于发送接口属于操作系统的原有组件,本公开只需对发送接口进行简单参数配置使其具有目标网络请求识别功能,无需操作系统增设用于识别目标网络请求的专用监听组件,节约了系统资源。
本公开中,在建立虚拟TCP连接的过程中,操作系统的第一域名解析接口在获取到虚拟域名后,返回预设的虚拟IP地址,以使请求发送方比如Web浏览器向第一预设网络接口发送该虚拟IP地址。该第一预设网络连接接口可以将上述虚拟IP地址被修改为预设虚拟HTTP服务器的地址,并基于该地址向虚拟HTTP服务器发送握手数据包,确保网络请求发出方与虚拟HTTP服务器之间顺利建立虚拟TCP连接。本公开实施例中,利用第一域名解析接口和第一预设网络连接接口,可以在本地建立用于发送目标网络请求的虚拟网络传输通道,无需远程网络服务器参与,节约了无线通信系统资源。
本公开中,在建立虚拟TCP连接的过程中,操作系统的第二域名解析接口在获取到虚拟域名后,可以向当前应用返回预设的虚拟HTTP服务器地址,以使当前应用将该虚拟HTTP服务器地址发送给网络连接接口。网络连接接口基于该地址向虚拟HTTP服务器发送握手数据包,确保网络请求发出方与虚拟HTTP服务器之间顺利建立虚拟TCP连接。本公开实施例中,利用第二域名解析接口和网络连接接口,可以在本地快速建立虚拟网络传输通道,加快虚拟网络连接的建立。
本公开中,当前应用触发的网络请求中可以直接包含虚拟HTTP服务器的地址,在建立虚拟TCP连接的过程中,当前应用可以将该虚拟HTTP服务器地址发送给网络连接接口,后序网络连接接口基于该地址向虚拟HTTP服务器发送握手数据包,确保网络请求发出方与虚拟HTTP服务器之间顺利建立虚拟TCP连接,快速创建经过操作系统发送消息的消息通道。
本公开中,在根据网络请求获取虚拟域名的过程中,操作系统可以根据当前应用发送的域名信息,查询预设的虚拟域名白名单,快速判断当前域名是否属于虚拟域名,从而快速建立虚拟TCP连接。
本公开中,在从经由操作系统的网络请求如HTTP请求中识别目标网络请求时,可以根据目标网络请求中包含的预设特征信息,比如预设关键字、预设编码方式,快速识别出目标网络请求,提高目标网络请求的获取效率。
本公开中,操作系统可以通过预设网络发送接口从目标网络请求消息中提取目标应用参数,只需在原有网络发送接口的基础上,配置一些用于提取目标应用参数的信息,无需系统增设专用的信息提取组件,可以简化操作系统的架构,节约系统资源。
本公开中,操作系统可以通过预设的Message服务从目标网络请求消息中提取目标应用参数,一方面将目标网络请求的识别和解析过程解耦,提高目标网络请求的检测效率。另一方面,Message服务可以输出统一格式记录的目标应用参数,从而提高后序信息处理效率。
本公开中,操作系统将目标网络请求发送给Message服务的方式可以是:预设网络发送接口通过预设信息通道将目标网络请求直接发送给Message服务;或者,依次通过所述预设网络发送接口、防火墙、所述虚拟HTTP服务器,将所述目标网络请求传输至所述预设消息服务。前一种方式可以提高Message服务获取目标网络请求的效率;后一种方式,在目标网络请求中还包括正常网络请求数据的情况下,既能保证正常网络请求数据到达虚拟网络服务器,又可以确保目标网络请求传输至Message服务,提高网络请求传输的可靠性。
本公开中,操作系统将目标网络请求发送给Message服务的方式可以是:通过预设网络发送接口将目标网络请求拦截后转发给Message服务;或者,预设网络发送接口在识别出目标网络请求后,复制一份目标网络请求数据发送给Message服务;采用前一种方式,可以节约信息传输资源;采用后一种方式,在目标网络请求中还包括正常网络请求数据的情况下,既能保证正常网络请求数据按照相关信息发送方式被发送至虚拟网络服务器,又可以确保目标网络请求快速传输至Message服务,提高网络请求传输的可靠性。
本公开中,操作系统将目标网络请求发送给Message服务之前,还可以滤除目标网络请求中的预设特征信息。由于预设特征信息仅用于识别目标网络请求,对于Message服务已属于冗余信息,因此,可以避免冗余信息占用传输资源,以及提高Message服务提取目标应用参数的效率。
本公开中,预设消息服务在提取目标应用参数之前,还可以进一步对目标网络请求进行信息验证,确保即将解析的目标网络请求属于确定包含有目标应用参数的有效网络请求,避免误将包含预设特征信息的其他网络请求当作有效网络请求进行解析,提高目标应用参数提取的效率和准确性。
本公开中,若目标应用可以是下载和安装均无需用户确认的新应用。在跳转到目标应用的过程中,操作系统获取到目标应用参数后,可以首先根据目标应用的身份标识确定用户终端当前是否安装有上述目标应用,若没有,可以自动下载安装目标应用的数据包,并通过预设应用平台根据目标应用参数打开目标应用,实现目标应用的自动安装和精确跳转,跳转过程无需用户与终端进行信息交互,提高应用交互的智能化程度,进一步提升终端用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开根据一示例性实施例示出的一种应用交互方法的流程图;
图2是本公开根据一示例性实施例示出的另一种应用交互方法的流程图;
图2-1是本公开根据一示例性实施例示出的一种应用交互方法的示意图;
图3是本公开根据一示例性实施例示出的另一种应用交互方法的流程图;
图4是本公开根据一示例性实施例示出的另一种应用交互方法的流程图;
图4-1是本公开根据一示例性实施例示出的另一种应用交互方法的示意图;
图5是本公开根据一示例性实施例示出的另一种应用交互方法的流程图;
图5-1是本公开根据一示例性实施例示出的另一种应用交互方法的示意图;
图6是本公开根据一示例性实施例示出的另一种应用交互方法的流程图;
图7是本公开根据一示例性实施例示出的另一种应用交互方法的流程图;
图8是本公开根据一示例性实施例示出的另一种应用交互方法的流程图;
图9-1是本公开根据一示例性实施例示出的一种应用交互方法的示意图;
图9-2是本公开根据一示例性实施例示出的另一种应用交互方法的示意图;
图9-3是本公开根据一示例性实施例示出的另一种应用交互方法的示意图;
图10是本公开根据一示例性实施例示出的另一种应用交互方法的流程图;
图11-1是本公开根据一示例性实施例示出的一种应用交互的应用场景示意图;
图11-2是相关技术中一种应用交互的应用场景示意图;
图12是本公开根据一示例性实施例示出的一种应用交互装置的框图;
图13是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图14是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图15是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图16是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图17是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图18是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图19是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图20是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图21是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图22是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图23是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图24是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图25是本公开根据一示例性实施例示出的另一种应用交互装置的框图;
图26是本公开根据一示例性实施例示出的用于应用交互装置的一结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本公开提供了一种应用交互方式,不受限于Deep Link技术,即可实现从一个应用界面跳转到另一目标应用的页面。
基于此,本公开提供了一种应用交互方法,当一个应用发出的、用于指示跳转到另一应用的目标网络请求经过用户终端的操作系统时,可以通过预设网络接口检测出上述目标网络请求,并根据该目标网络请求中包含的目标应用参数跳转到目标应用。其中,上述预设网络接口可以是在现有网络接口如DNS(Domain Name System,域名系统)接口、网络连接Connect接口、发送Send接口等的基础上、增设了钩子Hook函数的接口,可以统称为Hooked接口即挂钩接口。本公开中,每一种Hooked接口除了具有相关技术中的功能外,还具有本公开赋予的特定功能,下面结合实施例进行详细说明。
参照图1根据一示例性实施例示出的一种应用交互方法的流程图,该方法可以包括以下步骤:
在步骤11中,在当前应用与预设虚拟服务器之间建立虚拟网络连接;
本公开实施例中,上述当前应用可以是用户终端中安装的各种应用。例如,当前应用属于相关技术中的第一类应用,该第一类应用的下载、安装过程需要用户确认,也就是说,第一类应用的安装包或更新数据包的下载或安装,需要经过接收到用户触发的确认信息后才执行下载或安装。上述第一类应用可以是:浏览器、米聊、微信等应用软件。
上述当前应用也可以是其它类型的应用,比如一种新应用,该新应用的下载、安装过程无需用户确认。
本公开实施例中,用户终端比如智能手机的操作系统在获取到包含目标应用参数的目标网络请求后,可以根据该网络请求打开目标应用,或者,在用户终端未安装目标应用的情况下,跳转到可以下载目标应用的应用商店,或者,向提供目标应用下载安装包的服务端发送下载请求等操作。
在处理面向连接的网络请求时,例如,TCP(Transmission Control Protocol,传输控制协议),根据TCP协议的规定,发送请求的客户端即当前应用在向网络服务器发送请求数据之前,首先需要与网络服务器之间建立可靠的网络连接。
由于本公开的主要目的是使操作系统可以监听到目标网络请求,不考虑网络请求的接收方是否向当前应用返回请求获取的信息。因此可以预设一个虚拟网络服务器,使当前应用可以与该虚拟网络服务器建立虚拟网络连接。
上述虚拟服务器可以是设置于用户终端本地的虚拟网络服务器,如HTTP(HyperText Transfer Protocol,超文本传输协议)服务器。当前应用可以与上述本地HTTP服务器建立虚拟TCP连接。
在本公开实施例中,上述当前应用可以是能够请求接入网络的应用,比如是Web浏览器或网络代理服务程序,其中,上述网络代理服务程序比如是米聊、微信、QQ等即时通信应用或其他可以请求接入网络的应用。
下面以当前应用是Web浏览器、虚拟服务器为设置于本地的虚拟HTTP服务器为例,对本公开提供的应用交互方法进行详细说明。
本公开实施例中,上述步骤11具体为在当前应用与虚拟HTTP服务器之间建立虚拟TCP连接时,根据虚拟HTTP服务器地址的解析过程不同,如图2-1、4-1、5-1,步骤11的具体实施过程至少包括以下三种情况:
第一种情况,当前应用将虚拟域名发送给操作系统的第一预设域名解析接口;以下将结合图2-1所示的另一种建立虚拟网络连接的示意图进行详细说明。
参见图2根据一示例性实施例示出的另一种应用交互方法的流程图,上述步骤11可以包括:
在步骤11-11中,获取网络请求中的虚拟域名;
示例性的,当用户在Web浏览器的页面中触发预设页面元素,使浏览器发出网络请求时,比如用户在Web浏览器的某一页面中点击某一网络链接,假设该网络链接地址即HTTP地址为:Http://abc.com/efg****。Web浏览器首先获取上述HTTP地址中的域名信息,即:abc.com,并将该域名信息“abc.com”发送给操作系统的预设域名解析接口,如图2-1中的步骤S1-1、S1-2所示。该预设域名解析接口具有获取虚拟域名的功能,参见图3根据一示例性实施例示出的另一种应用交互方法的流程图,上述步骤11-11可以包括:
在步骤101中,获取HTTP地址中的域名信息;
如上,步骤101具体为:接收当前应用如Web浏览器根据网路请求发送的域名信息。
在步骤102中,通过Hooked DNS接口根据所述域名信息查询预设虚拟域名白名单;
本公开实施例中,Hooked DNS接口具有识别虚拟域名与实际域名的功能。
在本公开一实施例中,操作系统中可以预设有一个虚拟域名白名单,上述白名单记录了所有的虚拟域名信息。Hooked DNS接口在接收到Web浏览器发送的域名信息后,可以根据该域名信息遍历上述虚拟域名白名单,确定Web浏览器发送的域名abc.com是否为虚拟域名。
在步骤103中,若所述预设虚拟域名白名单中包括所述域名信息,确定所述域名信息属于虚拟域名。
若Hooked DNS接口在上述预设虚拟域名白名单中匹配到abc.com,则确定域名“abc.com”属于虚拟域名。即该域名指向的Web服务器是不存在的。
在步骤11-12中,通过第一预设域名解析接口将所述虚拟域名解析为对应的虚拟IP地址,并将所述虚拟IP地址返回给所述当前应用;
本公开实施例中,第一预设域名解析接口可以将虚拟域名信息翻译成虚拟IP地址。本公开一实施例中,第一预设域名解析接口可以是增设有Hook函数的DNS接口,可以表示为:第一Hooked DNS接口。
本公开一实施例中,第一Hooked DNS接口可以根据虚拟域名查询预置的虚拟IP地址列表,输出该虚拟域名对应的一个虚拟IP地址,并将该虚拟IP地址发送给Web浏览器。其中,上述虚拟IP地址列表包括:虚拟域名与虚拟IP地址的对应关系,示例性的,如表一所示:
虚拟域名 虚拟IP地址
abc.com (1.2.3.4)
表一
第一Hooked DNS接口根据域名“abc.com”查询表一,输出对应的虚拟IP地址(1.2.3.4),并发送给Web浏览器,如图2-1中的步骤S1-3、S1-4所示。
此处需要说明的是,在本公开另一实施例中,上述第一预设域名解析接口也可以同时具备识别虚拟域名信息和将虚拟域名信息翻译成虚拟IP地址的功能,即上述步骤11-11、11-12均由第一预设域名解析接口执行。
在步骤11-13中,向第一预设网络连接接口发送所述虚拟IP地址;
Web浏览器获取到abc.com对应的虚拟IP地址之后,假设该虚拟IP地址为:(1.2.3.4),将该虚拟IP地址发送给第一预设网络连接接口,即Connect接口如图2-1中的步骤S1-5所示。
在步骤11-14中,通过所述第一预设网络连接接口将所述虚拟IP地址转换为所述本地HTTP服务器的地址,并发送TCP握手数据包;
本公开实施例中,第一预设网络连接接口可以将当前应用发送的虚拟IP地址修改为虚拟服务器的地址。例如,该预设网络连接接口可以是增设有Hook函数的Connect接口,可以表示为:Hooked Connect接口。
在本公开一实施例中,操作系统中可以预设有第一虚拟地址列表,上述第一虚拟地址列表包括:虚拟IP地址与虚拟服务器地址的对应关系。在一实施例中,该第一虚拟地址列表可以设置于Hooked Connect接口中。Hooked Connect接口确定当前应用发送的IP地址为虚拟IP地址时,可以查询第一虚拟地址列表,获得与上述虚拟IP地址对应的虚拟服务器地址。
示例性地,如图2-1所示,Hooked Connect接口接收到Web浏览器发送的虚拟IP地址(1.2.3.4),查询表二所示的第一虚拟地址列表:
虚拟IP地址 虚拟HTTP服务器的地址
(1.2.3.4) (127.0.0.1)
表二
根据表二,确定本地虚拟HTTP服务器的IP地址为(127.0.0.1);然后基于所述本地虚拟HTTP服务器的IP地址(127.0.0.1)生成TCP握手数据包,并向本地HTTP服务器发送所述TCP握手数据包,如图2-1中的步骤S1-6、S1-7所示。
在步骤11-15中,通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
本公开实施例中,Hooked Connect接口除了具有上述修改虚拟IP地址的功能外,还具有正常的Connect接口功能,即向本地虚拟HTTP服务器发送握手数据包。
本地虚拟HTTP服务器接收到握手数据包之后,向Web浏览器返回应答消息(response),至此,完成一次握手过程,如图2-1中的步骤S1-8所示。
在TCP/IP协议中,TCP协议要求通过三次握手提供可靠的连接服务。后序两次握手过程重复执行上述步骤11-11~步骤11-15,三次握手成功之后,成功建立虚拟TCP连接。
第二种情况,当前应用将虚拟域名发送给第二预设域名解析接口;以下将结合图4-1所示的另一种建立虚拟网络连接的示意图进行详细说明。
参照图4根据一示例性实施例示出的另一种应用交互方法的流程图,可以包括以下步骤:
在步骤11-21中,根据所述网络请求获取虚拟域名;
该步骤的实施过程与上述步骤11-11类似,参见步骤11-11即可,此处不再赘述。
在步骤11-22中,通过第二域名解析接口将所述虚拟域名解析为所述虚拟HTTP服务器的地址,并将所述虚拟HTTP服务器的地址返回给所述当前应用;
本公开实施例中,上述第二域名解析接口可以表示为第二Hooked DNS接口。该第二Hooked DNS接口可以将当前应用发送的虚拟域名直接解析为虚拟HTTP服务器的地址。
本公开实施例中,操作系统中可以预置有第二虚拟地址列表,该第二虚拟地址列表包括:虚拟域名与虚拟HTTP服务器地址的对应关系。在本公开一实施例中,第二虚拟地址列表可以具体设置于操作系统的第二Hooked DNS接口。第二Hooked DNS接口在接收到当前应用发送的域名信息后,可以根据该域名信息查询第二虚拟地址列表,获得与所述虚拟域名对应的虚拟服务器地址。
参见图4-1中的步骤S2-3,第二Hooked DNS接口接收到Web浏览器发送的域名abc.com后,查询以下表三:
虚拟域名 虚拟HTTP服务器的地址
abc.com (127.0.0.1)
表三
确定虚拟域名abc.com对应的虚拟HTTP服务器地址:127.0.0.1。进而将该地址返回给Web浏览器,如图4-1中的步骤S2-4所示。
在步骤11-23中,向网络连接接口发送所述虚拟HTTP服务器的地址;
如上示例,Web浏览器获取到虚拟HTTP服务器的IP地址(127.0.0.1)之后,向网络连接接口发送该虚拟HTTP服务器的地址,如图4-1中的步骤S2-5所示。
在步骤11-24中,通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
由于上述IP地址(127.0.0.1)属于实际存在的IP地址,因此,网络接口可以基于虚拟HTTP服务器的IP地址向本地虚拟HTTP服务器发送TCP握手数据包,如图4-1中的步骤S2-6所示。上述TCP握手数据包中包含有虚拟HTTP服务器的地址(127.0.0.1)。
在步骤11-25中,通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
与上述步骤11-15类似,本地虚拟HTTP服务器接收到握手数据包之后,向Web浏览器返回应答消息(response),至此,完成一次握手过程,如图4-1中的步骤S2-7所示。
在TCP/IP协议中,TCP协议要求通过三次握手提供可靠的连接服务。后序两次握手过程重复执行上述步骤11-21~步骤11-25,三次握手成功之后,成功建立虚拟TCP连接。
第三种情况,当前应用可以直接将虚拟HTTP服务器的地址发送给Connect接口;以下将结合图5-1所示的另一种建立虚拟网络连接的示意图进行详细说明。
参照图5根据一示例性实施例示出的另一种应用交互方法的流程图,可以包括以下步骤:
在步骤11-31中,根据所述网络请求获取虚拟HTTP服务器的地址,将所述虚拟HTTP服务器的地址发送给网络连接接口;
本公开实施例中,当前应用在预设触发条件下发送的网络请求中可以直接包括虚拟服务器的地址。示例性的,如图5-1所示,Web浏览器发送的网络请求如URL中直接包含有虚拟HTTP服务器的地址,比如:Http://127.0.0.1/efg****。
在浏览器根据该网络请求建立TCP连接的过程中,可以从该网络请求中提取目的端地址(127.0.0.1),发送给网络连接接口,如图5-1中的步骤S3-1、S3-2所示。
在步骤11-32中,通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
该步骤与上述步骤11-24类似,此处不再赘述。示例性的,可以参见图5-1中的步骤S3-3。在步骤11-33中,通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
该步骤与上述步骤11-15、步骤11-25类似,本地虚拟HTTP服务器接收到握手数据包之后,向Web浏览器返回应答消息(response),至此,完成一次握手过程,如图5-1中的步骤S3-4所示。
在TCP/IP协议中,TCP协议要求通过三次握手提供可靠的连接服务。后序两次握手过程重复执行上述步骤11-31和步骤11-33,三次握手成功之后,成功建立虚拟TCP连接。
此处需要说明的是,以上仅以建立虚拟TCP连接作为示意,本公开中,建立虚拟网络连接包括但不限于建立虚拟TCP连接,还可以是遵从其他网络协议建立虚拟网络连接。本公开可以在本地设置虚拟网络服务器,利用重定向技术建立虚拟网络消息传输通道,使操作系统中的预设网络接口可以检测出包含目标应用参数的目标网络请求。
在步骤12中,基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,所述目标网络请求用于跳转到目标应用;
本公开实施例中,可以通过预设网络接口,比如增加了Hook函数的send接口,从获取到的网络请求中识别出目标网络请求。上述目标网络请求用于请求跳转到目标应用。
参见图6根据一示例性实施例示出的另一种应用交互方法的流程图,上述步骤12中获取经由操作系统的目标网络请求,可以包括:
在步骤121中,通过预设网络发送接口获取经由操作系统的网络请求;
如上示例,一旦建立了TCP连接,Web浏览器就会根据上述网络请求发送请求数据。以HTTP请求为例,按照请求方法不同,上述HTTP请求可以是:GET、POST、HEAD、OPTIONS、PUT、DELETE、TARCE等请求。本公开实施例中,Web浏览器可以调用操作系统中的Send接口将上述网络请求数据发送给服务端。本公开实施例中,上述发送接口可以是Hooked Send接口。
在步骤122中,确定所述网络请求中是否包括预设特征信息;
本公开实施例中,目标网络请求包括:预设特征信息和目标应用参数。
其中,上述预设特征信息用于识别该网络请求中是否包含目标应用参数,可以是预设关键字或预设编码方式等信息。上述预设特征信息可以是目标应用供应商提供,并预置在用户终端中。
以GET请求数据包为例,上述请求数据中可能包含目标应用参数,也可能不包含上述目标应用参数。因此,Hooked Send接口需要根据预设策略初步判断当前网络请求数据包中是否包括目标应用参数,以确定对该网络请求数据的后续处理。
本公开实施例中,Hooked Send接口可以通过判断Web浏览器发送的网络请求数据中是否包括预设特征信息的方式,快速识别当前网络请求是否为目标网络请求。
假设上述预设特征信息为预设关键字,上述关键字可以是预设标记符、预设字符串如“111”等,则Hooked Send接口在获取到HTTP请求后,判断该请求中是否包括上述预设关键字;如果包括,执行步骤123;反之,如果当前请求中不包括上述预设关键字,则确定该HTTP请求属于正常网络请求数据,可以通过Hooked Send接口中包括的Send模块,经防火墙发送给网络服务端。
在步骤123中,若所述网络请求中包括预设特征信息,确定所述网络请求为目标网络请求。
如上示例,若Hooked Send接口判定当前HTTP请求数据中包括预设特征信息,确定该HTTP请求属于目标HTTP请求。
在步骤13中,从所述目标网络请求中提取目标应用参数,所述目标应用参数至少包括:目标应用的身份标识。
如上所述,本公开确定的目标网路请求中包括:目标应用参数。上述目标应用参数至少包括:目标应用的身份标识,可以表示为APP ID;还可以包括其它信息,比如页面名称,即详情页名称;页面参数,即详情页参数;指令参数,目标应用可以根据该指令参数执行相应的操作,如弹出一个对话框,打开指定音频文件、视频文件等,本公开对目标应用参数不作限定。
本公开实施例中,可以采用以下任一方式从目标网络请求数据中提取目标应用参数:
第一种方式,通过Hooked Send接口从目标网络请求中提取目标应用参数,参见图9-1根据一示例性实施例示出的一种应用交互方法示意图。
Hooked Send接口在识别出目标网络请求后,可以解析请求数据包,然后按照预设策略如根据预设关键字段APP ID,从解析出的请求数据中提取目标应用参数。以目标网络请求为目标HTTP请求为例,上述过程可以参见图9-1中的步骤S103、S1070。之后,将提取出的目标应用参数发送给可以运行目标应用的预设应用平台,参见图9-1中的步骤S1080,以使该预设应用平台根据目标应用参数打开目标应用,示理性的,参见图9-1中的步骤S1090。
示例性的,假设当前应用发送的目标HTTP请求为GET请求,Hooked Send接口解析出的请求数据为:GET:/APP ID=efg,则Hooked Send接口可以根据关键字段APP ID从上述解析出的请求数据中提取目标应用的身份标识:efg。
第二种方式,通过预设消息Message服务从目标网络请求中提取目标应用参数,参见图9-2、9-3根据一示例性实施例示出的另一种应用交互方法示意图。
参见图7根据一示例性实施例示出的另一种应用交互方法的流程图,上述步骤13可以包括:
在步骤131中,将所述目标网络请求发送给预设消息Message服务;
本公开一实施例中,操作系统的Hooked Send接口在识别出目标网络请求后,可以将预设目标网络请求数据发送给预设Message服务。即Hooked Send接口输出的目标网络请求如目标HTTP请求中还包括预设特征信息。
在本公开另一实施例中,Hooked Send接口在发送目标网络请求数据之前,还可以去除原始目标网络数据中的预设特征信息,获得过滤后的目标网络请求数据,之后将过滤后的目标网络请求数据发送给预设Message服务,如图9-2中的步骤S105所示。由于预设特征信息主要用于识别目标网络请求,在后续信息处理过程中,该预设特征信息属于冗余信息,因此,本公开实施例中,可以将原始目标HTTP请求中的预设特征信息去除后,再发送给Message服务,如图9-2中的步骤S106所示,从而减轻Message服务的数据处理负担,提高Message服务的信息处理效率。
上述实施例中,将目标网络请求的解析交由预设消息Message服务处理,对目标网络请求的识别过程和解析过程进行解耦,即Hooked Send接口只识别目标网络请求,不对目标网路请求数据包进行解析,可以提高Hooked Send接口对目标网络请求的检测效率。
本公开中,上述步骤131中,Hooked Send接口将目标网络请求发送给Message服务的实施过程,可以包括以下两种情况:
第一种情况,Hooked Send接口直接将目标网络请求发送给Message服务,参见图9-2根据一示例性实施例示出的另一种应用交互方法示意图;
也就是说,Hooked Send接口可以经预设消息通道直接将原始的或过滤后的目标网络请求数据包,发送给Message服务。以目标网络请求为目标HTTP请求数据为例,上述目标网络请求的发送过程可以参见图9-2中的步骤S104。
该第一种情况下,Hooked Send接口可以采用以下两种方式获取发送给Message服务的目标网络请求数据:
方式一、拦截目标网络请求数据,直接转发给Message服务;
本公开实施例中,可能并不关心本地虚拟HTTP服务器是否针对目标HTTP请求返回应答消息,因此,Hooked Send接口可以将上述目标HTTP请求进行拦截,进而转发给Message服务。
方式二、复制一份目标网络请求数据,直接发送给Message服务。
在本公开一实施例中,若目标网络请求中还包括正常网络请求数据时,上述正常网络请求数据为请求虚拟服务器提供网络服务的数据,为了不影响正常网络请求数据传输至虚拟服务器,Hooked Send接口在识别出目标网络请求数据之后,将原始的或过滤后的目标网络请求数据复制一份,通过预设消息通道直接发送给Message服务进行后序信息处理。
第二种情况,Hooked Send接口间接将目标网络请求发送给Message服务,参见图9-3根据一示例性实施例示出的另一种应用交互方法示意图;
本公开一实施例中,Hooked Send接口在确定目标网络请求之后,可以对目标网络消息作上标记,比如,增设用于指示转发给Message服务的预设标记符“M”,通过常规消息通道发送给Message服务。即将该目标网络请求数据发送给其包含的Send模块,经防火墙发送给上述虚拟服务器,之后由虚拟服务器根据上述预设标记符,将上述目标网络请求数据转发给预设Message服务。以目标网络请求为目标HTTP请求数据为例,上述目标网络请求的发送过程可以参见9-3中的步骤S1041~S1043。
仍以目标网络请求是目标HTTP请求为例,在第二种情况下,Hooked Send接口在识别出目标HTTP请求数据包后,可以对该目标HTTP请求数据包作一个简单标记比如字符“M”,以使本地HTTP服务器检测到目标HTTP请求数据包标记有“M”后,将该目标HTTP请求数据包发送给Message服务。
此种情况下,当目标网络请求中还包括正常网络请求数据时,不仅可以使网络服务器获取正常网络请求数据,还可以将目标网络请求数据发送给预设Message服务进行目标应用参数的提取。
在步骤132中,通过所述Message服务提取所述目标网络请求中的目标应用参数。
本公开实施例中,Message服务可以解析目标网络请求数据包,从解析出的信息中提取目标应用参数。
此外,Message服务还可以将提取出的目标应用参数采用统一格式进行记录,比如,采用固定长度的字符串进行记录,获得预设格式的目标应用参数。假设以三个字节进行记录,一个字节一般为8bit位,第一个字节用于记录目标应用的身份标识,第二个字节用于记录页面名称,第三个字节用于记录页面参数。若其中一个参数为空,则将相应字节全部置为0。可以理解的是,根据预设参数信息的最大数据量设置其占用字节的数量,并不局限于一个字节。
Message服务输出统一格式的目标应用参数,可以方便后序目标应用平台根据该参数打开目标应用页面,提高应用打开效率。
在本公开另一实施例中,Message服务在提取目标应用参数之前,也可以首先对目标网络请求数据包进行信息验证。具体参照图8根据一示例性实施例示出的另一种应用交互方法的流程图,上述步骤132可以包括:
在步骤1321中,对所述目标网络请求进行信息验证;
本公开实施例中,考虑到其他未包含目标应用参数的HTTP请求也可能会包括上述预设特征信息,比如包含预设关键字。也就是说上述步骤123确定的目标网路请求数据包中不一定包含有目标应用参数。
Message服务接收到目标HTTP请求数据包后,还可以进一步按照预设策略对目标HTTP请求数据包进行信息验证,参见图9-2或9-3中所示的步骤S106,例如,Message服务可以判断解析出目标网络请求中是否包括预设字段比如“APP ID:”字段,如果有,确定目标网络请求通过信息验证,属于有效网络请求。
或者,在目标应用参数通过预设编码方式进行编码后,Message服务还可以采用预设解码方式对目标网络请求进行解码验证。其中,上述预设编解码方式是目标应用供应商提供的并设置在Message服务中的。
回溯到目标网络请求数据包的生成过程:Web浏览器可以按照目标应用供应商提供的预设编码方式对包含目标应用参数的请求数据进行编码,生成HTTP请求数据包。
如果Message服务可以采用预设解码方式对目标HTTP请求数据包成功解码,说明该目标HTTP请求数据包为有效HTTP请求即有效网络请求。其中,上述预设编解码方式是目标应用供应商提供的并设置在Message服务中的。
在步骤1322中,从信息验证成功的有效网络请求中提取目标应用参数。参见图9-2或9-3中的步骤S107。
本公开实施例中,用户终端中内置的Message服务在接收到目标HTTP请求数据包后,为确保目标HTTP请求判断准确、减小后续数据解析量,可以在解析目标应用参数之前,进一步对目标HTTP请求进行信息验证,确保后续解析的请求数据中包含有目标应用参数。
在步骤14中,根据所述目标应用参数打开所述目标应用。
本公开实施例中,Hooked Send接口或者预设Message服务获取到目标应用参数后,可以将目标应用参数发送给预设应用平台打开目标应用,如图9-2或9-3中的步骤S108、S109所示。
目标应用可以是上述第一类应用,也可以是一种新应用,该新应用与上述第一类应用的区别在于:新应用的安装、下载过程无需用户确认,且下载和安装过程在用户终端的后台运行。
即用户终端从服务端获取到新应用的压缩包之后,可以在后台自行安装或更新,其安装过程前台不可见,其更新过程也可以不在前台呈现给用户。
若目标应用属于第一类应用,在用户终端中已安装目标应用的情况下,上述步骤14的具体实施过程可以是:
操作系统根据上述目标应用参数中的目标应用的身份标识启动目标应用,比如,打开应用首页或打开目标应用的登录或注册页面等。
在目标应用参数中还包括其他信息的情况下,已启动的目标应用程序还可以根据上述信息执行相应操作,如打开目标应用的内页,比如电商平台中一个销售商品的详情页;或者,在预设界面中播放音频、视频文件等;或者是弹出预设对话框等。
如果用户终端中未安装上述目标应用,可以通过打开应用商店等方式提醒用户下载安装目标应用;或者,将目标消息丢弃。
若目标应用属于上述新应用,参见图10根据一示例性实施例示出的另一种应用交互方法的流程图,上述步骤14可以包括:
在步骤141中,根据所述目标应用的身份标识确定本地是否安装所述目标应用;
本公开实施例中,用户终端可以通过预设的新应用平台即新应用服务软件,根据目标应用的身份标识确定本地是否安装有上述新应用。比如,根据目标应用的身份标识遍历已安装新应用列表,确定用户终端本地是否安装有上述目标新应用。
在步骤142中,若本地未安装所述目标应用,下载和安装所述目标应用;
如确定本地未安装上述目标新应用,上述新应用平台可以触发用户终端自动下载和安装上述目标新应用,上述过程对于用户不可见,即下载、安装过程的执行,不需要以接收到用户在前台触发的确认信息为必要条件。
在步骤143中,通过预设应用平台根据所述目标应用参数打开所述目标应用。
预设应用平台在获取到新应用安装包或更新数据包之后,可以直接运行新应用程序,打开目标新应用。
本公开实施例中,上述预设应用平台为预置在用户终端中的服务程序,上述新应用平台可以作为一种系统软件设置于操作系统中;用户终端仍以智能手机为例,该新应用平台可以是在手机出厂时已设置好的。上述预设应用平台也可以作为上层应用软件独立运行于用户终端中,本公开对其设置位置不做限定。
上述预设应用平台可以根据任何一种目标应用的应用参数,打开对应的目标应用即新应用。上述预设应用平台打开新应用的过程可以是直接运行新应用的安装或更新压缩包,打开目标应用参数指定的新应用界面,比如,新应用的首页界面,或其中的内页。
示例性的,假设步骤143中的预设应用平台是运行多种新应用的服务程序C,上述目标应用是名称为:快看漫画的一种新应用,则服务程序C可以根据获取到的目标应用参数如快看漫画APP的身份标识,直接打开快看漫画。
参照图11-1根据一示例性实施例示出的一种应用交互的应用场景示意图,当用户在智能手机100的浏览器页面1001中点击一个目标应用页面的链接后,比如,知乎日报的链接,浏览器页面在后台会执行一个JS(java script)脚本,JS脚本负责根据目标应用参数和预设特征信息生成目标网络请求,例如,JS脚本负责将目标应用的身份标识、详情页参数等信息与预设特征信息组成一个URL字符串。JS脚本调用预设网络连接接口,如Hooked DNS接口和/或Hooked Connect接口,利用虚拟域名或虚拟服务器的地址,建立与虚拟服务器的虚拟网络连接。之后,JS脚本调用预设网络发送接口Hooked Send接口将目标网络请求数据发送给预设Message服务进行目标应用参数提取后,将获得的目标应用参数发送给预设应用平台即目标应用平台;预设应用平台根据上述目标应用参数打开知乎应用中的一个详情页,比如知乎日报详情页1002,呈现给用户。
图11-2示出相关技术中应用交互方式中的示意图,在相关技术中,如果在浏览器页面1001中点击“知乎日报”的链接,浏览器会根据适配的Deep Link技术,首先弹出一个提示用户选择打开方式的浮窗1003,提示用户选择目标页面的打开方式。上述供用户选择的页面打开方式包括:应用打开方式、浏览器打开方式,还可能包括其他方式,不但无法直接为用户呈现目标应用界面即知乎应用的知乎日报界面。如果浏览器没有适配Deep Link技术,则无法实现从浏览器向知乎应用的跳转。
可见,采用本公开提供的应用交互方法,可以首先在当前应用与虚拟网络服务器之间建立虚拟网络连接,即虚拟网络消息传输通道,当用户想从当前应用界面跳转到另一目标应用时,可以通过上述虚拟网络消息传输通道发送网络请求,在网络请求经过用户终端的操作系统时,可以通过预设网络接口识别出包含目标应用参数的目标网络请求,依据目标网络请求直接或发送给预设消息服务提取目标应用参数,并将该目标应用参数发送预设应用平台,通过该预设应用平台为用户打开目标应用,不受双方应用是否支持Deep Link技术的限制,即可直接从当前应用跳转到目标应用,对双方应用软件的版本、配置不作要求,即对双方应用的兼容性不作要求,提升了终端的用户体验。并且,在目标应用属于上述新应用的情况下,对于用户而言,当用户在一个应用界面比如Web浏览器的页面中点击目标应用页面的链接后,用户终端可以直接准确地跳转到目标应用的指定页面,中间无需其他人机交互,节省了用户与终端进行人机交互的过程和时间,进一步提升终端的用户体验。
需要说明的是,本公开中,在预设网络接口获取到目标网络请求后,或者,在本地HTTP服务器将上述目标网络请求发送给Message服务后,可以关闭虚拟TCP连接,以便释放资源,提高系统资源的利用率。在另一种实施方式中,在上述HTTP通信完成后,也可以使上述虚拟TCP连接保持连接状态,以便当前应用可以继续通过相同的虚拟TCP连接发送HTTP请求,相应的,预设网络接口可以快速检测后续的目标HTTP请求,节省了为每个请求建立新连接所需的时间,整体提升目标网络请求的检测效率。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。
其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
与前述应用功能实现方法实施例相对应,本公开还提供了应用功能实现装置及相应的终端的实施例。
参照图12根据一示例性实施例示出的一种应用交互装置的框图,所述装置可以包括:
连接建立模块21,被配置为在当前应用与预设虚拟服务器之间建立虚拟网络连接;
目标请求获取模块22,被配置为基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,所述目标网络请求用于跳转到目标应用;
参数提取模块23,被配置为从所述目标网络请求中提取目标应用参数,所述目标应用参数至少包括:目标应用的身份标识;
应用跳转模块24,被配置为根据所述目标应用参数打开所述目标应用。
参照图13根据一示例性实施例示出的另一种应用交互装置的框图,在图12所示装置实施例的基础上,所述连接建立模块21可以包括:
TCP连接建立子模块211,被配置为在当前应用与预设虚拟HTTP服务器之间,建立虚拟传输控制协议TCP连接;
所述目标请求获取模块22可以包括:目标HTTP请求获取子模块221,被配置为基于所述虚拟TCP连接,通过设置有钩子Hook函数的发送接口获取经由操作系统的目标HTTP请求。
参照图14根据一示例性实施例示出的另一种应用交互装置的框图,在图13所示装置实施例的基础上,所述TCP连接建立子模块211可以包括:
虚拟域名获取单元21-11,被配置为根据所述网络请求获取虚拟域名;
虚拟IP确定单元21-12,被配置为通过第一域名解析接口将所述虚拟域名解析为对应的虚拟IP地址,并将所述虚拟IP地址返回给所述当前应用;
虚拟地址发送单元21-13,被配置为向第一预设网络连接接口发送所述虚拟IP地址;
地址转换单元21-14,被配置为通过第一预设网络连接接口将所述虚拟IP地址转换为所述虚拟HTTP服务器的地址,并发送TCP握手数据包;
第一连接建立单元21-15,被配置为通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
参照图15根据一示例性实施例示出的另一种应用交互装置的框图,在图13所示装置实施例的基础上,所述TCP连接建立子模块211可以包括:
虚拟域名获取单元21-21,被配置为根据所述网络请求获取虚拟域名;
本实施例中,虚拟域名获取单元21-21与图14所示实施例中的虚拟域名获取单元21-11功能相同,此处为便于区分不同实施例,故采用不同的编号。
地址解析单元21-22,被配置为通过第二域名解析接口将所述虚拟域名解析为所述虚拟HTTP服务器的地址,并将所述虚拟HTTP服务器的地址返回给所述当前应用;
地址发送单元21-23,被配置为向网络连接接口发送所述虚拟HTTP服务器的地址;
握手数据发送单元21-24,被配置为通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
第二连接建立单元21-25,被配置为通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
参照图16根据一示例性实施例示出的另一种应用交互装置的框图,在图13所示装置实施例的基础上,所述TCP连接建立子模块211可以包括:
地址获取单元21-31,被配置为根据所述网络请求获取虚拟HTTP服务器的地址,将所述虚拟HTTP服务器的地址发送给网络连接接口;
握手数据发送单元21-32,被配置为通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
第三连接建立单元21-33,被配置为通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
本实施例中,握手数据发送单元21-32、第三连接建立单元21-33分别与图15所示实施例中的握手数据发送单元21-24、第二连接建立单元21-25功能相同,此处为便于区分不同实施例,故采用不同的编号。
参照图17根据一示例性实施例示出的另一种应用交互装置的框图,在图14所示装置实施例的基础上,所述虚拟域名获取单元21-11可以包括:
域名获取子单元201,被配置为获取HTTP地址中的域名信息;
查询子单元202,被配置为根据所述域名信息查询预设虚拟域名白名单;
确定子单元203,被配置为在所述预设虚拟域名白名单中包括所述域名信息的情况下,确定所述域名信息属于虚拟域名。
参照图18根据一示例性实施例示出的另一种应用交互装置的框图,在图12所示装置实施例的基础上,所述目标请求获取模块22可以包括:
请求获取子模块221,被配置为通过预设网络发送接口获取经由操作系统的网络请求;
检测子模块222,被配置为确定所述网络请求中是否包括预设特征信息;
目标请求确定子模块223,被配置为在所述网络请求中包括预设特征信息的情况下,确定所述网络请求为目标网络请求。
参照图19根据一示例性实施例示出的另一种应用交互装置的框图,在图12所示装置实施例的基础上,所述参数提取模块23可以包括:
第一参数提取子模块231,被配置为通过所述预设网络发送接口从所述目标网络请求中提取目标应用参数。
参照图20根据一示例性实施例示出的另一种应用交互装置的框图,在图12所示装置实施例的基础上,所述参数提取模块23可以包括:
发送子模块232,被配置为将所述目标网络请求发送给预设消息服务;
第二参数提取子模块233,被配置为通过所述消息服务提取所述目标网络请求中的目标应用参数。
参照图21根据一示例性实施例示出的另一种应用交互装置的框图,在图20所示装置实施例的基础上,所述发送子模块232可以包括:
第一发送单元2321,被配置为通过所述预设网络发送接口将所述目标网络请求发送给预设消息服务;或者,
第二发送单元2322,被配置为依次通过所述预设网络发送接口、防火墙、所述虚拟HTTP服务器,将所述目标网络请求传输至所述预设消息服务。
参照图22根据一示例性实施例示出的另一种应用交互装置的框图,在图21所示装置实施例的基础上,所述第一发送单元2321可以包括:
转发子单元23211,被配置为通过所述预设网络发送接口将所述目标网络请求转发给所述消息服务;或者,
备份发送子单元23212,被配置为通过所述预设网络发送接口复制所述目标网络请求,将复制的目标网络请求发送给所述消息服务。
参照图23根据一示例性实施例示出的另一种应用交互装置的框图,在图20所示装置实施例的基础上,所述发送子模块232可以包括:
过滤单元232-1,被配置为过滤所述目标网络请求中的预设特征信息,获得过滤后的目标网络请求;
发送单元232-2,被配置为将所述过滤后的目标网络请求发送给所述预设消息服务。
参照图24根据一示例性实施例示出的另一种应用交互装置的框图,在图20所示装置实施例的基础上,所述第二参数提取子模块233可以包括:
信息验证单元2331,被配置为对所述目标网络请求进行信息验证;
参数提取单元2332,被配置为从信息验证成功的有效网络请求中提取目标应用参数。
参照图25根据一示例性实施例示出的另一种应用交互装置的框图,在图12所示装置实施例的基础上,所述应用跳转模块24可以包括:
检测子模块241,被配置为根据所述目标应用的身份标识确定本地是否安装所述目标应用;
安装子模块242,被配置为若本地未安装所述目标应用,下载和安装所述目标应用;
跳转子模块243,被配置为通过预设应用平台根据所述目标应用参数打开所述目标应用。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,一方面,本公开实施例提供了一种应用交互装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,上述处理器被配置为:
在当前应用与预设虚拟服务器之间建立虚拟网络连接;
基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,所述目标网络请求用于跳转到目标应用;
从所述目标网络请求中提取目标应用参数,所述目标应用参数至少包括:目标应用的身份标识;
根据所述目标应用参数打开所述目标应用。
图26是根据一示例性实施例示出的一种应用交互装置2600的结构示意图。例如,装置2600可以是用户设备,可以具体为移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理,可穿戴设备如智能手表、智能眼镜、智能手环、智能跑鞋等。
参照图26,装置2600可以包括以下一个或多个组件:处理组件2602,存储器2604,电源组件2606,多媒体组件2608,音频组件2610,输入/输出(I/O)的接口2612,传感器组件2614,以及通信组件2616。
处理组件2602通常控制装置2600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件2602可以包括一个或多个处理器2620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件2602可以包括一个或多个模块,便于处理组件2602和其他组件之间的交互。例如,处理组件2602可以包括多媒体模块,以方便多媒体组件2608和处理组件2602之间的交互。
存储器2604被配置为存储各种类型的数据以支持在设备2600的操作。这些数据的示例包括用于在装置2600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器2604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件2606为装置2600的各种组件提供电力。电源组件2606可以包括电源管理系统,一个或多个电源,及其他与为装置2600生成、管理和分配电力相关联的组件。
多媒体组件2608包括在上述装置2600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。上述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与上述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件2608包括一个前置摄像头和/或后置摄像头。当设备2600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件2610被配置为输出和/或输入音频信号。例如,音频组件2610包括一个麦克风(MIC),当装置2600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器2604或经由通信组件2616发送。在一些实施例中,音频组件2610还包括一个扬声器,用于输出音频信号。
I/O接口2612为处理组件2602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件2614包括一个或多个传感器,用于为装置2600提供各个方面的状态评估。例如,传感器组件2614可以检测到设备2600的打开/关闭状态,组件的相对定位,例如上述组件为装置2600的显示器和小键盘,传感器组件2614还可以检测装置2600或装置2600一个组件的位置改变,用户与装置2600接触的存在或不存在,装置2600方位或加速/减速和装置2600的温度变化。传感器组件2614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件2614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件2614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件2616被配置为便于装置2600和其他设备之间有线或无线方式的通信。装置2600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件2616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,上述通信组件2616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置2600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,例如包括指令的存储器2604,当存储介质中的指令由装置2600的处理器2620执行时,使得装置2600能够执行应用交互的方法,该方法包括:
在当前应用与预设虚拟服务器之间建立虚拟网络连接;
基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,所述目标网络请求用于跳转到目标应用;
从所述目标网络请求中提取目标应用参数,所述目标应用参数至少包括:目标应用的身份标识;
根据所述目标应用参数打开所述目标应用。
所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (30)

1.一种应用交互方法,其特征在于,所述方法包括:
在当前应用与预设虚拟服务器之间建立虚拟网络连接;
基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,所述目标网络请求用于跳转到目标应用;
从所述目标网络请求中提取目标应用参数,所述目标应用参数至少包括:目标应用的身份标识;
根据所述目标应用参数打开所述目标应用。
2.根据权利要求1所述的方法,其特征在于,所述在当前应用与预设虚拟服务器之间建立虚拟网络连接,包括:
在当前应用与预设虚拟HTTP服务器之间,建立虚拟传输控制协议TCP连接;
所述基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,包括:
基于所述虚拟TCP连接,通过设置有钩子Hook函数的发送接口获取经由操作系统的目标HTTP请求。
3.根据权利要求2所述的方法,其特征在于,所述在当前应用与预设虚拟HTTP服务器之间,建立虚拟传输控制协议TCP连接,包括:
根据所述网络请求获取虚拟域名;
通过第一域名解析接口将所述虚拟域名解析为对应的虚拟IP地址,并将所述虚拟IP地址返回给所述当前应用;
向第一预设网络连接接口发送所述虚拟IP地址;
通过所述第一预设网络连接接口将所述虚拟IP地址转换为所述虚拟HTTP服务器的地址,并发送TCP握手数据包;
通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
4.根据权利要求2所述的方法,其特征在于,所述在当前应用与预设虚拟HTTP服务器之间,建立虚拟传输控制协议TCP连接,包括:
根据所述网络请求获取虚拟域名;
通过第二域名解析接口将所述虚拟域名解析为所述虚拟HTTP服务器的地址,并将所述虚拟HTTP服务器的地址返回给所述当前应用;
向网络连接接口发送所述虚拟HTTP服务器的地址;
通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
5.根据权利要求2所述的方法,其特征在于,所述在当前应用与预设虚拟HTTP服务器之间,建立虚拟传输控制协议TCP连接,包括:
根据所述网络请求获取虚拟HTTP服务器的地址,将所述虚拟HTTP服务器的地址发送给网络连接接口;
通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
6.根据权利要求3或4所述的方法,其特征在于,所述根据网络请求获取虚拟域名,包括:
获取HTTP地址中的域名信息;
根据所述域名信息查询预设虚拟域名白名单;
若所述预设虚拟域名白名单中包括所述域名信息,确定所述域名信息属于虚拟域名。
7.根据权利要求1所述的方法,其特征在于,所述通过预设网络接口获取经由操作系统的目标网络请求,包括:
通过预设网络发送接口获取经由操作系统的网络请求;
确定所述网络请求中是否包括预设特征信息;
若所述网络请求中包括预设特征信息,确定所述网络请求为目标网络请求。
8.根据权利要求7所述的方法,其特征在于,所述从目标网络请求中提取目标应用参数,包括:
通过所述预设网络发送接口从所述目标网络请求中提取目标应用参数。
9.根据权利要求1所述的方法,其特征在于,所述从目标网络请求中提取目标应用参数,包括:
将所述目标网络请求发送给预设消息服务;
通过所述消息服务提取所述目标网络请求中的目标应用参数。
10.根据权利要求9所述的方法,其特征在于,所述将所述目标网络请求发送给预设消息服务,包括:
通过所述预设网络发送接口将所述目标网络请求发送给预设消息服务;或者,
依次通过所述预设网络发送接口、防火墙、所述虚拟HTTP服务器,将所述目标网络请求传输至所述预设消息服务。
11.根据权利要求10所述的方法,其特征在于,所述通过所述预设网络发送接口将所述目标网络请求发送给预设消息服务,包括:
通过所述预设网络发送接口将所述目标网络请求转发给所述消息服务;或者,
通过所述预设网络发送接口复制所述目标网络请求,将复制的目标网络请求发送给所述消息服务。
12.根据权利要求9所述的方法,其特征在于,所述将目标网络请求发送给预设消息服务,包括:
过滤所述目标网络请求中的预设特征信息,获得过滤后的目标网络请求;
将所述过滤后的目标网络请求发送给所述预设消息服务。
13.根据权利要求9所述的方法,其特征在于,所述通过所述消息服务提取所述目标网络请求中的目标应用参数,包括:
对所述目标网络请求进行信息验证;
从信息验证成功的有效网络请求中提取目标应用参数。
14.根据权利要求1所述的方法,其特征在于,所述根据目标应用参数打开所述目标应用,包括:
根据所述目标应用的身份标识确定本地是否安装所述目标应用;
若本地未安装所述目标应用,下载和安装所述目标应用;
通过预设应用平台根据所述目标应用参数打开所述目标应用。
15.一种应用交互装置,其特征在于,所述装置包括:
连接建立模块,被配置为在当前应用与预设虚拟服务器之间建立虚拟网络连接;
目标请求获取模块,被配置为基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,所述目标网络请求用于跳转到目标应用;
参数提取模块,被配置为从所述目标网络请求中提取目标应用参数,所述目标应用参数至少包括:目标应用的身份标识;
应用跳转模块,被配置为根据所述目标应用参数打开所述目标应用。
16.根据权利要求15所述的装置,其特征在于,所述连接建立模块包括:
TCP连接建立子模块,被配置为在当前应用与预设虚拟HTTP服务器之间,建立虚拟传输控制协议TCP连接;
所述目标请求获取模块包括:
目标HTTP请求获取子模块,被配置为基于所述虚拟TCP连接,通过设置有钩子Hook函数的发送接口获取经由操作系统的目标HTTP请求。
17.根据权利要求16所述的装置,其特征在于,所述TCP连接建立子模块包括:
虚拟域名获取单元,被配置为根据所述网络请求获取虚拟域名;
虚拟IP确定单元,被配置为通过第一域名解析接口将所述虚拟域名解析为对应的虚拟IP地址,并将所述虚拟IP地址返回给所述当前应用;
虚拟地址发送单元,被配置为向第一预设网络连接接口发送所述虚拟IP地址;
地址转换单元,被配置为通过所述第一预设网络连接接口将所述虚拟IP地址转换为所述虚拟HTTP服务器的地址,并发送TCP握手数据包;
第一连接建立单元,被配置为通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
18.根据权利要求16所述的装置,其特征在于,所述TCP连接建立子模块包括:
虚拟域名获取单元,被配置为根据所述网络请求获取虚拟域名;
地址解析单元,被配置为通过第二域名解析接口将所述虚拟域名解析为所述虚拟HTTP服务器的地址,并将所述虚拟HTTP服务器的地址返回给所述当前应用;
地址发送单元,被配置为向网络连接接口发送所述虚拟HTTP服务器的地址;
握手数据发送单元,被配置为通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
第二连接建立单元,被配置为通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
19.根据权利要求16所述的装置,其特征在于,所述TCP连接建立子模块包括:
地址获取单元,被配置为根据所述网络请求获取虚拟HTTP服务器的地址,将所述虚拟HTTP服务器的地址发送给网络连接接口;
握手数据发送单元,被配置为通过所述网络连接接口发送TCP握手数据包,所述TCP握手数据包中包括所述虚拟HTTP服务器的地址;
第三连接建立单元,被配置为通过所述TCP握手数据包与所述虚拟HTTP服务器建立虚拟TCP连接。
20.根据权利要求17或18所述的装置,其特征在于,所述虚拟域名获取单元包括:
域名获取子单元,被配置为获取HTTP地址中的域名信息;
查询子单元,被配置为根据所述域名信息查询预设虚拟域名白名单;
确定子单元,被配置为在所述预设虚拟域名白名单中包括所述域名信息的情况下,确定所述域名信息属于虚拟域名。
21.根据权利要求15所述的装置,其特征在于,所述目标请求获取模块包括:
请求获取子模块,被配置为通过预设网络发送接口获取经由操作系统的网络请求;
检测子模块,被配置为确定所述网络请求中是否包括预设特征信息;
目标请求确定子模块,被配置为在所述网络请求中包括预设特征信息的情况下,确定所述网络请求为目标网络请求。
22.根据权利要求21所述的装置,其特征在于,所述参数提取模块包括:
第一参数提取子模块,被配置为通过所述预设网络发送接口从所述目标网络请求中提取目标应用参数。
23.根据权利要求15所述的装置,其特征在于,所述参数提取模块包括:
发送子模块,被配置为将所述目标网络请求发送给预设消息服务;
第二参数提取子模块,被配置为通过所述消息服务提取所述目标网络请求中的目标应用参数。
24.根据权利要求23所述的装置,其特征在于,所述发送子模块包括:
第一发送单元,被配置为通过所述预设网络发送接口将所述目标网络请求发送给预设消息服务;或者,
第二发送单元,被配置为依次通过所述预设网络发送接口、防火墙、所述虚拟HTTP服务器,将所述目标网络请求传输至所述预设消息服务。
25.根据权利要求24所述的装置,其特征在于,所述第一发送单元包括:
转发子单元,被配置为通过所述预设网络发送接口将所述目标网络请求转发给所述消息服务;或者,
备份发送子单元,被配置为通过所述预设网络发送接口复制所述目标网络请求,将复制的目标网络请求发送给所述消息服务。
26.根据权利要求23所述的装置,其特征在于,所述发送子模块包括:
过滤单元,被配置为过滤所述目标网络请求中的预设特征信息,获得过滤后的目标网络请求;
发送单元,被配置为将所述过滤后的目标网络请求发送给所述预设消息服务。
27.根据权利要求23所述的装置,其特征在于,所述第二参数提取子模块包括:
信息验证单元,被配置为对所述目标网络请求进行信息验证;
参数提取单元,被配置为从信息验证成功的有效网络请求中提取目标应用参数。
28.根据权利要求15所述的装置,其特征在于,所述应用跳转模块包括:
检测子模块,被配置为根据所述目标应用的身份标识确定本地是否安装所述目标应用;
安装子模块,被配置为若本地未安装所述目标应用,下载和安装所述目标应用;
跳转子模块,被配置为通过预设应用平台根据所述目标应用参数打开所述目标应用。
29.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~14任一所述方法的步骤。
30.一种应用交互装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
在当前应用与预设虚拟服务器之间建立虚拟网络连接;
基于所述虚拟网络连接,通过预设网络接口获取经由操作系统的目标网络请求,所述目标网络请求用于跳转到目标应用;
从所述目标网络请求中提取目标应用参数,所述目标应用参数至少包括:目标应用的身份标识;
根据所述目标应用参数打开所述目标应用。
CN201710553148.1A 2017-06-14 2017-07-07 应用交互方法及装置 Active CN109218275B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201710553148.1A CN109218275B (zh) 2017-07-07 2017-07-07 应用交互方法及装置
EP17913542.1A EP3627322A4 (en) 2017-06-14 2017-12-04 APPLICATION INTERACTION METHOD, INTERACTION METHOD AND DEVICE
PCT/CN2017/114508 WO2018227899A1 (zh) 2017-06-14 2017-12-04 应用交互方法、交互方法及装置
CN201780002125.XA CN108139952B (zh) 2017-06-14 2017-12-04 应用交互方法、交互方法及装置
US16/699,416 US10990461B2 (en) 2017-06-14 2019-11-29 Application interaction method, interaction method and apparatus
US17/207,251 US11360834B2 (en) 2017-06-14 2021-03-19 Application interaction method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710553148.1A CN109218275B (zh) 2017-07-07 2017-07-07 应用交互方法及装置

Publications (2)

Publication Number Publication Date
CN109218275A true CN109218275A (zh) 2019-01-15
CN109218275B CN109218275B (zh) 2021-09-21

Family

ID=64991214

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710553148.1A Active CN109218275B (zh) 2017-06-14 2017-07-07 应用交互方法及装置

Country Status (1)

Country Link
CN (1) CN109218275B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414208A (zh) * 2020-03-13 2020-07-14 百度在线网络技术(北京)有限公司 应用程序的启动方法、装置及设备
US11568421B1 (en) * 2019-07-24 2023-01-31 Walgreen Co. Client side diagnostics for enhanced customer care

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101636998A (zh) * 2006-08-03 2010-01-27 思杰系统有限公司 用于ssl/vpn业务的基于应用的拦截和授权的系统和方法
US20100279678A1 (en) * 2007-12-26 2010-11-04 Prospective Group International Co., Limited Distribution method, operation method and system of application system in mobile communication network
CN102932375A (zh) * 2012-11-22 2013-02-13 北京奇虎科技有限公司 网络访问行为的防护方法和装置
US20140365557A1 (en) * 2013-06-10 2014-12-11 Fujitsu Limited Information processing device, content distribution method, and content distribution system
CN104364758A (zh) * 2012-06-22 2015-02-18 微软公司 用于有限能力操作系统的api重定向
US20150153911A1 (en) * 2011-12-29 2015-06-04 Apple Inc. Device, method, and graphical user interface for configuring restricted interaction with a user interface
CN104980512A (zh) * 2015-06-18 2015-10-14 卓易畅想(北京)科技有限公司 一种基于移动应用提供目标对象的方法与设备
US20150317559A1 (en) * 2014-04-30 2015-11-05 Grandios Technologies, Llc Next application suggestions on a user device
CN105094862A (zh) * 2014-05-07 2015-11-25 阿里巴巴集团控股有限公司 检测应用程序是否安装的方法和浏览器
CN105915703A (zh) * 2016-03-30 2016-08-31 北京农信互联科技有限公司 一种服务功能界面与手机端桌面的链接方法及系统
CN106453766A (zh) * 2015-08-04 2017-02-22 阿里巴巴集团控股有限公司 基于虚拟机的数据传输方法、装置及系统
CN106603607A (zh) * 2015-10-16 2017-04-26 中兴通讯股份有限公司 私有云桌面系统及其实现服务的方法和装置

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101636998A (zh) * 2006-08-03 2010-01-27 思杰系统有限公司 用于ssl/vpn业务的基于应用的拦截和授权的系统和方法
US20100279678A1 (en) * 2007-12-26 2010-11-04 Prospective Group International Co., Limited Distribution method, operation method and system of application system in mobile communication network
US20150153911A1 (en) * 2011-12-29 2015-06-04 Apple Inc. Device, method, and graphical user interface for configuring restricted interaction with a user interface
CN104364758A (zh) * 2012-06-22 2015-02-18 微软公司 用于有限能力操作系统的api重定向
CN102932375A (zh) * 2012-11-22 2013-02-13 北京奇虎科技有限公司 网络访问行为的防护方法和装置
US20140365557A1 (en) * 2013-06-10 2014-12-11 Fujitsu Limited Information processing device, content distribution method, and content distribution system
US20150317559A1 (en) * 2014-04-30 2015-11-05 Grandios Technologies, Llc Next application suggestions on a user device
CN105094862A (zh) * 2014-05-07 2015-11-25 阿里巴巴集团控股有限公司 检测应用程序是否安装的方法和浏览器
CN104980512A (zh) * 2015-06-18 2015-10-14 卓易畅想(北京)科技有限公司 一种基于移动应用提供目标对象的方法与设备
CN106453766A (zh) * 2015-08-04 2017-02-22 阿里巴巴集团控股有限公司 基于虚拟机的数据传输方法、装置及系统
CN106603607A (zh) * 2015-10-16 2017-04-26 中兴通讯股份有限公司 私有云桌面系统及其实现服务的方法和装置
CN105915703A (zh) * 2016-03-30 2016-08-31 北京农信互联科技有限公司 一种服务功能界面与手机端桌面的链接方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
XIELIANG CHEN: "Research on user identity authentication technology for virtual laboratory system", 《SYSTEMS DESIGN AND ENGINEERING APPLICATIONS》 *
沈楠: "分布式系统中数据库服务虚拟化研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11568421B1 (en) * 2019-07-24 2023-01-31 Walgreen Co. Client side diagnostics for enhanced customer care
US12056714B1 (en) 2019-07-24 2024-08-06 Walgreen Co. Client side diagnostics for enhanced customer care
CN111414208A (zh) * 2020-03-13 2020-07-14 百度在线网络技术(北京)有限公司 应用程序的启动方法、装置及设备

Also Published As

Publication number Publication date
CN109218275B (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
CN109005096B (zh) 应用交互方法及装置
CN108156221B (zh) 通信方法、装置及电子设备
CN103269396B (zh) 一种对移动终端进行管理的方法和系统
CN112291338B (zh) 通信方法、装置及电子设备
CN108833585B (zh) 信息交互方法、装置及存储介质
EP3051772B1 (en) Method and apparatus for accessing network
CN108156271B (zh) 通信方法、装置及电子设备
CN108063804B (zh) 通信方法及装置
CN105049219B (zh) 流量订购方法和系统、移动终端及服务器
CN109525652B (zh) 信息分享方法、装置、设备和存储介质
CN108205455B (zh) 应用的功能实现方法及装置、终端
CN109218375B (zh) 应用交互方法及装置
CN109218275B (zh) 应用交互方法及装置
CN109714425A (zh) 通信方法及装置
CN107534860A (zh) WiFi热点Portal认证方法和装置
CN106452914B (zh) 路由器配置方法及装置
CN109213580A (zh) 应用交互方法及装置
CN104158851B (zh) 一种网络业务的分发系统、方法和设备
CN109218374B (zh) 应用交互方法及装置
CN109086143B (zh) 应用交互方法及装置
US9516135B2 (en) Apparatus and method of storing user information in home network
CN110007982B (zh) 通信方法及装置
CN109815030B (zh) 通信方法及装置
CN108173846B (zh) 登录方法及装置
CN113473573B (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