專利名稱:一種嵌入式瀏覽器接口動態(tài)擴展方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及瀏覽器技術(shù)領(lǐng)域,特別涉及一種嵌入式瀏覽器接口動態(tài)擴展方法及系統(tǒng)。
背景技術(shù):
目前,嵌入式瀏覽器廣泛應(yīng)用于Internet-TV、iDVD、Web終端、數(shù)字電視機頂盒、家庭網(wǎng)關(guān)、掌上電腦等各種信息電器和便攜式網(wǎng)絡(luò)終端中,其作為中間件,已不僅僅是用于門戶導(dǎo)航,還承擔(dān)互聯(lián)網(wǎng)內(nèi)容接收、用戶交互(Π)、視頻業(yè)務(wù)導(dǎo)航、業(yè)務(wù)支撐等功能。為了支持各種業(yè)務(wù)的快速部署,瀏覽器必須具備可擴展的接口提供給業(yè)務(wù)應(yīng)用。傳統(tǒng)的設(shè)計方法是靜態(tài)擴展JavaScript引擎,即在瀏覽器軟件發(fā)布時,JavaScript對象和方法已經(jīng)設(shè)計好。如果業(yè)務(wù)應(yīng)用要增加新功能,必須修改瀏覽器內(nèi)核代碼,重新擴展 JavaScript對象或方法,然后重新編譯測試后把瀏覽器運行庫下載到機頂盒中。這種方法步驟繁瑣,修改周期較長,無法對需求變化做出快速的響應(yīng),每添加一種新業(yè)務(wù),必須升級瀏覽器才能擴展新的業(yè)務(wù)功能,使得瀏覽器與具體業(yè)務(wù)捆綁,這不符合瀏覽器作為中間件進行應(yīng)用開發(fā)的原則。
發(fā)明內(nèi)容
本發(fā)明的目的在于,為克服現(xiàn)有技術(shù)針對嵌入式瀏覽器的JavaScript接口采用靜態(tài)擴展方式帶來的步驟繁瑣,修改周期較長,無法對需求變化做出快速的響應(yīng),每添加一種新業(yè)務(wù),必須升級瀏覽器才能擴展新的業(yè)務(wù)功能,使得瀏覽器與具體業(yè)務(wù)捆綁等缺陷,從而提出一種嵌入式瀏覽器接口動態(tài)擴展方法及系統(tǒng)。本發(fā)明提供一種嵌入式瀏覽器JavaScript接口動態(tài)擴展方法,包含步驟1,瀏覽器以靜態(tài)方式擴展JavaScript引擎的應(yīng)用支撐接口、應(yīng)用庫載入接口和應(yīng)用庫卸載接口。步驟2,某一業(yè)務(wù)提供方進行其業(yè)務(wù)所需的若干應(yīng)用接口的開發(fā),并將所述開發(fā)的若干接口的代碼編譯成二進制形式的動態(tài)庫文件。步驟3,上層應(yīng)用程序或者業(yè)務(wù)頁面根據(jù)業(yè)務(wù)的啟動使用應(yīng)用庫載入接口將所述動態(tài)庫文件存儲到所述瀏覽器的內(nèi)存中。步驟4,當(dāng)所述瀏覽器在頁面中解析到所述應(yīng)用支撐接口時利用此接口在所述瀏覽器內(nèi)存中查找所述業(yè)務(wù)提供方的若干應(yīng)用接口的入口地址,如果找到則執(zhí)行所述應(yīng)用接口的程序,即實現(xiàn)了基于業(yè)務(wù)動態(tài)擴展所述瀏覽器的JavaScript接口。其中,所述應(yīng)用支撐接口為所述瀏覽器擴展的JavaScript接口,該應(yīng)用支撐接口可被頁面調(diào)用,所述應(yīng)用支撐接口依據(jù)業(yè)務(wù)提供方開發(fā)的接口的接口名從所述瀏覽器內(nèi)存的動態(tài)庫中查找指定接口名的接口程序的入口地址,如果查找到,則執(zhí)行擴展應(yīng)用接口 ;所述應(yīng)用庫載入接口和應(yīng)用庫卸載接口為瀏覽器擴展的接口,所述應(yīng)用庫載入接口將業(yè)務(wù)提供方的動態(tài)庫文件載入到所述瀏覽器內(nèi)存中;所述應(yīng)用卸載接口用于釋放業(yè)務(wù)提供方動態(tài)庫文件占用的所述瀏覽器內(nèi)存的動態(tài)庫資源。上述技術(shù)方案中,所述步驟4之后還包含以下步驟用戶退出業(yè)務(wù)時通過上層應(yīng)用程序或者業(yè)務(wù)頁面使用應(yīng)用庫卸載接口將業(yè)務(wù)提供方動態(tài)庫所占用瀏覽器內(nèi)存釋放;其中,所述應(yīng)用庫卸載接口為瀏覽器擴展的接口,該接口用于釋放業(yè)務(wù)提供方動態(tài)庫文件占用的所述瀏覽器內(nèi)存的動態(tài)庫資源。所述應(yīng)用庫載入接口和應(yīng)用庫卸載接口可同時分別由上層應(yīng)用庫載入接口和上層應(yīng)用庫卸載接口替換;其中,所述上層應(yīng)用庫載入接口,為瀏覽器擴展的接口,該接口用于將業(yè)務(wù)提供方的動態(tài)庫文件載入到所述瀏覽器內(nèi)存中;所述上層應(yīng)用庫卸載接口,為瀏覽器擴展的接口,該接口用于釋放業(yè)務(wù)提供方動態(tài)庫文件占用的所述瀏覽器內(nèi)存的動態(tài)庫資源。所述調(diào)用瀏覽器的上層應(yīng)用程序使用所述上層應(yīng)用庫載入接口和所述應(yīng)用庫卸·載接口在業(yè)務(wù)啟動或關(guān)閉時加載和卸載業(yè)務(wù)提供方擴展的應(yīng)用接口的二進制代碼?;谝陨戏椒ū景l(fā)明還提供一種嵌入式瀏覽器JavaScript接口動態(tài)擴展系統(tǒng),該系統(tǒng)包含包含JavaScript引擎的瀏覽器、上層應(yīng)用程序模塊、業(yè)務(wù)應(yīng)用接口單元,其特征在于,所述瀏覽器中的JavaScript引擎還包含應(yīng)用支撐接口、應(yīng)用庫載入接口和應(yīng)用庫卸載接口;所述應(yīng)用支撐接口用于依據(jù)接口名參數(shù)從所述瀏覽器內(nèi)存中查找該接口名對應(yīng)的擴展接口在動態(tài)庫文件的入口地址并執(zhí)行接口程序;所述應(yīng)用庫載入接口將業(yè)務(wù)提供方應(yīng)用接口的動態(tài)庫文件存儲到所述瀏覽器的內(nèi)存中;所述應(yīng)用庫卸載接口將釋放業(yè)務(wù)提供方的動態(tài)庫文件占用的瀏覽器內(nèi)存;所述上層應(yīng)用程序模塊還包含上層應(yīng)用庫載入接口和上層應(yīng)用庫卸載接口 ;所述上層應(yīng)用庫載入接口用于將業(yè)務(wù)提供方應(yīng)用接口的動態(tài)庫文件存儲到所述瀏覽器的內(nèi)存中;所述上層應(yīng)用庫卸載接口用于將釋放業(yè)務(wù)提供方應(yīng)用接口的動態(tài)庫文件占用的瀏覽器內(nèi)存;所述瀏覽器還設(shè)置有內(nèi)存單元,用于存放某一業(yè)務(wù)提供方按照擴展接口規(guī)范進行其業(yè)務(wù)所需的若干JavaScript接口代碼編譯成的二進制形式的動態(tài)庫文件;所述應(yīng)用支撐接口,依據(jù)業(yè)務(wù)提供方開發(fā)的接口程序的名字尋找該程序在所述瀏覽器內(nèi)存中的地址指針。上述技術(shù)方案中,所述應(yīng)用庫載入接口進一步包含參數(shù)接受模塊,該模塊用于接收業(yè)務(wù)提供方動態(tài)庫文件或文件列表所在的路徑。所述應(yīng)用庫卸載接口輸入?yún)?shù)包含業(yè)務(wù)提供方動態(tài)庫文件或文件列表所在的路徑。所述上層應(yīng)用庫載入接口的輸入?yún)?shù)包含業(yè)務(wù)提供方動態(tài)庫文件或文件列表所在的路徑。所述上層應(yīng)用庫卸載接口的輸入?yún)?shù)包含業(yè)務(wù)提供方動態(tài)庫文件或文件列表所在的路徑。本發(fā)明的優(yōu)點在于,采用本發(fā)明的方法JavaScript解析引擎和業(yè)務(wù)功能使用應(yīng)用支撐接口作為橋梁,業(yè)務(wù)功能更新時,只需要按照接口設(shè)計規(guī)范,在業(yè)務(wù)模塊添加相應(yīng)功能即可,無需將業(yè)務(wù)與瀏覽器的JavaScript引擎綁定,接口的擴展無需再修改瀏覽器,瀏覽器沒有后續(xù)工作量,使得瀏覽器從靜態(tài)擴展接口的長期維護中解放出來,業(yè)務(wù)擴展方便,升級和部署快。此外,此方法動態(tài)的加載業(yè)務(wù)庫,減少了資源的耗費。以解決靜態(tài)擴展JavaScript引擎的缺陷,能夠快速擴展業(yè)務(wù)提供方應(yīng)用的接口。
圖Ι-a是本發(fā)明的一種嵌入式瀏覽器接口動態(tài)擴展方法的流程圖;圖Ι-b是本發(fā)明的另一種嵌入式瀏覽器接口動態(tài)擴展方法的流程圖;圖2是本發(fā)明的嵌入式瀏覽器接口動態(tài)擴展系統(tǒng)的組成框圖;圖3是本發(fā)明的一個實施例的嵌入式瀏覽器JavaScript接口動態(tài)擴展運行流程圖。
具體實施方式
下面通過一個具體實施例對本發(fā)明的嵌入式瀏覽器JavaScript接口動態(tài)擴展方法做進一步闡述。本發(fā)明的瀏覽器預(yù)先在JavaScript引擎中靜態(tài)擴展應(yīng)用庫載入接口、應(yīng)用庫卸載接口和一個應(yīng)用支撐接口,并擴展上層應(yīng)用庫載入接口和上層應(yīng)用庫卸載接口 ;業(yè)務(wù)提供方將業(yè)務(wù)所需的應(yīng)用接口編譯成二進制動態(tài)庫文件,業(yè)務(wù)頁面制作時需要執(zhí)行業(yè)務(wù)相關(guān)接口時調(diào)用瀏覽器的應(yīng)用支撐接口,以業(yè)務(wù)接口名和對應(yīng)于該業(yè)務(wù)的所需參數(shù)作為參數(shù),其中所需接口參數(shù)是和接口功能相關(guān)的,不同接口所需參數(shù)不同,由業(yè)務(wù)接口確定作為輸入?yún)?shù)提供給應(yīng)用支撐接口。運行時,首先使用瀏覽器提供的應(yīng)用庫載入接口將業(yè)務(wù)提供方的動態(tài)庫載入到瀏覽器內(nèi)存中,然后當(dāng)訪問業(yè)務(wù)頁面,瀏覽器JavaScript引擎解析到擴展的應(yīng)用支撐接口,所述應(yīng)用支撐接口運用輸入?yún)?shù)中的業(yè)務(wù)接口名在內(nèi)存中查找該業(yè)務(wù)接口名對應(yīng)的接口程序的地址,如果找到則使用業(yè)務(wù)接口地址指針進行執(zhí)行該業(yè)務(wù)接口。其次,業(yè)務(wù)接口執(zhí)行完畢后的返回值由所述應(yīng)用支撐接口返回給頁面。最后,關(guān)閉該業(yè)務(wù)時,使用瀏覽器擴展的應(yīng)用庫卸載接口卸載內(nèi)存中的業(yè)務(wù)提供方編譯的接口程序的二進制動態(tài)庫文件。 其中,瀏覽器動態(tài)加載和卸載業(yè)務(wù)提供方動態(tài)庫文件代碼可采用以下兩種方法第一種方式,上層應(yīng)用程序使用瀏覽器擴展的上層應(yīng)用庫載入接口在訪問業(yè)務(wù)提供方業(yè)務(wù)頁面前將業(yè)務(wù)提供方動態(tài)庫加載進內(nèi)存,在退出業(yè)務(wù)提供方業(yè)務(wù)頁面前使用上層應(yīng)用庫卸載接口釋放占用的內(nèi)存。第二種方式,業(yè)務(wù)提供方應(yīng)用頁面中使用瀏覽器擴展的JavaScript應(yīng)用庫載入接口在使用業(yè)務(wù)提供方業(yè)務(wù)接口前將業(yè)務(wù)提供方動態(tài)庫文件代碼載入進內(nèi)存,在退出業(yè)務(wù)提供方業(yè)務(wù)頁面前使用JavaScript應(yīng)用庫卸載接口釋放占用的內(nèi)存。本發(fā)明提供的一種嵌入式瀏覽器接口動態(tài)擴展方法,該方法的步驟如下(I)以靜態(tài)擴展方式在JavaScript引擎里擴展應(yīng)用支撐接口 ;(2)在JavaScript引擎里擴展應(yīng)用庫載入接口、應(yīng)用庫卸載接口。同時給上層應(yīng)用程序接口中擴展上層應(yīng)用庫載入接口和上層應(yīng)用庫卸載接口。JavaScript中的應(yīng)用庫載入、卸載接口是供頁面調(diào)用的,上層應(yīng)用程序接口中的應(yīng)用庫載入、卸載接口是供上層調(diào)用瀏覽器的程序直接調(diào)用的;(3)業(yè)務(wù)提供方或者業(yè)務(wù)提供方按照擴展接口規(guī)范進行自身業(yè)務(wù)JavaScript接口的開發(fā),并編譯成二進制形式的動態(tài)庫,不同業(yè)務(wù)的JavaScript接口能夠進行獨立開發(fā),可以加快新業(yè)務(wù)的部署;(4)如果是上層應(yīng)用程序加載業(yè)務(wù)提供方動態(tài)庫,則在業(yè)務(wù)啟動時,使用上層應(yīng)用庫載入接口,將業(yè)務(wù)相關(guān)的JavaScript所有動態(tài)庫載入瀏覽器內(nèi)存中;當(dāng)業(yè)務(wù)退出時,使用上層應(yīng)用庫卸載接口,釋放在內(nèi)存中占用的資源;(5)如果是業(yè)務(wù)提供方業(yè)務(wù)頁面加載業(yè)務(wù)提供方應(yīng)用動態(tài)庫,則在業(yè)務(wù)提供方業(yè)務(wù)頁面中使用業(yè)務(wù)提供方的業(yè)務(wù)接口就是業(yè)務(wù)提供方動態(tài)庫中的接口前使用JavaScript應(yīng)用庫載入接口將業(yè)務(wù)提供方應(yīng)用二進制代碼載入進瀏覽器內(nèi)存;在退出業(yè)務(wù)提供方應(yīng)用頁面時使用JavaScript應(yīng)用庫卸載接口釋放在內(nèi)存中占用的資源;其中,上述所述的方法又可以進一步分解為以下兩種執(zhí)行方式,參考附圖l_a和附圖l_b及有關(guān)兩幅圖如下的描述。如圖l_a所示,該圖為本發(fā)明的一種動態(tài)嵌入式瀏覽器接口動態(tài)擴展方法的流程·圖;所述方法包含如下步驟步驟1,瀏覽器擴展應(yīng)用支撐接口、上層應(yīng)用庫載入接口及上層應(yīng)用庫卸載接口。步驟2,業(yè)務(wù)提供方開發(fā)新業(yè)務(wù)接口的代碼,并將代碼編譯為二進制形式的動態(tài)庫。步驟3,調(diào)用瀏覽器的上層應(yīng)用程序使用所述上層應(yīng)用庫載入接口將所述二進制形式的動態(tài)庫文件存載入到瀏覽器內(nèi)存中。步驟4,當(dāng)所述瀏覽器在頁面中解析到所述應(yīng)用支撐接口時利用此接口在所述瀏覽器內(nèi)存中動態(tài)分別查找所述業(yè)務(wù)提供方的若干接口的入口地址。步驟5,依據(jù)入口地址調(diào)用接口函數(shù)及實現(xiàn)了瀏覽器接口的動態(tài)擴展。如圖l_b所示,該圖為本發(fā)明的另一種動態(tài)嵌入式瀏覽器接口動態(tài)擴展方法的流程圖,所述方法包含如下步驟步驟1,瀏覽器擴展應(yīng)用支撐接口、應(yīng)用庫載入接口及應(yīng)用庫卸載接口。步驟2,業(yè)務(wù)提供方開發(fā)新業(yè)務(wù)接口的代碼,并將代碼編譯為二進制形式的動態(tài)庫。步驟3,業(yè)務(wù)頁面使用應(yīng)用庫載入接口將所述二進制形式的動態(tài)庫文件存載入到瀏覽器內(nèi)存中。步驟4,當(dāng)所述瀏覽器在頁面中解析到所述應(yīng)用支撐接口時利用此接口在所述瀏覽器內(nèi)存中動態(tài)分別查找所述業(yè)務(wù)提供方的若干接口的入口地址。步驟5,依據(jù)入口地址調(diào)用接口函數(shù)及實現(xiàn)了瀏覽器接口的動態(tài)擴展。其中,找到業(yè)務(wù)接口程序的入口的地址,則調(diào)用業(yè)務(wù)接口程序來完成業(yè)務(wù)的相關(guān)事件處理;即實現(xiàn)了瀏覽器動態(tài)加載接口的問題。如圖2所示,該圖為本發(fā)明的嵌入式瀏覽器接口動態(tài)擴展系統(tǒng)的組成框圖;所述瀏覽器接口動態(tài)擴展系統(tǒng)包含包含JavaScript引擎的瀏覽器,上層應(yīng)用程序模塊和業(yè)務(wù)應(yīng)用接口模塊。所述包含JavaScript引擎的瀏覽器,用于擴展應(yīng)用支撐接口、應(yīng)用庫載入接口、應(yīng)用庫卸載接口。同時給所述上層應(yīng)用程序接口中擴展一個上層應(yīng)用庫載入接口和上層應(yīng)用庫卸載接口 ;該瀏覽器還設(shè)置有內(nèi)存,用于存儲業(yè)務(wù)提供方開發(fā)的應(yīng)用接口的程序;
其中,所述應(yīng)用支撐接口,依據(jù)業(yè)務(wù)提供方開發(fā)的接口程序的名字尋找該程序在所述瀏覽器內(nèi)存中的地址指針;所述應(yīng)用庫載入接口,用于業(yè)務(wù)頁面依據(jù)所述業(yè)務(wù)提供方提供的動態(tài)庫文件或文件列表的存儲路徑將動態(tài)庫加載到瀏覽器內(nèi)存中;所述應(yīng)用庫卸載接口與所述應(yīng)用庫載入接口對應(yīng),用于釋放內(nèi)存中存放的接口程序的;所述上層應(yīng)用庫載入接口和所述上層應(yīng)用庫卸載接口,用于上層應(yīng)用程序依據(jù)所述業(yè)務(wù)提供方提供的動態(tài)庫文件或文件列表的存儲路徑將動態(tài)庫加載到瀏覽器內(nèi)存中;所述上層應(yīng)用庫卸載接口與所述上層應(yīng)用庫載入接口對應(yīng),用于釋放內(nèi)存中存放的接口程序的;實施例如圖3所示,此實施例中的嵌入式操作系統(tǒng)為Linux操作系統(tǒng)。
步驟I,使用 dlsym 擴展 JavaScript 的應(yīng)用支撐接口 Stbservice. CallApp,實現(xiàn)在已加載到內(nèi)存中的業(yè)務(wù)動態(tài)庫中查找相應(yīng)的業(yè)務(wù)提供方業(yè)務(wù)接口指針。這樣,瀏覽器在發(fā)布時就具有了開放式的動態(tài)管理接口,具有動態(tài)擴展的能力。步驟2,瀏覽器使用Linux系統(tǒng)函數(shù)dlopen實現(xiàn)上層應(yīng)用庫加載接口LoadService,參數(shù)為包含業(yè)務(wù)需要的所有JavaScript動態(tài)庫的配置文件路徑,調(diào)用該接口后將配置文件中所有動態(tài)庫都加載進內(nèi)存;使用dlclose實現(xiàn)上層應(yīng)用庫卸載接口UnLoadService,釋放占用的內(nèi)存。步驟3,業(yè)務(wù)提供方或者業(yè)務(wù)提供方進行自身業(yè)務(wù)接口的開發(fā),并編譯成.so動態(tài)庫。步驟4,上層應(yīng)用程序?qū)I(yè)務(wù)所需的所有JavaScript動態(tài)庫記錄到配置文件中,配置文件使用XML格式。步驟5,業(yè)務(wù)提供方在制作頁面時,在需要調(diào)用其業(yè)務(wù)接口處,調(diào)用擴展JavaScript的應(yīng)用支撐接口 Stbservice. CallApp,參數(shù)為相應(yīng)業(yè)務(wù)接口名和所需參數(shù)。步驟6,在相關(guān)業(yè)務(wù)啟動時,上層應(yīng)用程序使用應(yīng)用庫載入接口 LoadService將業(yè)務(wù)相關(guān)的所有動態(tài)庫載入內(nèi)存中;當(dāng)業(yè)務(wù)退出時,使用上層應(yīng)用庫卸載接口UnLoadService,釋放在內(nèi)存中占用的資源。步驟7,瀏覽器進入業(yè)務(wù)提供方業(yè)務(wù)網(wǎng)頁,JavaScript引擎解析到開放的應(yīng)用支撐接口 Stbservice. CalIApp0步驟8,在應(yīng)用支撐接口 Stbservice. CallApp參數(shù)中獲取業(yè)務(wù)提供方業(yè)務(wù)的業(yè)務(wù)接口名和參數(shù)。步驟9, Stbservice. CallApp在已加載的業(yè)務(wù)提供方動態(tài)庫中查找業(yè)務(wù)接口的入口點指針。步驟10,如果找到入口地址,則調(diào)用業(yè)務(wù)接口來完成業(yè)務(wù)的相關(guān)事件處理。步驟11,業(yè)務(wù)接口執(zhí)行完畢后返回應(yīng)用支撐接口,應(yīng)用支撐接口將執(zhí)行結(jié)果返回給頁面。最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對本發(fā)明的技術(shù)方案進行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.ー種嵌入式瀏覽器JavaScript接ロ動態(tài)擴展方法,包含步驟1,瀏覽器以靜態(tài)方式擴展JavaScript引擎的應(yīng)用支撐接ロ、應(yīng)用庫載入接口和應(yīng)用庫卸載接ロ ; 步驟2,某ー業(yè)務(wù)提供方進行其業(yè)務(wù)所需的若干應(yīng)用接ロ的開發(fā),并將所述開發(fā)的若干接ロ的代碼編譯成ニ進制形式的動態(tài)庫文件; 步驟3,上層應(yīng)用程序或者業(yè)務(wù)頁面根據(jù)業(yè)務(wù)的啟動使用應(yīng)用庫載入接ロ將所述動態(tài)庫文件存儲到所述瀏覽器的內(nèi)存中; 步驟4,當(dāng)所述瀏覽器在頁面中解析到所述應(yīng)用支撐接ロ時利用此接ロ在所述瀏覽器內(nèi)存中查找所述業(yè)務(wù)提供方的若干應(yīng)用接ロ的入口地址,如果找到則執(zhí)行所述應(yīng)用接ロ的程序,即實現(xiàn)了基于業(yè)務(wù)動態(tài)擴展所述瀏覽器的JavaScript接ロ ; 其中, 所述應(yīng)用支撐接ロ為所述瀏覽器擴展的JavaScript接ロ,該應(yīng)用支撐接ロ可被頁面調(diào)用,所述應(yīng)用支撐接ロ依據(jù)業(yè)務(wù)提供方開發(fā)的接ロ的接ロ名從所述瀏覽器內(nèi)存的動態(tài)庫中查找指定接ロ名的接ロ程序的入口地址,如果查找到,則執(zhí)行擴展應(yīng)用接ロ ; 所述應(yīng)用庫載入接口和應(yīng)用庫卸載接ロ為瀏覽器擴展的接ロ,所述應(yīng)用庫載入接ロ將業(yè)務(wù)提供方的動態(tài)庫文件載入到所述瀏覽器內(nèi)存中;所述應(yīng)用卸載接ロ用于釋放業(yè)務(wù)提供方動態(tài)庫文件占用的所述瀏覽器內(nèi)存的動態(tài)庫資源。
2.根據(jù)權(quán)利要求I所述嵌入式瀏覽器JavaScript接ロ動態(tài)擴展方法,其特征在于,所述步驟4之后還包含以下步驟 用戶退出業(yè)務(wù)時通過上層應(yīng)用程序或者業(yè)務(wù)頁面使用應(yīng)用庫卸載接ロ將業(yè)務(wù)提供方動態(tài)庫所占用瀏覽器內(nèi)存釋放; 其中,所述應(yīng)用庫卸載接ロ為瀏覽器擴展的接ロ,該接ロ用于釋放業(yè)務(wù)提供方動態(tài)庫文件占用的所述瀏覽器內(nèi)存的動態(tài)庫資源。
3.根據(jù)權(quán)利要求I所述嵌入式瀏覽器JavaScript接ロ動態(tài)擴展方法,其特征在于,所述應(yīng)用庫載入接口和應(yīng)用庫卸載接ロ可同時分別由上層應(yīng)用庫載入接口和上層應(yīng)用庫卸載接ロ替換; 其中, 所述上層應(yīng)用庫載入接ロ,為瀏覽器擴展的接ロ,該接ロ用于將業(yè)務(wù)提供方的動態(tài)庫文件載入到所述瀏覽器內(nèi)存中; 所述上層應(yīng)用庫卸載接ロ,為瀏覽器擴展的接ロ,該接ロ用于釋放業(yè)務(wù)提供方動態(tài)庫文件占用的所述瀏覽器內(nèi)存的動態(tài)庫資源。
4.根據(jù)權(quán)利要求3所述嵌入式瀏覽器JavaScript接ロ動態(tài)擴展方法,其特征在于,所述調(diào)用瀏覽器的上層應(yīng)用程序使用所述上層應(yīng)用庫載入接口和所述應(yīng)用庫卸載接ロ在業(yè)務(wù)啟動或關(guān)閉時加載和卸載業(yè)務(wù)提供方擴展的應(yīng)用接ロ的ニ進制代碼。
5.ー種嵌入式瀏覽器JavaScript接ロ動態(tài)擴展系統(tǒng),該系統(tǒng)包含包含JavaScript引擎的瀏覽器、上層應(yīng)用程序模塊、業(yè)務(wù)應(yīng)用接ロ単元,其特征在干, 所述瀏覽器中的JavaScript引擎還包含應(yīng)用支撐接ロ、應(yīng)用庫載入接口和應(yīng)用庫卸載接ロ ; 所述應(yīng)用支撐接ロ用于依據(jù)接ロ名參數(shù)從所述瀏覽器內(nèi)存中查找該接ロ名對應(yīng)的擴展接ロ在動態(tài)庫文件的入口地址并執(zhí)行接ロ程序;所述應(yīng)用庫載入接ロ將業(yè)務(wù)提供方應(yīng)用接ロ的動態(tài)庫文件存儲到所述瀏覽器的內(nèi)存中;所述應(yīng)用庫卸載接ロ將釋放業(yè)務(wù)提供方的動態(tài)庫文件占用的瀏覽器內(nèi)存; 所述上層應(yīng)用程序模塊還包含上層應(yīng)用庫載入接口和上層應(yīng)用庫卸載接ロ ;所述上層應(yīng)用庫載入接ロ用于將業(yè)務(wù)提供方應(yīng)用接ロ的動態(tài)庫文件存儲到所述瀏覽器的內(nèi)存中;所述上層應(yīng)用庫卸載接ロ用于將釋放業(yè)務(wù)提供方應(yīng)用接ロ的動態(tài)庫文件占用的瀏覽器內(nèi)存; 所述瀏覽器還設(shè)置有內(nèi)存單元,用于存放某ー業(yè)務(wù)提供方按照擴展接ロ規(guī)范進行其業(yè)務(wù)所需的若干JavaScript接ロ代碼編譯成的ニ進制形式的動態(tài)庫文件。
6.根據(jù)權(quán)利要求5所述的嵌入式瀏覽器JavaScript接ロ動態(tài)擴展系統(tǒng),其特征在干,所述應(yīng)用支撐接ロ,依據(jù)業(yè)務(wù)提供方開發(fā)的接ロ程序的名字尋找該程序在所述瀏覽器內(nèi)存中的地址指針。
7.根據(jù)權(quán)利要求5所述的嵌入式瀏覽器JavaScript接ロ動態(tài)擴展系統(tǒng),其特征在干,所述應(yīng)用庫載入接ロ進ー步包含參數(shù)接受模塊,該模塊用于接收業(yè)務(wù)提供方動態(tài)庫文件或文件列表所在的路徑。
8.根據(jù)權(quán)利要求5所述的嵌入式瀏覽器JavaScript接ロ動態(tài)擴展系統(tǒng),其特征在干,所述應(yīng)用庫卸載接ロ輸入?yún)?shù)包含業(yè)務(wù)提供方動態(tài)庫文件或文件列表所在的路徑。
9.根據(jù)權(quán)利要求5所述的嵌入式瀏覽器JavaScript接ロ動態(tài)擴展系統(tǒng),其特征在干,所述上層應(yīng)用庫載入接ロ的輸入?yún)?shù)包含業(yè)務(wù)提供方動態(tài)庫文件或文件列表所在的路徑。
10.根據(jù)權(quán)利要求5所述的嵌入式瀏覽器JavaScript接ロ動態(tài)擴展系統(tǒng),其特征在干,所述上層應(yīng)用庫卸載接ロ的輸入?yún)?shù)包含業(yè)務(wù)提供方動態(tài)庫文件或文件列表所在的 路徑。
全文摘要
本發(fā)明提供一種嵌入式瀏覽器JavaScript接口動態(tài)擴展方法及系統(tǒng),包含步驟1,瀏覽器以靜態(tài)方式擴展JavaScript引擎的應(yīng)用支撐接口、應(yīng)用庫載入接口和應(yīng)用庫卸載接口;步驟2,某一業(yè)務(wù)提供方進行其業(yè)務(wù)所需的若干應(yīng)用接口的開發(fā),并將所述開發(fā)的若干接口的代碼編譯成二進制形式的動態(tài)庫文件并通過應(yīng)用庫載入接口存儲到所述瀏覽器的內(nèi)存中;步驟3,當(dāng)所述瀏覽器在頁面中解析到所述應(yīng)用支撐接口時利用此接口在所述瀏覽器內(nèi)存中查找所述業(yè)務(wù)提供方的若干應(yīng)用接口的入口地址,如果找到則執(zhí)行所述應(yīng)用接口的程序,即實現(xiàn)了基于業(yè)務(wù)動態(tài)擴展所述瀏覽器的JavaScript接口;所述應(yīng)用支撐接口為所述瀏覽器擴展的JavaScript接口,用于查找指定接口名的接口程序的入口地址,如果查找到,則執(zhí)行擴展應(yīng)用接口。
文檔編號G06F9/44GK102830959SQ20111016213
公開日2012年12月19日 申請日期2011年6月16日 優(yōu)先權(quán)日2011年6月16日
發(fā)明者胡琳琳, 孫鵬, 鄧峰, 劉春梅 申請人:中國科學(xué)院聲學(xué)研究所