實(shí)現(xiàn)web層和native層通信的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及移動(dòng)終端技術(shù)領(lǐng)域,特別涉及一種實(shí)現(xiàn)web層和native層通信的方法和裝置。
【背景技術(shù)】
[0002]目前移動(dòng)終端上的應(yīng)用程序根據(jù)實(shí)現(xiàn)的不同主要有三種,一種是基于HTML5L(HyperText Markup Language,超文本標(biāo)記語(yǔ)言)編寫的web(網(wǎng)絡(luò))應(yīng)用程序;一種是基于原生程序編寫的native(本地)應(yīng)用程序;一種是介于web應(yīng)用程序和native應(yīng)用程序中間,兼具web應(yīng)用程序的跨平臺(tái)開發(fā)優(yōu)勢(shì)和native應(yīng)用程序的良好用戶體驗(yàn)的hybrid(混合模式)應(yīng)用程序。在hybrid應(yīng)用程序的實(shí)現(xiàn)中,如何實(shí)現(xiàn)web層和native層通信成為了衡量一個(gè)hybrid應(yīng)用程序是否可運(yùn)行的重要體現(xiàn)。
[0003]現(xiàn)有技術(shù)提供了一種實(shí)現(xiàn)web層和native層通信的方法,可以為:在native層啟動(dòng)一個(gè)web server(服務(wù)器);當(dāng)web層想要調(diào)用native層的接口時(shí),web層向該web server發(fā)送http(HyperText Transfer Protocol,超文本傳輸協(xié)議)請(qǐng)求,web server處理該http請(qǐng)求,得到處理結(jié)果;向web層發(fā)送該處理結(jié)果。
[0004]在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
[0005]native層一直運(yùn)行的web server會(huì)加大hybrid應(yīng)用程序運(yùn)行時(shí)的內(nèi)存,導(dǎo)致內(nèi)存等資源消耗較高。
【發(fā)明內(nèi)容】
[0006]為了解決現(xiàn)有技術(shù)的問題,本發(fā)明提供了一種實(shí)現(xiàn)web層和native層通信的方法和裝置。技術(shù)方案如下:
[0007]—種實(shí)現(xiàn)網(wǎng)絡(luò)web層和本地native層通信的方法,應(yīng)用于橋梁bridge模塊中,所述bridge模塊連接所述web層和所述native層;所述方法包括:
[0008]接收發(fā)送方發(fā)送的處理消息,所述發(fā)送方位于所述web層或者所述native層;
[0009]如果所述處理消息是請(qǐng)求消息,控制接收方處理所述處理消息得到響應(yīng)消息,所述接收方位于所述web層和所述nat i ve層中除所述發(fā)送方之外的通信層;
[0010]向所述發(fā)送方發(fā)送所述響應(yīng)消息。
[0011]可選的,所述發(fā)送方位于web層,所述接收方位于native層;
[0012]所述控制接收方處理所述處理消息得到響應(yīng)消息,包括:
[0013]向所述接收方發(fā)送觸發(fā)消息,所述觸發(fā)消息包括所述處理消息,所述觸發(fā)消息用于觸發(fā)所述接收方調(diào)用處理所述處理消息的第一處理函數(shù),通過(guò)所述第一處理函數(shù)處理所述處理消息,得到響應(yīng)消息;
[0014]接收所述接收方發(fā)送的所述響應(yīng)消息。
[0015]可選的,所述發(fā)送方位于native層,所述接收方位于web層;
[0016]所述控制接收方處理所述處理消息得到響應(yīng)消息,包括:
[0017]根據(jù)所述處理消息,調(diào)用所述接收方的處理所述處理消息的第二處理函數(shù);
[0018]通過(guò)所述第二處理函數(shù)處理所述處理消息,得到響應(yīng)消息。
[0019]可選的,所述向所述發(fā)送方發(fā)送所述響應(yīng)消息之前,還包括:
[0020]確定所述響應(yīng)消息是否需要回調(diào)處理;
[0021 ]如果所述響應(yīng)消息不需要回調(diào)處理,向所述發(fā)送方發(fā)送所述響應(yīng)消息;
[0022]如果所述響應(yīng)消息需要回調(diào)處理,在所述響應(yīng)消息中設(shè)置回調(diào)標(biāo)識(shí)和回調(diào)函數(shù);
[0023]所述向所述發(fā)送方發(fā)送所述響應(yīng)消息,包括:
[0024]向所述發(fā)送方發(fā)送所述設(shè)置有回調(diào)標(biāo)識(shí)和回調(diào)函數(shù)的響應(yīng)消息。
[0025]可選的,所述方法還包括:
[0026]如果所述處理消息是回復(fù)消息且所述處理消息不需要回調(diào)處理,向所述接收方發(fā)送所述處理消息;
[0027]如果所述處理消息是回復(fù)消息且所述處理消息需要回調(diào)處理,控制所述接收方獲取處理所述處理消息的回調(diào)函數(shù),執(zhí)行所述回調(diào)函數(shù)。
[0028]—種實(shí)現(xiàn)網(wǎng)絡(luò)web層和本地native層通信的裝置,應(yīng)用于橋梁bridge模塊中,所述bridge模塊連接所述web層和所述native層;所述裝置包括:
[0029]接收模塊,用于接收發(fā)送方發(fā)送的處理消息,所述發(fā)送方位于所述web層或者所述native層;
[0030]第一控制模塊,用于如果所述處理消息是請(qǐng)求消息,控制接收方處理所述處理消息得到響應(yīng)消息,所述接收方位于所述web層和所述nati ve層中除所述發(fā)送方之外的通信層;
[0031]第一發(fā)送模塊,用于向所述發(fā)送方發(fā)送所述響應(yīng)消息。
[0032]可選的,所述發(fā)送方位于web層,所述接收方位于native層;
[0033]所述第一控制模塊,包括:
[0034]發(fā)送單元,用于向所述接收方發(fā)送觸發(fā)消息,所述觸發(fā)消息用于觸發(fā)所述接收方調(diào)用處理所述處理消息的第一處理函數(shù),通過(guò)所述第一處理函數(shù)處理所述處理消息,得到響應(yīng)消息;
[0035]接收單元,用于接收所述接收方發(fā)送的所述響應(yīng)消息。
[0036]可選的,所述發(fā)送方位于native層,所述接收方位于web層;
[0037]所述第一控制模塊,包括:
[0038]調(diào)用單元,用于根據(jù)所述處理消息,調(diào)用所述接收方的處理所述處理消息的第二處理函數(shù);
[0039]處理單元,用于通過(guò)所述第二處理函數(shù)處理所述處理消息,得到響應(yīng)消息。
[0040]可選的,所述裝置還包括:
[0041]確定模塊,用于確定所述響應(yīng)消息是否需要回調(diào)處理;
[0042]第二發(fā)送模塊,用于如果所述響應(yīng)消息不需要回調(diào)處理,向所述發(fā)送方發(fā)送所述響應(yīng)消息;
[0043]設(shè)置模塊,用于如果所述響應(yīng)消息需要回調(diào)處理,在所述響應(yīng)消息中設(shè)置回調(diào)標(biāo)識(shí)和回調(diào)函數(shù);
[0044]所述第二發(fā)送模塊,還用于向所述發(fā)送方發(fā)送所述設(shè)置有回調(diào)標(biāo)識(shí)和回調(diào)函數(shù)的響應(yīng)消息。
[0045]可選的,所述裝置還包括:
[0046]第三發(fā)送模塊,用于如果所述處理消息是回復(fù)消息且所述處理消息不需要回調(diào)處理,向所述接收方發(fā)送所述處理消息;
[0047]第二控制模塊,用于如果所述處理消息是回復(fù)消息且所述處理消息需要回調(diào)處理,控制所述接收方獲取處理所述處理消息的回調(diào)函數(shù),執(zhí)行所述回調(diào)函數(shù)。
[0048]在本發(fā)明實(shí)施例中,通過(guò)bridge模塊連接web層和native層,bridge模塊接收發(fā)送方發(fā)送的處理消息,發(fā)送方位于web層或者nat i ve層;如果該處理消息是請(qǐng)求消息,控制接收方處理該處理消息得到響應(yīng)消息,接收方位于web層和native層中除發(fā)送方之外的通信層,向發(fā)送方發(fā)送該響應(yīng)消息;由于通過(guò)bridge模塊實(shí)現(xiàn)web層和native層之間的通信,不需要在native層運(yùn)行web server且bridge模塊占用內(nèi)存較少,從而可以節(jié)省內(nèi)存,降低內(nèi)存等資源的消耗。
【附圖說(shuō)明】
[0049]圖1是本發(fā)明實(shí)施例1提供的一種實(shí)現(xiàn)web層和native層通信的方法流程圖;
[OOM]圖2是本發(fā)明實(shí)施例2提供的一種實(shí)現(xiàn)web層和native層通信的方法流程圖;
[0051 ]圖3-1是本發(fā)明實(shí)施例3提供的一種實(shí)現(xiàn)web層和native層通信的裝置結(jié)構(gòu)示意圖;
[0052]圖3-2是本發(fā)明實(shí)施例3提供的一種第一控制模塊的結(jié)構(gòu)示意圖;
[0053]圖3-3是本發(fā)明實(shí)施例3提供的另一種第一控制模塊的結(jié)構(gòu)示意圖;
[0054]圖3-4是本發(fā)明實(shí)施例3提供的另一種實(shí)現(xiàn)web層和native層通信的裝置結(jié)構(gòu)示意圖;
[0055]圖3-5是本發(fā)明實(shí)施例3提供的另一種實(shí)現(xiàn)web層和native層通信的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0056]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0057]實(shí)施例1
[0058]本發(fā)明實(shí)施例提供了一種實(shí)現(xiàn)web層和native層通信的方法,該方法的執(zhí)行主體可以為bridge模塊,bridge模塊連接web層和native層,參見圖1,其中,該方法包括:
[0059]步驟101:接收發(fā)送方發(fā)送的處理消息,發(fā)送方位于web層或者native層。
[0000]由于終端中的web層和native層之間隔著瀏覽器,因此,web層和native層之間不可以直接通信