一種接口調(diào)用方法、裝置及終端的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其設(shè)及一種接口調(diào)用方法、裝置及終端。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,瀏覽器已成為移動(dòng)終端上必備的應(yīng)用軟件之一,通過(guò)移 動(dòng)終端上的瀏覽器瀏覽網(wǎng)頁(yè)時(shí),瀏覽器內(nèi)核對(duì)網(wǎng)頁(yè)語(yǔ)法進(jìn)行解釋并擅染網(wǎng)頁(yè)。通常,瀏覽器 內(nèi)核提供了大量接口,客戶端腳本可W調(diào)用該些接口,瀏覽器解釋執(zhí)行網(wǎng)頁(yè)中加載的客戶 端腳本,從而實(shí)現(xiàn)網(wǎng)頁(yè)的動(dòng)態(tài)展示效果,增強(qiáng)網(wǎng)頁(yè)的交互性。
[0003] 目前,瀏覽器大多為多核瀏覽器,即瀏覽器中包括至少兩個(gè)瀏覽器內(nèi)核,然而,不 同的瀏覽器內(nèi)核之間所提供的接口函數(shù)可能會(huì)存在差異。例如:不同的瀏覽器內(nèi)核針對(duì)實(shí) 現(xiàn)相同功能的接口A所設(shè)計(jì)的接口函數(shù)的參數(shù)數(shù)目、參數(shù)的傳遞順序不一樣,或者是瀏覽 器中某一瀏覽器內(nèi)核提供接口B,而另一瀏覽器內(nèi)核不提供該接口B。同時(shí),由于現(xiàn)有瀏覽 器中的擴(kuò)展插件和網(wǎng)頁(yè)都是基于某一特定的瀏覽器內(nèi)核開(kāi)發(fā)出來(lái)的,網(wǎng)頁(yè)和擴(kuò)展插件中的 客戶端腳本也基于該特定的瀏覽器內(nèi)核開(kāi)發(fā)。因此,客戶端腳本可W正常運(yùn)行在該特定的 瀏覽器內(nèi)核上。然而,若瀏覽器中當(dāng)前運(yùn)行的瀏覽器內(nèi)核不是客戶端腳本對(duì)應(yīng)的特定瀏覽 器內(nèi)核,且當(dāng)前運(yùn)行的瀏覽器內(nèi)核與該特定瀏覽器內(nèi)核,針對(duì)該客戶端腳本需要調(diào)用的接 口存在上述差異時(shí),網(wǎng)頁(yè)或擴(kuò)展插件將出現(xiàn)運(yùn)行錯(cuò)誤,導(dǎo)致瀏覽器的兼容性差。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實(shí)施例提供一種接口調(diào)用方法、裝置及終端,可W提升瀏覽器的兼容性。
[0005] 第一方面,本發(fā)明實(shí)施例提供一種接口調(diào)用方法,包括:
[0006] 接收接口調(diào)用指令,所述接口調(diào)用指令攜帶有加載客戶端腳本需要調(diào)用的接口對(duì) 應(yīng)的接口標(biāo)識(shí)和參數(shù);
[0007] 當(dāng)瀏覽器中當(dāng)前運(yùn)行的瀏覽器內(nèi)核不是所述客戶端腳本對(duì)應(yīng)的目標(biāo)瀏覽器內(nèi)核, 且所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核提供的與所述接口標(biāo)識(shí)對(duì)應(yīng)的第一接口函數(shù)和所述目標(biāo)瀏 覽器內(nèi)核提供的與所述接口標(biāo)識(shí)對(duì)應(yīng)的第二接口函數(shù)存在差異時(shí),獲取預(yù)設(shè)的所述接口標(biāo) 識(shí)對(duì)應(yīng)的所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核的目標(biāo)接口函數(shù),所述目標(biāo)接口函數(shù)為根據(jù)所述目標(biāo) 瀏覽器內(nèi)核提供的所述第二接口函數(shù)進(jìn)行預(yù)設(shè)的與所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核對(duì)應(yīng)的第 S接口函數(shù);
[000引將所述參數(shù)作為所述目標(biāo)接口函數(shù)的輸入?yún)?shù),調(diào)用所述目標(biāo)接口函數(shù)。
[0009] 在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述客戶端腳本為所述瀏覽器中的擴(kuò)展 插件所包括的腳本程序;
[0010] 在所述接收接口調(diào)用指令之前,所述方法還包括:
[0011] 當(dāng)檢測(cè)到打開(kāi)網(wǎng)頁(yè)的觸發(fā)事件時(shí),將瀏覽器中需要加載的擴(kuò)展插件對(duì)應(yīng)的客戶端 腳本插入待打開(kāi)的網(wǎng)頁(yè)中。
[0012] 結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式 中,所述擴(kuò)展插件還包括在瀏覽器中加載的主程序;
[0013] 所述接收接口調(diào)用指令,所述接口調(diào)用指令攜帶有加載客戶端腳本需要調(diào)用的接 口對(duì)應(yīng)的接口標(biāo)識(shí)和參數(shù)之前,所述方法還包括:
[0014] 接收到加載該擴(kuò)展插件的觸發(fā)指令時(shí),啟動(dòng)新的進(jìn)程加載所述主程序,所述新的 進(jìn)程中加載有所述目標(biāo)瀏覽器內(nèi)核。
[0015] 結(jié)合第一方面,在第一方面的第=種可能的實(shí)現(xiàn)方式中,所述當(dāng)瀏覽器中當(dāng)前運(yùn) 行的瀏覽器內(nèi)核不是所述客戶端腳本對(duì)應(yīng)的目標(biāo)瀏覽器內(nèi)核,且所述當(dāng)前運(yùn)行的瀏覽器內(nèi) 核提供的與所述接口標(biāo)識(shí)對(duì)應(yīng)的第一接口函數(shù)和所述目標(biāo)瀏覽器內(nèi)核提供的與所述接口 標(biāo)識(shí)對(duì)應(yīng)的第二接口函數(shù)存在差異時(shí),獲取預(yù)設(shè)的所述接口標(biāo)識(shí)對(duì)應(yīng)的所述當(dāng)前運(yùn)行的瀏 覽器內(nèi)核的目標(biāo)接口函數(shù)包括:
[0016] 當(dāng)瀏覽器中當(dāng)前運(yùn)行的瀏覽器內(nèi)核不是所述客戶端腳本對(duì)應(yīng)的目標(biāo)瀏覽器內(nèi)核, 且所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核提供的與所述接口標(biāo)識(shí)對(duì)應(yīng)的第一接口函數(shù)和所述目標(biāo)瀏 覽器內(nèi)核提供的與所述接口標(biāo)識(shí)對(duì)應(yīng)的第二接口函數(shù)存在差異時(shí),根據(jù)所述接口標(biāo)識(shí),從 預(yù)設(shè)信息庫(kù)中查詢?cè)摻涌跇?biāo)識(shí)對(duì)應(yīng)所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核的接口函數(shù);
[0017] 將所查詢到的接口函數(shù)確定為目標(biāo)接口函數(shù)。
[0018] 結(jié)合第一方面或第一方面的上述任意一種可能的實(shí)現(xiàn)方式,在第一方面的第四種 可能的實(shí)現(xiàn)方式中,所述將所述參數(shù)作為所述目標(biāo)接口函數(shù)的輸入?yún)?shù),調(diào)用所述目標(biāo)接 口函數(shù)之后,所述方法還包括:
[0019] 返回所述目標(biāo)接口函數(shù)的調(diào)用結(jié)果。
[0020] 第二方面,本發(fā)明實(shí)施例提供一種接口調(diào)用裝置,所述裝置應(yīng)用于瀏覽器中,包 括:
[0021] 接收模塊,用于接收接口調(diào)用指令,所述接口調(diào)用指令攜帶有加載客戶端腳本需 要調(diào)用的接口對(duì)應(yīng)的接口標(biāo)識(shí)和參數(shù);
[0022] 確定模塊,用于當(dāng)瀏覽器中當(dāng)前運(yùn)行的瀏覽器內(nèi)核不是所述客戶端腳本對(duì)應(yīng)的目 標(biāo)瀏覽器內(nèi)核,且所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核提供的與所述接口標(biāo)識(shí)對(duì)應(yīng)的第一接口函數(shù) 和所述目標(biāo)瀏覽器內(nèi)核提供的與所述接口標(biāo)識(shí)對(duì)應(yīng)的第二接口函數(shù)存在差異時(shí),獲取預(yù)設(shè) 的所述接口標(biāo)識(shí)對(duì)應(yīng)的所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核的目標(biāo)接口函數(shù),所述目標(biāo)接口函數(shù)為 根據(jù)所述目標(biāo)瀏覽器內(nèi)核提供的所述第二接口函數(shù)進(jìn)行預(yù)設(shè)的與所述當(dāng)前運(yùn)行的瀏覽器 內(nèi)核對(duì)應(yīng)的第=接口函數(shù);
[0023] 調(diào)用模塊,用于將所述參數(shù)作為所述目標(biāo)接口函數(shù)的輸入?yún)?shù),調(diào)用所述目標(biāo)接 口函數(shù)。
[0024] 在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述客戶端腳本為所述瀏覽器中的擴(kuò)展 插件所包括的腳本程序,所述裝置還包括:
[0025] 插入模塊,用于當(dāng)檢測(cè)到打開(kāi)網(wǎng)頁(yè)的觸發(fā)事件時(shí),將瀏覽器中需要加載的擴(kuò)展插 件對(duì)應(yīng)的客戶端腳本插入待打開(kāi)的網(wǎng)頁(yè)中。
[0026] 結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式 中,所述擴(kuò)展插件還包括在瀏覽器中加載的主程序,所述裝置還包括:
[0027] 啟動(dòng)模塊,用于接收到加載該擴(kuò)展插件的觸發(fā)指令時(shí),啟動(dòng)新的進(jìn)程加載所述主 程序,所述新的進(jìn)程中加載有所述目標(biāo)瀏覽器內(nèi)核。
[002引結(jié)合第二方面,在第二方面的第=種可能的實(shí)現(xiàn)方式中,所述確定模塊具體用 于:
[0029] 當(dāng)瀏覽器中當(dāng)前運(yùn)行的瀏覽器內(nèi)核不是所述客戶端腳本對(duì)應(yīng)的目標(biāo)瀏覽器內(nèi)核, 且所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核提供的與所述接口標(biāo)識(shí)對(duì)應(yīng)的第一接口函數(shù)和所述目標(biāo)瀏 覽器內(nèi)核提供的與所述接口標(biāo)識(shí)對(duì)應(yīng)的第二接口函數(shù)存在差異時(shí),根據(jù)所述接口標(biāo)識(shí),從 預(yù)設(shè)信息庫(kù)中查詢?cè)摻涌跇?biāo)識(shí)對(duì)應(yīng)所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核的接口函數(shù);
[0030] 將所查詢到的接口函數(shù)確定為目標(biāo)接口函數(shù)。
[0031] 結(jié)合第二方面或第二方面的上述任意一種可能的實(shí)現(xiàn)方式,在第二方面的第四種 可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0032] 返回模塊,用于返回所述目標(biāo)接口函數(shù)的調(diào)用結(jié)果。
[0033] 第=方面,本發(fā)明實(shí)施例提供一種終端,包括如上所述的任意一種接口調(diào)用裝置。
[0034] 實(shí)施本發(fā)明實(shí)施例,接收接口調(diào)用指令,所述接口調(diào)用指令攜帶有加載客戶端腳 本需要調(diào)用的接口對(duì)應(yīng)的接口標(biāo)識(shí)和參數(shù);當(dāng)瀏覽器中當(dāng)前運(yùn)行的瀏覽器內(nèi)核不是所述客 戶端腳本對(duì)應(yīng)的目標(biāo)瀏覽器內(nèi)核,且所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核提供的與所述接口標(biāo)識(shí)對(duì) 應(yīng)的第一接口函數(shù)和所述目標(biāo)瀏覽器內(nèi)核提供的與所述接口標(biāo)識(shí)對(duì)應(yīng)的第二接口函數(shù)存 在差異時(shí),獲取預(yù)設(shè)的所述接口標(biāo)識(shí)對(duì)應(yīng)的所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核的目標(biāo)接口函數(shù); 將所述參數(shù)作為所述目標(biāo)接口函數(shù)的輸入?yún)?shù),調(diào)用所述目標(biāo)接口函數(shù)。采用本發(fā)明實(shí)施 例,根據(jù)瀏覽器中不同的瀏覽器內(nèi)核針對(duì)某些接口提供的接口函數(shù)存在差異的情況,預(yù)先 設(shè)置可供替換的接口函數(shù),因此,不管當(dāng)前運(yùn)行的瀏覽器內(nèi)核是不是客戶端腳本對(duì)應(yīng)的目 標(biāo)瀏覽器內(nèi)核,瀏覽器均可W正常執(zhí)行客戶端腳本調(diào)用該部分存在差異的接口的請(qǐng)求,從 而避免客戶端腳本因調(diào)用該部分存在差異的接口時(shí)而出現(xiàn)運(yùn)行錯(cuò)誤的情況,提升瀏覽器的 兼容性。
【附圖說(shuō)明】
[0035] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使 用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng) 域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可W根據(jù)該些附圖獲得其他的附 圖。
[0036] 圖1是本發(fā)明實(shí)施例提供的一種接口調(diào)用方法的流程示意圖;
[0037] 圖2是本發(fā)明實(shí)施例提供的一種接口調(diào)用方法的另一流程示意圖;
[003引圖3是本發(fā)明實(shí)施例提供的一種接口調(diào)用裝置的結(jié)構(gòu)示意圖;
[0039] 圖4是本發(fā)明實(shí)施例提供的一種接口調(diào)用裝置的另一結(jié)構(gòu)示意圖;
[0040] 圖5是本發(fā)明實(shí)施例提供的一種終端的結(jié)構(gòu)示意圖;
[0041] 圖6是本發(fā)明實(shí)施例提供的一種接口調(diào)用裝置的又一結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0042] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0043] 本發(fā)明實(shí)施例提供了一種接口調(diào)用方法、裝置及終端,接收接口調(diào)用指令,所述接 口調(diào)用指令攜帶有加載客戶端腳本需要調(diào)用的接口對(duì)應(yīng)的接口標(biāo)識(shí)和參數(shù);當(dāng)瀏覽器中當(dāng) 前運(yùn)行的瀏覽器內(nèi)核不是所述客戶端腳本對(duì)應(yīng)的目標(biāo)瀏覽器內(nèi)核,且所述當(dāng)前運(yùn)行的瀏覽 器內(nèi)核和所述目標(biāo)瀏覽器內(nèi)核分別提供的該接口標(biāo)識(shí)對(duì)應(yīng)的接口函數(shù)存在差異時(shí),確定該 接口標(biāo)識(shí)對(duì)應(yīng)的所述當(dāng)前運(yùn)行的瀏覽器內(nèi)核的目標(biāo)接口函數(shù),所述目標(biāo)接口函數(shù)為預(yù)設(shè)的 接口函數(shù);將所述參數(shù)作為所述目標(biāo)接口函數(shù)的輸入?yún)?shù),調(diào)用所述目標(biāo)接口函數(shù)。采用本 發(fā)明實(shí)施例,根據(jù)瀏覽器中不同的瀏覽器內(nèi)核針對(duì)某些接口提供的接口函數(shù)存在差異的情 況,預(yù)先設(shè)置可供替換的接口函數(shù),因此,不管當(dāng)前運(yùn)行的瀏覽器內(nèi)核