CN109936586B - 通信处理方法以及装置 - Google Patents
通信处理方法以及装置 Download PDFInfo
- Publication number
- CN109936586B CN109936586B CN201711347479.6A CN201711347479A CN109936586B CN 109936586 B CN109936586 B CN 109936586B CN 201711347479 A CN201711347479 A CN 201711347479A CN 109936586 B CN109936586 B CN 109936586B
- Authority
- CN
- China
- Prior art keywords
- interface
- available
- terminal
- communication
- web front
- 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种通信处理方法以及装置,该方法包括:终端接收web前端通过各通信接口发送的探测请求,该终端根据接收该探测请求的结果确定与该web前端之间通信的可用接口,该终端向该web前端反馈该可用接口的信息,使得该web前端通过该可用接口与该终端进行通信,相较于现有技术,当终端接收到web前端发送探测请求时,表明发送该探测请求的接口是可用的,可以预先探测出终端与web前端之间通信的可用接口,进而防止接口不可用所导致的终端与web前端之间无法通信的情况,提高通信性能。
Description
技术领域
本发明实施例属于网络通信技术领域,尤其涉及一种通信处理方法以及装置。
背景技术
随着“云”时代的到来,一种新的终端应用模式应用而生,即混合模式移动应用(Hybrid App),Hybrid App是指介于万维网应用(Web App)和本地应用(Native App)这两者之间的应用,既兼具良好的用户交互体验的优势,又兼具跨平台开发的优势。运行于终端的Hybrid App需要web前端与终端之间进行交互来实现功能。
现有的web前端和终端的交互方式可以通过四种调用方式来实现,分别为:addJavaScriptInterface、iframe、console.log以及prompt,其中每一种方式有对应的通信接口,这些通信接口统称为JavaScript bridge接口,简称JSbridge接口。这样web前端与终端通过上述四种JSbridge接口实现通信。在实际应用中,安卓系统本身存在的碎片化问题,会导致无法调用上述console.log以及prompt这两种调用方式的接口问题,从而出现web前端和终端无法通信的情况。
发明内容
本发明实施例提供一种通信处理方法以及装置,旨在解决现有技术中因安卓系统本身存在的碎片化问题,所导致的无法调用上述JSbridge接口实现终端与web前端之间通信的问题,从而进一步出现web前端和终端通信延迟的情况。
本发明实施例第一方面提供了一种通信处理方法,包括:
终端接收所述web前端通过各通信接口发送的探测请求;
所述终端根据接收所述探测请求的结果确定与所述web前端之间通信的可用接口;
所述终端向所述web前端反馈所述可用接口的信息,使得所述web前端通过所述可用接口与所述终端进行通信。
本发明实施例第二方面提供了一种通信处理装置,所述装置包括:第一处理模块和第二处理模块,其中所述第一处理模块包括:
接收单元,用于接收所述第二处理模块通过各通信接口发送的探测请求;
确定单元,用于根据接收所述探测请求的结果确定与所述第二处理模块之间通信的可用接口;
反馈单元,用于向所述第二处理模块反馈所述可用接口的信息,使得所述第二处理模块通过所述可用接口与所述第一处理模块进行通信。
本发明实施例第三方面提供了一种终端,所述终端用于执行本发明实施例第一方面提供的通信处理方法。
本发明实施例第四方面提供了一种存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于执行本发明实施例第一方面提供的通信处理方法。
本发明实施例提供的通信处理方法以及装置,终端接收该web前端通过各通信接口发送的探测请求,该终端根据接收该探测请求的结果确定与该web前端之间通信的可用接口,该终端向该web前端反馈该可用接口的信息,使得该web前端通过该可用接口与该终端进行通信,相较于现有技术,当终端接收到web前端发送探测请求时,就表明发送该探测请求的接口是可用的,这样就可以预先探测出终端与web前端之间通信的可用接口,防止接口不可用所导致的终端与web前端之间无法通信的情况,进而可以减少web前端和终端通信延迟的情况发生,提高通信性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明实施例提供的应用场景的示意图;
图2为本发明实施例提供的终端的结构示意图;
图3为本发明实施例提供的web前端的结构示意图;
图4为本发明第一实施例提供的通信处理方法的实现流程示意图;
图5为本发明第二实施例提供的通信处理方法的实现流程示意图;
图6为本发明实施例提供的web前端和终端之间交互的流程示意图;
图7为本发明实施例提供的web前端和终端之间交互的示例图;
图8为本发明第三实施例提供的通信处理装置的结构示意图;
图9为本发明第四实施例提供的通信处理装置的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了上述通信处理方法的一种示例性应用场景图,在该场景下,包括:用于运行客户端的终端10和与该客户端对应的web前端11。
web前端11可以为一台服务器,也可以为多台服务器集群,还可以为云平台,web前端11可以用于加载运行客户端终端10所显示的页面。
该终端10是在安卓系统下运行,可以为手机、平板电脑等移动设备,运行于终端10内的客户端为应用程序,如Hybrid App,该客户端可以通过web前端11加载页面,并将加载的页面渲染于终端10的屏幕上。
在实际应用中,web前端和终端10的交互方式可以通过四种调用方式来实现,分别为:addJavaScriptInterface、iframe、console.log以及prompt,其中每一种调用方式有对应的通信接口,这些通信接口统称为JavaScript bridge接口,简称JSbridge接口。
图2是上述终端10的硬体结构示意图,如图2所示,该装置包括:处理器1、存储器2、外设接口3、射频模块4和屏幕5。这些组件通过一条或多条通讯总线/信号线6相互通讯。
其中,处理器1可以是通用处理器,例如,中央处理器(CPU)、网络处理器(NP,network processor)或微处理器等,也可以是特定应用集成电路(ASIC,application-specific integrated circuit),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP,Digital Signal Processing)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他可编程逻辑器件。
存储器2中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。更具体地,存储器2可以包括只读存储器(ROM,read-only memory)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、闪存等。
外设接口3将各种输入/输出装置耦合至处理器2以及存储器4。
射频模块4用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。射频模块4可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片等。射频模块4可与各种网络如互联网、企业内部网、预置类型的无线网络进行通讯或者通过预置类型的无线网络与其他设备进行通讯。上述的预置类型的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的预置类型的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(GSM,Global System for Mobile Communication),增强型移动通信技术(EDGE,Enhanced Data GSM Environment),蓝牙,无线保真技术(WiFi,Wireless-Fidelity)(如美国电气和电子工程师协会标准IEEE 802.11a、IEEE 802.11b、IEEE802.11g和/或IEEE 802.11n),其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议。
屏幕5在终端与用户之间同时提供一个输出及输入界面。具体地,该屏幕5可以向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。该屏幕5可以为触控屏幕,用于接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。屏幕5的显示单元的具体实例包括但并不限于液晶显示器或发光聚合物显示器。
终端10的处理器1执行存储器2中所存放的程序,以及调用其他设备,可用于实现本发明第一实施例和第二实施例提供的通信处理方法。
图3是上述web前端11的硬体结构示意图,如图3所示,该web前端包括:总线7、处理器8、收发装置9和存储器12。处理器8、收发装置9和存储器12通过总线7相互连接。
其中,总线7包括一通路,在计算机系统各个器件间传送信息。处理器2可以是通用处理器,例如,中央处理器(CPU)、网络处理器(NP,network processor)或微处理器等,也可以是特定应用集成电路(ASIC,application-specific integrated circuit),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP,DigitalSignal Processing)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他可编程逻辑器件。
收发装置9为包括使用任何收发器的装置,以便于其他设备或通信网络进行通信,如以太网、无线接入网和无线局域网等。
存储器12中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。更具体地,存储器4可以包括只读存储器(ROM,read-only memory)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、闪存等。
web前端11的处理器8执行存储器12中所存放的程序,以及调用其他设备,可用于实现本发明提供的第三实施例和第四实施例提供的通信处理方法。
请参阅图4,图4为本发明第一实施例提供的通信处理方法的实现流程示意图,可应用于上述终端10和web前端11中,主要包括以下步骤:
S401、终端接收该web前端通过各通信接口发送的探测请求。
该探测请求是由web前端向终端发送的,每一通信接口可以发出一个探测请求或多个探测请求。
S402、该终端根据接收该探测请求的结果确定与该web前端之间通信的可用接口。
该结果可以分为有成功接收到的探测请求和未有成功接收到的探测请求。在实际应用中,由于探测请求是通过各通信接口发出的,如果终端成功接收到探测请求,表示该接收到的探测请求来源的通信接口是可用的,反之则表示不可用,举例说明,web前端通过通信接口A向终端发送探测请求A以及通过通信接口B向终端发送探测请求B,若终端接收到探测请求A但并未接收到探测请求B,则该通信接口A是可用的,而该通信接口B是不可用的。
S403、该终端向该web前端反馈该可用接口的信息,使得该web前端通过该可用接口与该终端进行通信。
终端与web前端之间的可用接口可以有一个或多个,当该可用接口为多个时,可以由web前端选取多个可用接口中的一个接口,该选取的一个接口作为web前端与终端之间通信的接口。
在实际应用中,web前端通过可用接口可以调用终端的功能参数,这样运行于终端内的客户端通过web前端加载的页面可以同步使用该终端的功能,如震动功能、重力感应功能。
在本发明实施例中,当终端接收到web前端发送探测请求时,就表明发送该探测请求的接口是可用的,这样可以预先探测出终端与web前端之间通信的可用接口,防止接口不可用所导致的终端与web前端之间无法通信的情况,进而可以减少web前端和终端通信延迟的情况发生,提高通信性能。
请参阅图5,图5为本发明第二实施例提供的通信处理方法的实现流程示意图,可应用于上述终端10和web前端11中,主要包括以下步骤:
S501、终端接收该web前端通过各通信接口发送的探测请求。
其中,每一通信接口可以发出一个探测请求或多个探测请求。进一步地,终端接收该web前端通过各通信接口发送的探测请求之后包括:识别该探测请求中预设的标签,该探测请求来源的通信接口为预置的非通用接口。每一探测请求可以带有标签,该标签用于标识来源于各通信接口的探测请求,具体地,该标签可以标识web前端发送的请求为探测请求,而非其他请求;该标签还可以用于标识该探测请求来源的通信接口,从同一通信接口发送的探测请求中的标签相同。
S502、该终端根据接收该探测请求的结果确定与该web前端之间通信的可用接口。
该结果可以分为有成功接收到的探测请求和未有成功接收到的探测请求,其中未有成功接收到的探测请求表示该终端未接收到任何探测请求。
在实际应用中,由于探测请求是通过各通信接口发出的,如果终端成功接收到探测请求,表示该接收到的探测请求来源的通信接口是可用的,反之则表示不可用,举例说明,web前端通过通信接口A向终端发送探测请求A以及通过通信接口B向终端发送探测请求B,若终端接收到探测请求A但并未接收到探测请求B,则该通信接口A是可用的,而该通信接口B是不可用的。
进一步地,终端根据接收该探测请求的结果确定与该web前端之间通信的可用接口,具体为:
若该结果为有成功接收到的探测请求,则该终端将接收到的探测请求所来源的非通用接口确定为可用接口;若该结果为未有成功接收到的探测请求,则该终端将预置的通用接口确定为可用接口。
上述的非通用接口和通用接口均为JSbridge.js文件所规定的JSbridge接口。
该非通用接口是不适用所有安卓终端机型的接口,即存在兼容问题的接口,该非通用接口中包括console.log调用方式的接口和prompt调用方式的接口;该通用接口为适用所有安卓终端机型的接口,无兼容问题的接口,该通用接口中包括iframe调用方式的接口和addJavascriptInterface调用方式的接口。
该文件是由该web前端引入加载的页面中,用于触发web前端与终端之间的通信接口的调用过程。web前端加载的页面为超文本标记语言5.0(HTML5)。在实际应用中,在步骤S501之前,当web前端在加载的页面引入JSbridge.js文件时,在上述页面会自执行console.log和prompt调用方法,此时终端软件开发工具包(SDK,Software DevelopmentKit)会重写WebChromClient的onConsoleMessage及onJsPrompt方法。在web端侧自执行console.log和prompt调用方法时,可以由web前端向终端发送的带有预设的标签的探测请求。
在实际应用中,如果该结果为有成功接收到的探测请求的情况,该终端将接收到的探测请求所来源的非通用接口确定为可用接口,同时该终端还可以进一步执行将预置的通用接口确定为可用接口的动作。由此可见,无论是否成功接收到探测请求,该通用接口都可以确定为可用接口,发送探测请求的目的是为了确定非通用接口是否可用。
S503、该终端利用预设的回调机制向页面内的用于标识该可用接口的全局变量写入预设数值。
参见上述步骤S502,该页面为该web前端加载的页面。该回调机制为网络视图(webview)组件的loadUrl。在实际应用中,从web前端到终端的通信是通过JSbridge接口,从终端到web前端的通信是通过该回调机制。
该预设数值可以为1,0或者true,以该预设数值为true为例,在页面内的用于标识该可用接口的全局变量均赋予true值,进一步地,默认JSbridge接口中除可用接口之外的接口对应的全局变量赋予另一数值,如false值,这样就可以区分JSbridge接口中的可用接口和不可用的接口。另外,如果该预设数值为1,则另一数值则为0。
S504、该终端利用该回调机制将该页面内的全局变量注册到该web前端。
终端注册到web前端的全局变量均有赋值。
S505、该web前端确定写入该预设数值的全局变量标识的接口为该可用接口。
依据上述步骤S503的举例,如果该预设数值为true,则web前端将数值为true的全局变量所标识的接口确定为可用接口。
S506、若该可用接口有多个,则该web前端从该可用接口中选取性能指标最高的可用接口。
进一步地,若该可用接口有多个,则该web前端从该可用接口中选取性能指标最高的可用接口,具体为:若该可用接口有多个,则该web前端从该可用接口中选取通信耗时最短的可用接口。
该性能指标可以包括:通信耗时、安全指标等性能指标。
如果通信耗时为选取接口的性能指标,以JSbridge接口为例说明:
在所有JSbridge接口可用的情况下,预先使用现有的各JSbridge接口进行测试,以测出web前端通过各JSbridge接口与终端之间通信的耗时,得出耗时由短至长依次为console.log调用方式的接口、prompt调用方式的接口、addjavascriptInterface调用方式的接口和iframe调用方式的接口。例如,若web前端确定的可用接口为console.log调用方式的接口、addjavascriptInterface调用方式的接口和iframe调用方式的接口,则web前端选取三种接口中耗时最短的console.log调用方式的接口。
参见上述步骤S502的相关描述可知,若该结果为未有成功接收到的探测请求,则该通用接口确定为可用接口,即addjavascriptInterface调用方式的接口和iframe调用方式的接口。一种情况,web前端按照通信耗时选取时,web前端会选择addjavascriptInterface调用方式的接口;另一种情况,web前端按照安全性能选取时,web前端选取没有安全漏洞的接口(iframe调用方式的接口)。
S507、该web前端通过选取出的可用接口与该终端进行通信。
进一步地,该web前端通过选取出的可用接口与该终端进行通信具体为:该web前端通过该选取出的可用接口调用该终端的功能参数,以使运行于该终端内的客户端使用该终端的功能。
在实际应用中,web前端通过可用接口可以调用终端的功能参数,这样运行于终端内的客户端通过web前端加载的页面可以同步使用该终端的功能,如震动功能、重力感应功能。
本实施例未尽之细节,请参阅前述图4所示实施例的描述,此处不再赘述。
在本发明实施例中,当终端接收到web前端发送探测请求时,可以表明发送该探测请求的接口是可用的,这样可以预先探测出终端与web前端之间通信的可用接口,防止接口不可用所导致的终端与web前端之间无法通信的情况,进而可以减少web前端和终端通信延迟的情况发生,提高通信性能。另外,在可用接口中选取性能指标最高的接口作为web前端和终端之间通信的接口,这样通过这种择优选取机制,可以进一步提高通信性能。
如图6所示,图6为web前端和终端之间交互的流程示意图,说明可应用于通信处理系统中,其中该系统包括web前端11和终端10,具体描述如下:
S601、web前端11在加载的页面引入用于调用接口的文件;
S602、web前端11通过各通信接口向终端10发送探测请求;
S603、终端10接收该web前端11发送的该探测请求;
S604、终端10根据接收该探测请求的结果确定与该web前端11之间通信的可用接口;
S605、该终端10利用回调机制向该web前端11反馈该可用接口的信息;
S606、该web前端11依据该可用接口的信息确定该可用接口;
S607、该web前端11通过确定的该可用接口与该终端10进行通信。
图7为本发明实施例提供的web前端和终端之间交互的示例图。如图7所示,Web为web前端11,Native为终端10。web前端11侧,H5为web前端11加载的页面,JSbridge.js为引入该页面的文件;终端侧,Jar存储于终端内,是存储webChromeclient和webviewclient的文件。Webviewclient是用于处理来自web端通过JSbridge接口发送的请求,如本发明的探测请求,以及用于处理向web前端反馈请求的结果的流程。步骤1是web前端11通过prompt调用方法的接口和console.log调用方法的接口发送探测请求,其中探测请求中的标签用于标识该请求为探测请求;步骤2是终端10利用回调机制向web前端反馈探测的结果,以告知prompt调用方法的接口和console.log调用方法的接口哪一个是可用接口;步骤3是web前端内加载的页面发出调用可用接口的指令;步骤4是web前端通过该可用接口与终端进行通信。
请参阅图8,图8为本发明第三实施例提供的通信处理装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图8示例的通信处理装置,主要包括:第一处理模块801和第二处理模块802,其中第一处理模块801包括:接收单元8011、确定单元8012和反馈单元8013。以上各功能模块详细说明如下:
接收单元8011,用于接收第二处理模块802通过各通信接口发送的探测请求。
其中,每一通信接口可以发出一个探测请求或多个探测请求。
确定单元8012,用于根据接收该探测请求的结果确定与第二处理模块802之间通信的可用接口。
该结果可以分为有成功接收到的探测请求和未有成功接收到的探测请求。在实际应用中,由于探测请求是通过各通信接口发出的,如果第一处理模块801成功接收到探测请求,表示该接收到的探测请求来源的通信接口是可用的,反之则表示不可用,举例说明,第二处理模块802通过通信接口A向第一处理模块801发送探测请求A,以及通过通信接口B向第一处理模块801发送探测请求B,若接收单元8011接收到探测请求A但并未接收到探测请求B,则该通信接口A是可用的,而该通信接口B是不可用的。
反馈单元8013,用于向第二处理模块802反馈该可用接口的信息,使得第二处理模块802通过该可用接口与第一处理模块801进行通信。
本实施例未尽之细节,请参阅前述图4所示实施例的描述,此处不再赘述。
在本发明实施例中,当接收单元8011接收到web前端发送探测请求时,就表明发送该探测请求的接口是可用的,这样可以预先探测出终端与web前端之间通信的可用接口,防止接口不可用所导致的终端与web前端之间无法通信的情况,进而可以减少web前端和终端通信延迟的情况发生,提高通信性能。
请参见图9,图9为本发明第四实施例提供的通信处理装置的结构示意图,图9示例的通信处理装置,主要包括:第一处理模块901和第二处理模块902,其中第一处理模块901包括:接收单元9011、识别单元9012、确定单元9013、反馈单元9014;第二处理模块902包括:设定单元9021、选取单元9022和通信单元9023,以上各功能模块详细说明如下:
接收单元9011接收第二处理模块902通过各通信接口发送的探测请求。
其中,每一通信接口可以发出一个探测请求或多个探测请求。进一步地,识别单元9012,用于识别该探测请求中预设的标签。该探测请求来源的通信接口为预置的非通用接口。每一探测请求可以带有标签,该标签用于标识来源于各通信接口的探测请求,具体地,该标签可以标识第二处理模块902发送的请求为探测请求,而非其他请求;该标签还可以用于标识该探测请求来源的通信接口,从同一通信接口发送的探测请求中的标签相同。
确定单元9013,用于根据接收该探测请求的结果确定与第二处理模块902之间通信的可用接口。
该结果可以分为有成功接收到的探测请求和未有成功接收到的探测请求,其中未有成功接收到的探测请求表示该接收单元9011未接收到任何探测请求。
在实际应用中,由于探测请求是通过各通信接口发出的,如果接收单元9011成功接收到探测请求,表示该接收到的探测请求来源的通信接口是可用的,反之则表示不可用,举例说明,第二处理模块902通过通信接口A向第一处理模块901发送探测请求A以及通过通信接口B向第一处理模块901发送探测请求B,若接收单元9011接收到探测请求A但并未接收到探测请求B,则该通信接口A是可用的,而该通信接口B是不可用的。
进一步地,确定单元9013,还用于若该结果为有成功接收到的探测请求,则该确定单元9013将接收到的探测请求所来源的非通用接口确定为可用接口;若该结果为未有成功接收到的探测请求,则确定单元9013将预置的通用接口确定为可用接口。
上述的非通用接口和通用接口均为JSbridge.js文件所规定的JSbridge接口。
该非通用接口是存在兼容问题的接口,该非通用接口中包括console.log调用方式的接口和prompt调用方式的接口;该通用接口为无兼容问题的接口,该通用接口中包括iframe调用方式的接口和addJavascriptInterface调用方式的接口。
该文件是由第二处理模块902引入加载的页面中,用于触发第二处理模块902与第一处理模块901之间的通信接口的调用过程。第二处理模块902加载的页面为H5。
在实际应用中,如果该结果为有成功接收到的探测请求的情况,确定单元9013将接收到的探测请求所来源的非通用接口确定为可用接口,同时确定单元9013还可以进一步执行将预置的通用接口确定为可用接口的动作。由此可见,无论是否成功接收到探测请求,该通用接口都可以确定为可用接口,发送探测请求的目的是为了确定非通用接口是否可用。
反馈单元9014,用于利用预设的回调机制向页面内的用于标识该可用接口的全局变量写入预设数值。
该页面为该第二处理模块902加载的页面。该回调机制为网络视图(webview)组件的loadUrl。在实际应用中,从第二处理模块902到第一处理模块901的通信是通过JSbridge接口,从第一处理模块901到第二处理模块902的通信是通过该回调机制。
该预设数值可以为1,0或者true,以该预设数值为true为例,在页面内的用于标识该可用接口的全局变量均赋予true值,进一步地,默认JSbridge接口中除可用接口之外的接口对应的全局变量赋予另一数值,如false值,这样就可以区分JSbridge接口中的可用接口和不可用的接口。另外,如果该预设数值为1,则另一数值则为0。
反馈单元9014,还用于利用该回调机制将该页面内的全局变量注册到该第二处理模块902。
注册到第二处理模块902的全局变量均有赋值。
设定单元9021,用于确定写入该预设数值的全局变量标识的接口为该可用接口。
依据上述步骤S503的举例,如果该预设数值为true,则设定单元9021将数值为true的全局变量所标识的接口确定为可用接口。
选取单元9022,用于若该可用接口有多个,则从该可用接口中选取性能指标最高的可用接口。
进一步地,选取单元9022,还用于若该可用接口有多个,则从该可用接口中选取通信耗时最短的可用接口。
该性能指标可以包括:通信耗时、安全指标等性能指标。
如果通信耗时为选取接口的性能指标,以JSbridge接口为例说明:
在所有JSbridge接口可用的情况下,预先使用现有的各JSbridge接口进行测试,以测出第二处理模块902通过各JSbridge接口与第一处理模块901之间通信的耗时,得出耗时由短至长依次为console.log调用方式的接口、prompt调用方式的接口、addjavascriptInterface调用方式的接口和iframe调用方式的接口。例如,若设定单元9021确定的可用接口为console.log调用方式的接口、addjavascriptInterface调用方式的接口和iframe调用方式的接口,则选取单元9022选取三种接口中耗时最短的console.log调用方式的接口。
若该结果为未有成功接收到的探测请求,则该通用接口确定为可用接口,即addjavascriptInterface调用方式的接口和iframe调用方式的接口。一种情况,按照通信耗时选取时,选取单元9022会选择addjavascriptInterface调用方式的接口;另一种情况,按照安全性能选取时,选取单元9022选取没有安全漏洞的接口(iframe调用方式的接口)。
通信单元9023,用于通过选取出的可用接口与第一处理模块901进行通信。
进一步地,通信单元9023,还用于通过该选取出的可用接口调用第一处理模块901的功能参数,以使运行于第一处理模块901内的客户端使用第一处理模块901的功能。
在实际应用中,第二处理模块902通过可用接口可以调用第一处理模块901的功能参数,这样运行于第一处理模块901内的客户端通过第二处理模块902加载的页面可以同步使用该第一处理模块901的功能,如震动功能、重力感应功能。
本实施例未尽之细节,请参阅前述图4和图5所示实施例的描述,此处不再赘述。
在本发明实施例中,当接收单元9011接收到第二处理模块902发送探测请求时,就表明发送该探测请求的接口是可用的,这样可以预先探测出终端与web前端之间通信的可用接口,防止接口不可用所导致的终端与web前端之间无法通信的情况,进而可以减少web前端和终端通信延迟的情况发生,提高通信性能。
本发明第五实施例还提供一种终端,该终端用于执行上述第一实施例或第二实施例提供的通信处理方法。
本发明第六实施例还提供一种通信处理系统,该系统包括终端和web前端,用于执行上述第一实施例或第二实施例提供的通信处理方法,具体说明请详见上述第一实施例、第二实施例,此处不再赘述。
本发明第七实施例提供了一种存储介质,该存储介质存储有计算机可执行指令,该计算机可执行指令用于执行上述第一实施例或第二实施例提供的通信处理方法。具体说明请详见上述本发明第一实施例和第二实施例,此处不再赘述。
在本申请所提供的多个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信链接可以是通过一些接口,装置或模块的间接耦合或通信链接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明实施例所提供的通信处理方法以及装置的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种通信处理方法,其特征在于,包括:
终端接收万维网web前端通过各通信接口发送的探测请求;
所述终端根据接收所述探测请求的结果确定与所述web前端之间通信的可用接口;
若所述结果为有成功接收到的探测请求,则所述终端将接收到的探测请求所来源的非通用接口确定为可用接口;
所述终端向所述web前端反馈所述可用接口的信息,使得所述web前端通过所述可用接口与所述终端进行通信。
2.根据权利要求1所述的方法,其特征在于,所述终端接收web前端通过各通信接口发送的探测请求之后包括:
识别所述探测请求中预设的标签,所述标签用于标识来源于各通信接口的探测请求,其中所述探测请求来源的通信接口为预置的非通用接口。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述结果为未有成功接收到的探测请求,则所述终端将预置的通用接口确定为可用接口。
4.根据权利要求3所述的方法,其特征在于,所述终端向所述web前端反馈所述可用接口的信息,使得所述web前端通过所述可用接口与所述终端进行通信,包括:
所述终端利用预设的回调机制向页面内的用于标识所述可用接口的全局变量写入预设数值,所述回调机制为网络视图webview组件的loadUrl;
所述终端利用所述回调机制将所述页面内的全局变量注册到所述web前端。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述web前端确定写入所述预设数值的全局变量标识的接口为所述可用接口;
若所述可用接口有多个,则所述web前端从所述可用接口中选取性能指标最高的可用接口;
所述web前端通过选取出的可用接口与所述终端进行通信。
6.根据权利要求5所述的方法,其特征在于,所述若所述可用接口有多个,则所述web前端从所述可用接口中选取性能指标最高的可用接口,包括:
若所述可用接口有多个,则所述web前端从所述可用接口中选取通信耗时最短的可用接口。
7.根据权利要求5所述的方法,其特征在于,所述web前端通过选取出的可用接口与所述终端进行通信,包括:
所述web前端通过所述选取出的可用接口调用所述终端的功能参数,以使运行于所述终端内的客户端使用所述终端的功能。
8.根据权利要求3至7任一项所述的方法,其特征在于,所述非通用接口和所述通用接口均为Javascript bridge.js文件所规定的JSbridge接口,其中所述文件是由所述web前端引入加载的页面中,所述非通用接口中包括console.log调用方式的接口和prompt调用方式的接口,所述通用接口中包括iframe调用方式的接口和addJavascriptInterface调用方式的接口。
9.一种通信处理装置,其特征在于,所述装置包括:第一处理模块和第二处理模块,其中所述第一处理模块包括:
接收单元,用于接收所述第二处理模块通过各通信接口发送的探测请求;
确定单元,用于根据接收所述探测请求的结果确定与所述第二处理模块之间通信的可用接口;若所述结果为有成功接收到的探测请求,则将接收到的探测请求所来源的非通用接口确定为可用接口;
反馈单元,用于向所述第二处理模块反馈所述可用接口的信息,使得所述第二处理模块通过所述可用接口与所述第一处理模块进行通信。
10.根据权利要求9所述的装置,其特征在于,所述第一处理模块还包括:
识别单元,用于识别所述探测请求中预设的标签,所述标签用于标识来源于各通信接口的探测请求,其中所述探测请求来源的通信接口为预置的非通用接口;
所述确定单元,还用于若所述结果为未有成功接收到的探测请求,则将预置的通用接口确定为可用接口;
所述反馈单元,还用于利用预设的回调机制向页面内的用于标识所述可用接口的全局变量写入预设数值,所述回调机制为网络视图webview组件的loadUrl,并利用所述回调机制将所述页面内的全局变量注册到所述第二处理模块。
11.根据权利要求10所述的装置,其特征在于,所述第二处理模块包括:
设定单元,用于确定写入所述预设数值的全局变量标识的接口为所述可用接口;
选取单元,用于若所述可用接口有多个,则从所述可用接口中选取性能指标最高的可用接口;
通信单元,用于通过选取出的可用接口与所述第一处理模块进行通信。
12.根据权利要求11所述的装置,其特征在于,所述选取单元,还用于若所述可用接口有多个,则从所述可用接口中选取通信耗时最短的可用接口;
所述通信单元,还用于通过所述选取出的可用接口调用所述第一处理模块的功能参数,以使运行于所述第一处理模块内的客户端使用所述第一处理模块的功能。
13.根据权利要求10至12任一项所述的装置,其特征在于,所述非通用接口和所述通用接口均为Javascript bridge.js文件所规定的JSbridge接口,其中所述文件是由所述第二处理模块引入加载的页面中,所述非通用接口中包括console.log调用方式的接口和prompt调用方式的接口,所述通用接口中包括iframe调用方式的接口和addJavascriptInterface调用方式的接口。
14.一种终端,其特征在于,所述终端用于执行权利要求1至4任一项所述的通信处理方法。
15.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1-8中任一项所述的通信处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711347479.6A CN109936586B (zh) | 2017-12-15 | 2017-12-15 | 通信处理方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711347479.6A CN109936586B (zh) | 2017-12-15 | 2017-12-15 | 通信处理方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109936586A CN109936586A (zh) | 2019-06-25 |
CN109936586B true CN109936586B (zh) | 2021-04-20 |
Family
ID=66979705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711347479.6A Active CN109936586B (zh) | 2017-12-15 | 2017-12-15 | 通信处理方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109936586B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111954015B (zh) * | 2020-08-13 | 2021-07-20 | 南京百家云科技有限公司 | 一种在线直播课堂的实现方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101394314B (zh) * | 2008-10-20 | 2011-03-23 | 北京邮电大学 | 一种Web应用系统的故障定位方法 |
US9710362B2 (en) * | 2015-06-29 | 2017-07-18 | International Business Machines Corporation | Evaluating user interface usability for task completion |
CN105187403B (zh) * | 2015-08-13 | 2018-06-12 | 国家计算机网络与信息安全管理中心 | 软件定义网络的网络安全性测试方法 |
CN106598476A (zh) * | 2015-10-19 | 2017-04-26 | 中兴通讯股份有限公司 | 磁盘状态检测及获取方法、控制器、扩展器及控制系统 |
CN106095677B (zh) * | 2016-06-08 | 2018-09-25 | 上海爱数信息技术股份有限公司 | 基于Robot Framework实现的RESTful Webservice接口自动化测试方法 |
-
2017
- 2017-12-15 CN CN201711347479.6A patent/CN109936586B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109936586A (zh) | 2019-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112653618B (zh) | 微服务应用api端点的网关注册方法及装置 | |
US11853767B2 (en) | Inter-core data processing method, system on chip and electronic device | |
EP3490304B1 (en) | Method for identifying access point and hotspot, and related products | |
KR20210027400A (ko) | 구성 시나리오 준수를 위한 모바일 디바이스에 의한 준수 설정 구현 | |
CN108446211B (zh) | 浏览器异常收集方法、装置、移动终端以及存储介质 | |
US9354919B2 (en) | Method and device for loading android virtual machine application | |
CN109088844B (zh) | 信息拦截方法、终端、服务器及系统 | |
CN105490917B (zh) | 应用中实现分享的方法和装置 | |
CN111240768A (zh) | 一种配置参数的配置方法、装置和计算机存储介质 | |
CN112039896B (zh) | 一种数据处理方法、设备、服务器及存储介质 | |
CN107274222B (zh) | 广告投放方法及装置 | |
CN108270757B (zh) | 一种用户账户切换方法、装置、客户端以及系统 | |
CN110557499B (zh) | 信息处理方法、装置及移动终端 | |
CN108804938A (zh) | 一种权限检测方法、装置、电子设备及可读存储介质 | |
CN109936586B (zh) | 通信处理方法以及装置 | |
WO2018161725A1 (en) | Method for processing ordered broadcast and electronic device | |
CN113518431B (zh) | 通信处理方法、终端、装置及存储介质 | |
CN106709330B (zh) | 记录文件执行行为的方法及装置 | |
CN107463395B (zh) | 组件调用方法及装置 | |
CN114640656A (zh) | 更新数据的方法、装置及介质 | |
CN108256312B (zh) | 网页打开本地应用程序的方法、装置及移动终端 | |
CN112579191A (zh) | 一种组件加载方法、装置及系统 | |
CN114025014B (zh) | 一种资产探测方法、装置、电子设备及存储介质 | |
CN107967423B (zh) | 一种权限获取的方法以及终端设备 | |
CN113742110A (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 |