CN105450731A - 实现web层和native层通信的方法和装置 - Google Patents
实现web层和native层通信的方法和装置 Download PDFInfo
- Publication number
- CN105450731A CN105450731A CN201510749864.8A CN201510749864A CN105450731A CN 105450731 A CN105450731 A CN 105450731A CN 201510749864 A CN201510749864 A CN 201510749864A CN 105450731 A CN105450731 A CN 105450731A
- Authority
- CN
- China
- Prior art keywords
- processing messages
- response message
- recipient
- message
- transmit leg
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/321—Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种实现web层和native层通信的方法和装置,属于移动终端技术领域。应用于桥梁bridge模块中,所述bridge模块连接所述web层和所述native层;所述方法包括:接收发送方发送的处理消息,所述发送方位于所述web层或者所述native层;如果所述处理消息是请求消息,控制接收方处理所述处理消息得到响应消息,所述接收方位于所述web层和所述native层中除所述发送方之外的通信层;向所述发送方发送所述响应消息。所述装置包括:接收模块、第一控制模块和第一发送模块。本发明可以节省内存,降低内存等资源的消耗。
Description
技术领域
本发明涉及移动终端技术领域,特别涉及一种实现web层和native层通信的方法和装置。
背景技术
目前移动终端上的应用程序根据实现的不同主要有三种,一种是基于HTML5L(HyperTextMarkupLanguage,超文本标记语言)编写的web(网络)应用程序;一种是基于原生程序编写的native(本地)应用程序;一种是介于web应用程序和native应用程序中间,兼具web应用程序的跨平台开发优势和native应用程序的良好用户体验的hybrid(混合模式)应用程序。在hybrid应用程序的实现中,如何实现web层和native层通信成为了衡量一个hybrid应用程序是否可运行的重要体现。
现有技术提供了一种实现web层和native层通信的方法,可以为:在native层启动一个webserver(服务器);当web层想要调用native层的接口时,web层向该webserver发送http(HyperTextTransferProtocol,超文本传输协议)请求,webserver处理该http请求,得到处理结果;向web层发送该处理结果。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
native层一直运行的webserver会加大hybrid应用程序运行时的内存,导致内存等资源消耗较高。
发明内容
为了解决现有技术的问题,本发明提供了一种实现web层和native层通信的方法和装置。技术方案如下:
一种实现网络web层和本地native层通信的方法,应用于桥梁bridge模块中,所述bridge模块连接所述web层和所述native层;所述方法包括:
接收发送方发送的处理消息,所述发送方位于所述web层或者所述native层;
如果所述处理消息是请求消息,控制接收方处理所述处理消息得到响应消息,所述接收方位于所述web层和所述native层中除所述发送方之外的通信层;
向所述发送方发送所述响应消息。
可选的,所述发送方位于web层,所述接收方位于native层;
所述控制接收方处理所述处理消息得到响应消息,包括:
向所述接收方发送触发消息,所述触发消息包括所述处理消息,所述触发消息用于触发所述接收方调用处理所述处理消息的第一处理函数,通过所述第一处理函数处理所述处理消息,得到响应消息;
接收所述接收方发送的所述响应消息。
可选的,所述发送方位于native层,所述接收方位于web层;
所述控制接收方处理所述处理消息得到响应消息,包括:
根据所述处理消息,调用所述接收方的处理所述处理消息的第二处理函数;
通过所述第二处理函数处理所述处理消息,得到响应消息。
可选的,所述向所述发送方发送所述响应消息之前,还包括:
确定所述响应消息是否需要回调处理;
如果所述响应消息不需要回调处理,向所述发送方发送所述响应消息;
如果所述响应消息需要回调处理,在所述响应消息中设置回调标识和回调函数;
所述向所述发送方发送所述响应消息,包括:
向所述发送方发送所述设置有回调标识和回调函数的响应消息。
可选的,所述方法还包括:
如果所述处理消息是回复消息且所述处理消息不需要回调处理,向所述接收方发送所述处理消息;
如果所述处理消息是回复消息且所述处理消息需要回调处理,控制所述接收方获取处理所述处理消息的回调函数,执行所述回调函数。
一种实现网络web层和本地native层通信的装置,应用于桥梁bridge模块中,所述bridge模块连接所述web层和所述native层;所述装置包括:
接收模块,用于接收发送方发送的处理消息,所述发送方位于所述web层或者所述native层;
第一控制模块,用于如果所述处理消息是请求消息,控制接收方处理所述处理消息得到响应消息,所述接收方位于所述web层和所述native层中除所述发送方之外的通信层;
第一发送模块,用于向所述发送方发送所述响应消息。
可选的,所述发送方位于web层,所述接收方位于native层;
所述第一控制模块,包括:
发送单元,用于向所述接收方发送触发消息,所述触发消息用于触发所述接收方调用处理所述处理消息的第一处理函数,通过所述第一处理函数处理所述处理消息,得到响应消息;
接收单元,用于接收所述接收方发送的所述响应消息。
可选的,所述发送方位于native层,所述接收方位于web层;
所述第一控制模块,包括:
调用单元,用于根据所述处理消息,调用所述接收方的处理所述处理消息的第二处理函数;
处理单元,用于通过所述第二处理函数处理所述处理消息,得到响应消息。
可选的,所述装置还包括:
确定模块,用于确定所述响应消息是否需要回调处理;
第二发送模块,用于如果所述响应消息不需要回调处理,向所述发送方发送所述响应消息;
设置模块,用于如果所述响应消息需要回调处理,在所述响应消息中设置回调标识和回调函数;
所述第二发送模块,还用于向所述发送方发送所述设置有回调标识和回调函数的响应消息。
可选的,所述装置还包括:
第三发送模块,用于如果所述处理消息是回复消息且所述处理消息不需要回调处理,向所述接收方发送所述处理消息;
第二控制模块,用于如果所述处理消息是回复消息且所述处理消息需要回调处理,控制所述接收方获取处理所述处理消息的回调函数,执行所述回调函数。
在本发明实施例中,通过bridge模块连接web层和native层,bridge模块接收发送方发送的处理消息,发送方位于web层或者native层;如果该处理消息是请求消息,控制接收方处理该处理消息得到响应消息,接收方位于web层和native层中除发送方之外的通信层,向发送方发送该响应消息;由于通过bridge模块实现web层和native层之间的通信,不需要在native层运行webserver且bridge模块占用内存较少,从而可以节省内存,降低内存等资源的消耗。
附图说明
图1是本发明实施例1提供的一种实现web层和native层通信的方法流程图;
图2是本发明实施例2提供的一种实现web层和native层通信的方法流程图;
图3-1是本发明实施例3提供的一种实现web层和native层通信的装置结构示意图;
图3-2是本发明实施例3提供的一种第一控制模块的结构示意图;
图3-3是本发明实施例3提供的另一种第一控制模块的结构示意图;
图3-4是本发明实施例3提供的另一种实现web层和native层通信的装置结构示意图;
图3-5是本发明实施例3提供的另一种实现web层和native层通信的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本发明实施例提供了一种实现web层和native层通信的方法,该方法的执行主体可以为bridge模块,bridge模块连接web层和native层,参见图1,其中,该方法包括:
步骤101:接收发送方发送的处理消息,发送方位于web层或者native层。
由于终端中的web层和native层之间隔着浏览器,因此,web层和native层之间不可以直接通信,在本发明实施例中,在终端中设置bridge模块,bridge模块包括Javascript封装的组件和native代码,bridge模块通过Javascript封装的组件和native代码连接web层和native层,从而实现web层和native层之间的通信。
当发送方想要向接收方发送处理消息时,发送方向bridge模块发送处理消息,bridge模块接收发送方发送的处理消息。
该处理消息可以为请求消息,也可以为回复消息;如果在本步骤中发送方主动向接收方发送处理消息,该处理消息可以为请求消息,并且发送方在该处理消息中插入请求消息的消息类型;如果在本步骤中发送方是回复接收方之前发送的请求消息,该处理消息可以为回复消息,并且发送方在该处理消息中插入回复消息的消息类型。
发送方可以位于web层,也可以位于native层;也即发送方可以为web应用程序,也可以为native应用程序。
当发送方位于web层时,接收方位于native层;当发送方位于native层时,接收方位于web层。也即当发送方为web应用程序时,接收方为native应用程序;当发送方为native应用程序时,接收方为web应用程序。
进一步地,如果该处理消息是回复消息,则进一步确定该处理消息是否需要回调处理;如果该处理消息不需要回调处理,向接收方发送该处理消息,整个处理流程结束。
如果该处理消息需要回调处理,控制接收方获取处理该处理消息的回调函数,执行该回调函数。
其中,控制接收方获取处理该处理消息的回调函数,执行该回调函数的步骤可以为:
向接收方发送该处理消息,该处理消息包括处理该处理消息的回调函数;接收方接收bridge模块发送的该处理消息,并从该处理消息中获取处理该处理函数的回调函数,执行该回调函数,得到处理结果。
步骤102:如果该处理消息是请求消息,控制接收方处理该处理消息得到响应消息,接收方位于web层和native层中除发送方之外的通信层。
本步骤可以通过以下第一种方式或者第二种方式实现,如果发送方位于web层,接收方位于native层,本步骤可以通过以下第一种方式实现;如果发送方位于native层,接收方位于web层,本步骤可以通过以下第二种方式实现。
对于第一种实现方式,本步骤可以通过以下步骤(1)和(2)实现,包括:
(1):向接收方发送触发消息;
由于Javascript不能直接调用native,因此,web层不可以直接调用native层,则bridge模块不能直接调用native层的处理函数,bridge模块通过向接收方发送触发消息,以触发接收方处理该处理消息。
Bridge模块存储该处理消息,并向接收方发送触发消息,该触发消息包括该处理消息的消息标识,且该触发消息用于触发接收方调用处理该处理消息的第一处理函数,通过第一处理函数处理该处理消息,得到响应消息。
进一步地,接收方接收bridge模块发送的该触发消息,从该触发消息中获取该处理消息的消息标识,根据该消息标识获取该处理消息,并获取处理该处理消息的第一处理函数,通过第一处理函数处理该处理消息,得到响应消息;向bridge模块发送该响应消息。
消息标识可以为bridge模块中存储该处理消息的存储位置。
(2):接收接收方发送的该响应消息。
Bridge模块接收接收方发送的该响应消息,执行步骤103。
对于第二种实现方式,本步骤可以通过以下步骤(A)和(B)实现,包括:
(A):根据该处理消息,调用接收方的处理该处理消息的第二处理函数;
由于native可以直接调用Javascript,因此native层可以直接调用web层,则bridge模块可以直接调用web层的处理函数,本步骤可以为:
Bridge模块向接收方发送通知消息,该通知消息包括该处理消息;接收方接收bridge模块发送的通知消息,从该通知消息中获取该处理消息,从本地获取处理该处理函数的第二处理函数,向bridge模块发送第二处理函数;bridge模块接收接收方发送的第二处理函数。
(B):通过第二处理函数处理该处理消息,得到响应消息。
进一步地,确定该响应消息是否需要回调处理;如果该响应消息不需要回调处理,执行步骤103;如果该响应消息需要回调处理,在响应消息中设置回调标识和回调函数,执行步骤103。
步骤103:向发送方发送该响应消息。
如果该处理函数需要回调处理,则本步骤可以为:
向发送方发送设置有回调标识和回调函数的响应函数。
进一步地,发送方接收bridge模块发送的该响应消息,如果该响应消息中有回调标识,则根据该回调标识,确定该响应消息需要回调处理,从该响应消息中获取回调函数,执行该回调函数。
在本发明实施例中,通过bridge模块连接web层和native层,bridge模块接收发送方发送的处理消息,发送方位于web层或者native层;如果该处理消息是请求消息,控制接收方处理该处理消息得到响应消息,接收方位于web层和native层中除发送方之外的通信层,向发送方发送该响应消息;由于通过bridge模块实现web层和native层之间的通信,不需要在native层运行webserver且bridge模块占用内存较少,从而可以节省内存,降低内存等资源的消耗。
实施例2
本发明实施例提供了一种实现web层和native层通信的方法,该方法的执行主体可以为bridge模块,bridge模块连接web层和native层,参见图2,其中,该方法包括:
步骤201:接收发送方发送的处理消息。
由于终端中的web层和native层之间隔着浏览器,因此,web层和native层之间不可以直接通信,在本发明实施例中,在终端中设置bridge模块,bridge模块包括Javascript封装的组件和native代码,bridge模块通过Javascript封装的组件和native代码连接web层和native层,从而实现web层和native层之间的通信。
Native代码依赖于终端的操作系统;如果终端的操作系统为Android(安卓),native代码为以Java为开发语言的native代码;如果终端的操作系统为IOS(InternetOperatingSystem,因特网操作系统),native代码是以Object-C为开发语言的native代码。
在终端中设置bridge模块之后,web层与native层之间只需要与bridge模块约定接口,通过其约定的接口,借助于bridge模块实现web层和native层之间的通信。例如,web层与bridge之间约定的接口为第一接口,native层与bridge之间约定的接口为第二接口。
当发送方想要向接收方发送处理消息时,发送方通过第一接口向bridge模块发送处理消息,bridge模块通过第一接口接收发送方发送的处理消息。
该处理消息可以为请求消息,也可以为回复消息;如果在本步骤中发送方主动向接收方发送处理消息,该处理消息可以为请求消息,并且发送方在该处理消息中插入请求消息的消息类型;如果在本步骤中发送方是回复接收方之前发送的请求消息,该处理消息可以为回复消息,并且发送方在该处理消息中插入回复消息的消息类型。
bridge模块接收到发送方发送的处理消息之后,执行步骤202,确定该处理消息是请求消息还是回复消息。
需要说明的是,发送方可以位于web层,也可以位于native层;也即发送方可以为web应用程序,也可以为native应用程序。
当发送方位于web层时,接收方位于native层;当发送方位于native层时,接收方位于web层。也即当发送方为web应用程序时,接收方为native应用程序;当发送方为native应用程序时,接收方为web应用程序。
步骤202:确定该处理消息是请求消息还是回复消息;如果该处理消息是请求消息,执行步骤203;如果该处理消息是回复消息,执行步骤207。
处理消息中包括消息类型,bridge模块从该处理消息中获取该处理消息的消息类型;消息类型包括请求消息类型和回复消息类型;如果该处理消息的消息类型为请求消息类型,bridge模块确定该处理消息是请求消息;如果该处理消息的消息类型为回复消息类型,bridge模块确定该处理消息是回复消息。
例如,该处理消息的消息类型为“response”时,bridge模块确定该处理消息为回复消息。再如,该处理消息的消息类型为“request”时,bridge模块确定该处理消息是请求消息。
步骤203:如果该消息是请求消息,控制接收方处理该处理消息得到响应消息。
本步骤可以通过以下第一种方式或者第二种方式实现,如果发送方位于web层,接收方位于native层,本步骤可以通过以下第一种方式实现;如果发送方位于native层,接收方位于web层,本步骤可以通过以下第二种方式实现。
对于第一种实现方式,本步骤可以通过以下步骤(1)和(2)实现,包括:
(1):向接收方发送触发消息;
由于Javascript不能直接调用native,因此,web层不可以直接调用native层,则bridge模块不能直接调用native层的处理函数,bridge模块通过向接收方发送触发消息,以触发接收方处理该处理消息。
Bridge模块存储该处理消息,并向接收方发送触发消息,该触发消息包括该处理消息的消息标识,且该触发消息用于触发接收方调用处理该处理消息的第一处理函数,通过第一处理函数处理该处理消息,得到响应消息。
进一步地,接收方接收bridge模块发送的该触发消息,从该触发消息中获取该处理消息的消息标识,根据该消息标识获取该处理消息,并获取处理该处理消息的第一处理函数,通过第一处理函数处理该处理消息,得到响应消息;向bridge模块发送该响应消息。
消息标识可以为bridge模块中存储该处理消息的存储位置。
例如,Bridge模块先将该处理消息临时存储在Javascript端,然后向接收方发送触发消息,以通知native层的接收方反向调用bridge模块,以获取该处理消息,具体可以利用shouldStartLoadWithRequest。
进一步地,如果该响应消息需要回调处理,则发送方在该响应消息中设置回调标识和回调函数;或者,发送方向bridge模块发送回调标识和回调函数,bridge模块接收发送方发送的回调标识和回调函数,由bridge模块在响应消息中设置回调标识和回调函数。
其中,回调标识可以为“callback”。
(2):接收接收方发送的该响应消息。
Bridge模块接收接收方发送的该响应消息,执行步骤204。
对于第二种实现方式,本步骤可以通过以下步骤(A)和(B)实现,包括:
(A):根据该处理消息,调用接收方的处理该处理消息的第二处理函数;
由于native可以直接调用Javascript,因此native层可以直接调用web层,则bridge模块可以直接调用web层的处理函数,本步骤可以为:
Bridge模块向接收方发送通知消息,该通知消息包括该处理消息;接收方接收bridge模块发送的通知消息,从该通知消息中获取该处理消息,从本地获取处理该处理函数的第二处理函数,向bridge模块发送第二处理函数;bridge模块接收接收方发送的第二处理函数。
需要说明的是,如果终端是以IOS为操作系统的终端,则接收方直接向bridge模块发送第二处理函数;如果终端是以Android为操作系统的终端,则接收方向bridge模块发送第二处理函数的步骤可以为:
接收方向bridge模块发送shouldOverrideUrlLoading消息,该shouldOverrideUrlLoading携带第二处理函数。
相应的,bridge模块接收接收方发送的第二处理函数的步骤可以为:
Bridge模块接收接收方发送的shouldOverrideUrlLoading消息,从该shouldOverrideUrlLoading消息中获取第二处理函数。
进一步地,如果该处理函数需要回调处理,则接收方向bridge模块发送该处理函数的同时,还向bridge模块发送回调标识和回调函数;bridge模块接收接收方发送的回调标识和回调函数。
(B):通过第二处理函数处理该处理消息,得到响应消息。
步骤204:确定该响应消息是否需要回调处理;如果该响应消息需要回调处理,执行步骤205;如果该响应消息不需要回调处理,执行步骤206。
如果发送方向bridge模块发送回调标识和回调函数,bridge模块确定该响应消息需要回调处理;如果发送方没有向bridge模块发送回调标识和回调函数,bridge模块确定该响应消息不需要回调处理。
步骤205:如果该响应消息需要回调处理,在该响应消息中设置回调标识和回调函数。
步骤206:向发送方发送该响应消息,结束。
进一步地,如果该响应消息需要回调处理,bridge模块控制发送方根据该回调标识和回调函数,对该响应消息进行回调处理,具体可以为:
Bridge模块向发送方发送设置有回调标识和回调函数的响应消息;发送方接收bridge模块发送的设置有回调标识和回调函数的响应消息,根据该回调标识,确定该响应消息需要回调处理,从该响应消息中获取回调函数,执行该回调函数,以实现对该响应消息的回调处理。
步骤207:如果该处理消息是回复消息,向接收方发送该处理消息。
例如,该处理消息是回复消息,该处理消息可以为“StringresponseData”等。
本步骤可以通过以下步骤(1)至(3)实现,包括:
(1):确定该处理消息是否需要回调处理,如果该处理消息需要回调处理,执行步骤(2);如果该处理消息不需要回调处理,执行步骤(3)。
如果该处理消息是回复消息,bridge模块确定该处理消息中是否包含回调标识;如果该处理消息中包含回调标识,bridge模块确定该处理消息需要回调处理;如果该处理消息中不包含回调标识,bridge模块确定该处理消息不需要回调处理。
(2):如果该处理消息需要回调处理,控制接收方获取处理该处理消息的回调函数,执行该回调函数,结束。
如果该处理消息需要回调处理,向接收方发送设置有回调标识和回调函数的处理消息;接收方从该处理消息中获取该回调函数,执行该回调函数。
(3):如果该处理消息不需要回调处理,向接收方发送该处理消息。
例如,该处理消息不需要回调处理,该处理消息可以为“Stringdata”等。
在本发明实施例中,通过bridge模块连接web层和native层,bridge模块接收发送方发送的处理消息,发送方位于web层或者native层;如果该处理消息是请求消息,控制接收方处理该处理消息得到响应消息,接收方位于web层和native层中除发送方之外的通信层,向发送方发送该响应消息;由于通过bridge模块实现web层和native层之间的通信,不需要在native层运行webserver且bridge模块占用内存较少,从而可以节省内存,降低内存等资源的消耗。
实施例3
本发明实施例提供了一种实现网络web层和本地native层通信的装置,应用于桥梁bridge模块中,bridge模块连接web层和native层;参见图3-1,该装置包括:
接收模块301,用于接收发送方发送的处理消息,发送方位于web层或者native层;
第一控制模块302,用于如果处理消息是请求消息,控制接收方处理处理消息得到响应消息,接收方位于web层和native层中除发送方之外的通信层;
第一发送模块303,用于向发送方发送响应消息。
可选的,发送方位于web层,接收方位于native层;
参见图3-2,第一控制模块302,包括:
发送单元3021,用于向接收方发送触发消息,触发消息用于触发接收方调用处理处理消息的第一处理函数,通过第一处理函数处理处理消息,得到响应消息;
接收单元3022,用于接收接收方发送的响应消息。
可选的,发送方位于native层,接收方位于web层;
参见图3-3,第一控制模块302,包括:
调用单元3023,用于根据处理消息,调用接收方的处理处理消息的第二处理函数;
处理单元3024,用于通过第二处理函数处理处理消息,得到响应消息。
可选的,参见图3-4,装置还包括:
确定模块304,用于确定响应消息是否需要回调处理;
第二发送模块305,用于如果响应消息不需要回调处理,向发送方发送响应消息;
设置模块306,用于如果响应消息需要回调处理,在响应消息中设置回调标识和回调函数;
第二发送模块305,还用于向发送方发送设置有回调标识和回调函数的响应消息。
可选的,参见图3-5,装置还包括:
第三发送模块307,用于如果处理消息是回复消息且处理消息不需要回调处理,向接收方发送处理消息;
第二控制模块308,用于如果处理消息是回复消息且处理消息需要回调处理,控制接收方获取处理处理消息的回调函数,执行回调函数。
在本发明实施例中,通过bridge模块连接web层和native层,bridge模块接收发送方发送的处理消息,发送方位于web层或者native层;如果该处理消息是请求消息,控制接收方处理该处理消息得到响应消息,接收方位于web层和native层中除发送方之外的通信层,向发送方发送该响应消息;由于通过bridge模块实现web层和native层之间的通信,不需要在native层运行webserver且bridge模块占用内存较少,从而可以节省内存,降低内存等资源的消耗。
需要说明的是:上述实施例提供的实现web层和native层通信的装置在实现web层和native层通信时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的实现web层和native层通信的装置与实现web层和native层通信的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种实现网络web层和本地native层通信的方法,其特征在于,应用于桥梁bridge模块中,所述bridge模块连接所述web层和所述native层;所述方法包括:
接收发送方发送的处理消息,所述发送方位于所述web层或者所述native层;
如果所述处理消息是请求消息,控制接收方处理所述处理消息得到响应消息,所述接收方位于所述web层和所述native层中除所述发送方之外的通信层;
向所述发送方发送所述响应消息。
2.如权利要求1所述的方法,其特征在于,所述发送方位于web层,所述接收方位于native层;
所述控制接收方处理所述处理消息得到响应消息,包括:
向所述接收方发送触发消息,所述触发消息包括所述处理消息,所述触发消息用于触发所述接收方调用处理所述处理消息的第一处理函数,通过所述第一处理函数处理所述处理消息,得到响应消息;
接收所述接收方发送的所述响应消息。
3.如权利要求1所述的方法,其特征在于,所述发送方位于native层,所述接收方位于web层;
所述控制接收方处理所述处理消息得到响应消息,包括:
根据所述处理消息,调用所述接收方的处理所述处理消息的第二处理函数;
通过所述第二处理函数处理所述处理消息,得到响应消息。
4.如权利要求1所述的方法,其特征在于,所述向所述发送方发送所述响应消息之前,还包括:
确定所述响应消息是否需要回调处理;
如果所述响应消息不需要回调处理,向所述发送方发送所述响应消息;
如果所述响应消息需要回调处理,在所述响应消息中设置回调标识和回调函数;
所述向所述发送方发送所述响应消息,包括:
向所述发送方发送所述设置有回调标识和回调函数的响应消息。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述处理消息是回复消息且所述处理消息不需要回调处理,向所述接收方发送所述处理消息;
如果所述处理消息是回复消息且所述处理消息需要回调处理,控制所述接收方获取处理所述处理消息的回调函数,执行所述回调函数。
6.一种实现网络web层和本地native层通信的装置,其特征在于,应用于桥梁bridge模块中,所述bridge模块连接所述web层和所述native层;所述装置包括:
接收模块,用于接收发送方发送的处理消息,所述发送方位于所述web层或者所述native层;
第一控制模块,用于如果所述处理消息是请求消息,控制接收方处理所述处理消息得到响应消息,所述接收方位于所述web层和所述native层中除所述发送方之外的通信层;
第一发送模块,用于向所述发送方发送所述响应消息。
7.如权利要求6所述的装置,其特征在于,所述发送方位于web层,所述接收方位于native层;
所述第一控制模块,包括:
发送单元,用于向所述接收方发送触发消息,所述触发消息用于触发所述接收方调用处理所述处理消息的第一处理函数,通过所述第一处理函数处理所述处理消息,得到响应消息;
接收单元,用于接收所述接收方发送的所述响应消息。
8.如权利要求6所述的装置,其特征在于,所述发送方位于native层,所述接收方位于web层;
所述第一控制模块,包括:
调用单元,用于根据所述处理消息,调用所述接收方的处理所述处理消息的第二处理函数;
处理单元,用于通过所述第二处理函数处理所述处理消息,得到响应消息。
9.如权利要求6所述的装置,其特征在于,所述装置还包括:
确定模块,用于确定所述响应消息是否需要回调处理;
第二发送模块,用于如果所述响应消息不需要回调处理,向所述发送方发送所述响应消息;
设置模块,用于如果所述响应消息需要回调处理,在所述响应消息中设置回调标识和回调函数;
所述第二发送模块,还用于向所述发送方发送所述设置有回调标识和回调函数的响应消息。
10.如权利要求6所述的装置,其特征在于,所述装置还包括:
第三发送模块,用于如果所述处理消息是回复消息且所述处理消息不需要回调处理,向所述接收方发送所述处理消息;
第二控制模块,用于如果所述处理消息是回复消息且所述处理消息需要回调处理,控制所述接收方获取处理所述处理消息的回调函数,执行所述回调函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510749864.8A CN105450731A (zh) | 2015-11-05 | 2015-11-05 | 实现web层和native层通信的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510749864.8A CN105450731A (zh) | 2015-11-05 | 2015-11-05 | 实现web层和native层通信的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105450731A true CN105450731A (zh) | 2016-03-30 |
Family
ID=55560497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510749864.8A Pending CN105450731A (zh) | 2015-11-05 | 2015-11-05 | 实现web层和native层通信的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105450731A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106131143A (zh) * | 2016-06-28 | 2016-11-16 | 北京车智赢科技有限公司 | 一种实现Hybrid App的HTML与Native交互的方法 |
CN106599045A (zh) * | 2016-11-09 | 2017-04-26 | 上海艾融软件股份有限公司 | 一种请求发送方法及装置 |
CN107066255A (zh) * | 2017-03-03 | 2017-08-18 | 海尔优家智能科技(北京)有限公司 | 一种共用物联设备逻辑的物联设备控制方法及装置 |
CN107102904A (zh) * | 2017-03-29 | 2017-08-29 | 腾讯科技(深圳)有限公司 | 基于混合应用程序的交互方法及装置 |
CN107621955A (zh) * | 2017-09-25 | 2018-01-23 | 四川长虹电器股份有限公司 | 一种简易的web app的实现方法 |
CN107704356A (zh) * | 2017-06-12 | 2018-02-16 | 平安科技(深圳)有限公司 | 异常堆栈信息获取方法、装置及计算机可读存储介质 |
CN110990167A (zh) * | 2019-11-26 | 2020-04-10 | 网易(杭州)网络有限公司 | 前端通信方法及装置、存储介质及电子设备 |
CN111008083A (zh) * | 2019-11-21 | 2020-04-14 | 北京达佳互联信息技术有限公司 | 页面通信方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100202437A1 (en) * | 2009-02-09 | 2010-08-12 | Poltys, Inc. | Telecommunications system and method for connecting a csta client to several pbxs |
CN102945169A (zh) * | 2012-12-05 | 2013-02-27 | 江苏鸿信系统集成有限公司 | 一种基于Android的Native APP融合Web APP开发系统 |
CN103746959A (zh) * | 2013-11-27 | 2014-04-23 | 上海斐讯数据通信技术有限公司 | OSGi环境下Java和C的通信机制的实现方法 |
CN104808971A (zh) * | 2014-01-24 | 2015-07-29 | 北京三星通信技术研究有限公司 | 网络应用程序管理器、方法、装置和移动终端 |
-
2015
- 2015-11-05 CN CN201510749864.8A patent/CN105450731A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100202437A1 (en) * | 2009-02-09 | 2010-08-12 | Poltys, Inc. | Telecommunications system and method for connecting a csta client to several pbxs |
CN102945169A (zh) * | 2012-12-05 | 2013-02-27 | 江苏鸿信系统集成有限公司 | 一种基于Android的Native APP融合Web APP开发系统 |
CN103746959A (zh) * | 2013-11-27 | 2014-04-23 | 上海斐讯数据通信技术有限公司 | OSGi环境下Java和C的通信机制的实现方法 |
CN104808971A (zh) * | 2014-01-24 | 2015-07-29 | 北京三星通信技术研究有限公司 | 网络应用程序管理器、方法、装置和移动终端 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106131143A (zh) * | 2016-06-28 | 2016-11-16 | 北京车智赢科技有限公司 | 一种实现Hybrid App的HTML与Native交互的方法 |
CN106599045B (zh) * | 2016-11-09 | 2020-09-29 | 上海艾融软件股份有限公司 | 一种请求发送方法及装置 |
CN106599045A (zh) * | 2016-11-09 | 2017-04-26 | 上海艾融软件股份有限公司 | 一种请求发送方法及装置 |
CN107066255A (zh) * | 2017-03-03 | 2017-08-18 | 海尔优家智能科技(北京)有限公司 | 一种共用物联设备逻辑的物联设备控制方法及装置 |
CN107102904A (zh) * | 2017-03-29 | 2017-08-29 | 腾讯科技(深圳)有限公司 | 基于混合应用程序的交互方法及装置 |
CN107102904B (zh) * | 2017-03-29 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 基于混合应用程序的交互方法及装置 |
CN107704356A (zh) * | 2017-06-12 | 2018-02-16 | 平安科技(深圳)有限公司 | 异常堆栈信息获取方法、装置及计算机可读存储介质 |
CN107704356B (zh) * | 2017-06-12 | 2019-06-28 | 平安科技(深圳)有限公司 | 异常堆栈信息获取方法、装置及计算机可读存储介质 |
US11010227B2 (en) | 2017-06-12 | 2021-05-18 | Ping An Technology (Shenzhen) Co., Ltd. | Exception stack information acquisition method and device and computer-readable storage medium |
CN107621955A (zh) * | 2017-09-25 | 2018-01-23 | 四川长虹电器股份有限公司 | 一种简易的web app的实现方法 |
CN107621955B (zh) * | 2017-09-25 | 2020-12-29 | 四川长虹电器股份有限公司 | 一种简易的web app的实现方法 |
CN111008083A (zh) * | 2019-11-21 | 2020-04-14 | 北京达佳互联信息技术有限公司 | 页面通信方法、装置、电子设备及存储介质 |
CN111008083B (zh) * | 2019-11-21 | 2023-09-19 | 北京达佳互联信息技术有限公司 | 页面通信方法、装置、电子设备及存储介质 |
CN110990167A (zh) * | 2019-11-26 | 2020-04-10 | 网易(杭州)网络有限公司 | 前端通信方法及装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105450731A (zh) | 实现web层和native层通信的方法和装置 | |
CN103209439B (zh) | 一种数据流量监控的方法、装置和设备 | |
CN103327568B (zh) | 资源分配消息发送方法、设备发现方法及相关设备 | |
CN113595908A (zh) | 报文传输方法及装置 | |
CN104219316A (zh) | 一种分布式系统中的调用请求处理方法及装置 | |
CN103618800A (zh) | 订阅通知的实现方法和装置 | |
CN102378223B (zh) | M2m终端远程管理的系统和方法 | |
CN102790776A (zh) | 心跳连接归一处理方法、终端、服务器及通信系统 | |
CN111405635B (zh) | 能力开放的实现方法、装置、设备及计算机可读存储介质 | |
CN104619045A (zh) | 用于移动终端的接入控制方法及装置 | |
US8799383B2 (en) | Method and system for transmitting widget message | |
CN112565439A (zh) | 物联网通信方法与系统 | |
US20240267965A1 (en) | Direct connection communication method, amf, access network functional entity and terminal | |
CN104660547B (zh) | 一种实现远距离通信的服务平台 | |
CN113261249A (zh) | 一种数据传输方法、相关设备及计算机存储介质 | |
US20150067066A1 (en) | Provisioning Communication Services using Proxy Server in a Cloud | |
CN104270362A (zh) | 请求处理方法和装置 | |
CN108370500B (zh) | 无线装置的优化设置 | |
CN107211274A (zh) | 一种设备关联方法以及相关设备 | |
CN103051722B (zh) | 一种确定页面是否被劫持的方法及相关设备 | |
CN106302432B (zh) | 一种基于车联网的通信装置及控制方法 | |
JP5931224B2 (ja) | データ・アクセス方法及び装置 | |
CN106231538A (zh) | 一种OneM2M架构设备绑定的方法和装置 | |
CN106453494A (zh) | 一种插件更新方法、系统、客户端和服务端 | |
CN110856213B (zh) | 切换数据传输方式的方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160330 |
|
RJ01 | Rejection of invention patent application after publication |