專利名稱:瀏覽器插件的管理方法及裝置、瀏覽器與插件的交互系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種瀏覽器插件的管理方法及裝置、瀏覽器與插件的交互系統(tǒng)。
背景技術(shù):
插件是一種遵循一定規(guī)范的應(yīng)用程序接口編寫出來的程序,它會(huì)隨著IE瀏覽器的啟動(dòng)而自動(dòng)執(zhí)彳丁。例如在IE瀏覽器中,在安裝相關(guān)的插件后,IE瀏覽器能夠直接調(diào)用插件,用于處理特定類型的文件。很多軟件都有插件,插件有無數(shù)種。比如,IE瀏覽器常見的插件有:Flash插件、RealPlayer插件、MMS插件、MIDI五線譜插件、ActiveX插件等等;再比如Winamp的DFX,也是插件。對于以IE瀏覽器為內(nèi)核的瀏覽器,如360瀏覽器6.0之前的版本,由于IE瀏覽器并沒有顯式的提供針對第三方插件的接口,需要插件開發(fā)人員在使瀏覽器主程序與插件之間進(jìn)行交互時(shí),開發(fā)出專門的接口模塊,以在瀏覽器主程序與插件之間提供接口,通過其來管理插件。對于非以IE瀏覽器為內(nèi)核的瀏覽器,如谷歌(Chrome)瀏覽器,它自身提供了針對第三方插件的接口,可以通過這些接口直接管理插件。然而,在現(xiàn)代的瀏覽器中,需要將IE內(nèi)核和非IE內(nèi)核(如Chrome內(nèi)核)進(jìn)行整合,從而各取所長,實(shí)現(xiàn)效率更高、功能更全、性能更穩(wěn)定的雙核瀏覽器。在這種雙核瀏覽器中,在安裝、運(yùn)行插件時(shí)沒有一個(gè)統(tǒng)一的機(jī)制。以具有IE內(nèi)核和Chrome內(nèi)核的雙核瀏覽器為例,插件開發(fā)人員首先需要明確插件要在哪種瀏覽器內(nèi)核中安裝和運(yùn)行,如果需要在兩種內(nèi)核中安裝和運(yùn)行,那么則要通過上述不同的機(jī)制分別實(shí)現(xiàn)插件在不同瀏覽器內(nèi)核上與主程序進(jìn)行交互。以上兩種機(jī)制在同一雙核瀏覽器中不兼容,需要插件開發(fā)人員付出復(fù)雜且重復(fù)的勞動(dòng),而且效率低下。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的瀏覽器插件的管理方法和相應(yīng)的瀏覽器插件的管理裝置和瀏覽器與插件的交互系統(tǒng)。根據(jù)本發(fā)明的一個(gè)方面,提供了一種瀏覽器插件的管理方法,包括:在接收到插件發(fā)起的針對統(tǒng)一接口集的調(diào)用請求后,判斷當(dāng)前打開頁面的瀏覽器的內(nèi)核類型;在判斷出瀏覽器的內(nèi)核類型為第一內(nèi)核類型的情況下,根據(jù)統(tǒng)一接口集對應(yīng)的操作,獲取第一內(nèi)核類型提供的與該操作對應(yīng)的第一接口,向?yàn)g覽器發(fā)起針對第一接口的調(diào)用請求;在判斷出瀏覽器的內(nèi)核類型為第二內(nèi)核類型的情況下,根據(jù)統(tǒng)一接口集對應(yīng)的操作,獲取第二內(nèi)核類型提供的與該操作對應(yīng)的第二接口,向?yàn)g覽器發(fā)起針對第二接口的調(diào)用請求。根據(jù)本發(fā)明的另一方面,提供了一種瀏覽器插件的管理裝置,包括:判斷模塊,適于在接收到插件發(fā)起的針對統(tǒng)一接口的調(diào)用請求后,判斷當(dāng)前打開頁面的瀏覽器的內(nèi)核類型;第一調(diào)用模塊,適于在判斷出瀏覽器的內(nèi)核類型為第一內(nèi)核類型的情況下,根據(jù)統(tǒng)一接口集對應(yīng)的操作,獲取第一內(nèi)核類型提供的與該操作對應(yīng)的第一接口,向?yàn)g覽器發(fā)起針對第一接口的調(diào)用請求;第二調(diào)用模塊,適于在判斷出瀏覽器的內(nèi)核類型為第二內(nèi)核類型的情況下,根據(jù)統(tǒng)一接口集對應(yīng)的操作,獲取第二內(nèi)核類型提供的與該操作對應(yīng)的第二接口,向?yàn)g覽器發(fā)起針對第二接口的調(diào)用請求。根據(jù)本發(fā)明的又一方面,提供了一種瀏覽器與插件的交互系統(tǒng),包括瀏覽器、插件以及上述瀏覽器插件的管理裝置;其中,插件適于向?yàn)g覽器插件的管理裝置發(fā)起針對統(tǒng)一接口集的調(diào)用請求;瀏覽器適于接收瀏覽器插件的管理裝置發(fā)起的針對第一接口或第二接口的調(diào)用請求,根據(jù)該調(diào)用請求執(zhí)行操作。根據(jù)本發(fā)明提供的方案,當(dāng)插件與瀏覽器主程序進(jìn)行交互時(shí),可直接發(fā)起針對統(tǒng)一接口集的調(diào)用請求,插件管理裝置接收到該調(diào)用請求后,判斷當(dāng)前瀏覽器的內(nèi)核類型,根據(jù)不同的內(nèi)核類型,獲取瀏覽器提供的與調(diào)用請求的操作對應(yīng)的不同的接口,從而發(fā)起對應(yīng)接口的調(diào)用請求。本發(fā)明提供了針對不同瀏覽器內(nèi)核兼容的插件擴(kuò)展機(jī)制,無需插件開發(fā)人員考慮針對不同的瀏覽器內(nèi)核預(yù)先設(shè)計(jì)與瀏覽器交互的不同方式,提高了開發(fā)效率。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的瀏覽器插件的管理方法的流程圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的瀏覽器插件的管理裝置的結(jié)構(gòu)框圖;圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的瀏覽器與插件的交互系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。本發(fā)明的主要思想是在使用多核瀏覽器時(shí)向用戶提供了統(tǒng)一接口集,當(dāng)插件與瀏覽器主程序進(jìn)行交互時(shí),可直接發(fā)起針對該統(tǒng)一接口集的調(diào)用請求,而無需插件開發(fā)人員考慮針對不同的瀏覽器內(nèi)核預(yù)先設(shè)計(jì)與瀏覽器交互的不同方式。在以下實(shí)施例中,將以雙核瀏覽器為例進(jìn)行說明,其中第一內(nèi)核類型為IE內(nèi)核類型,第二內(nèi)核類型為非IE內(nèi)核類型(如Chrome內(nèi)核)。需要說明的是,本發(fā)明不僅限于雙核瀏覽器,本發(fā)明的主要思想也適用于其它多核瀏覽器。圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的瀏覽器插件的管理方法100的流程圖。如圖1所示,方法100始于步驟S101,其中接收插件發(fā)起的針對統(tǒng)一接口集的調(diào)用請求。本發(fā)明所提供的統(tǒng)一接口集包含了可供插件調(diào)用的接口,具體包含:操作進(jìn)程實(shí)例的接口(CAppInstanceFunc)、操作插件信息的接口(CAppItemFunc)、操作瀏覽器框架的接口(CAppFrameFunc)、操作瀏覽器工具條的接口(CAppToolBarFunc)、操作瀏覽器側(cè)邊欄的接口(CAppSidePanelFunc)、操作頁面的接口(CAppBrowserFunc)、操作瀏覽器菜單的接口(CAppMenuFunc)、操作瀏覽器大頭像的接口(CAppFaceFunc)以及操作瀏覽器各種路徑的接口(CAppPathFunc)。本步驟所發(fā)起的調(diào)用請求可以是上述接口中的任意一個(gè),但本發(fā)明不僅限于此。以上每個(gè)接口都包括一組函數(shù)和/或回調(diào)函數(shù),可供插件進(jìn)行調(diào)用。在步驟SlOl之后,方法100進(jìn)入步驟S102,其中判斷當(dāng)前打開頁面的瀏覽器的內(nèi)核類型,若為IE內(nèi)核類型,執(zhí)行步驟S103 ;若為非IE內(nèi)核類型,執(zhí)行步驟S104。瀏覽器本身向用戶提供了選擇瀏覽器模式的選項(xiàng),不同的瀏覽器模式對應(yīng)了不同的內(nèi)核類型。瀏覽器內(nèi)部采用一變量來標(biāo)識(shí)用戶所選擇的瀏覽器模式,本文將該變量稱為瀏覽器類型標(biāo)識(shí)符。通過參考瀏覽器類型標(biāo)識(shí)符的具體數(shù)值,就可以判斷當(dāng)前打開頁面的瀏覽器的內(nèi)核類型。在步驟S103中,根據(jù)調(diào)用統(tǒng)一接口集對應(yīng)的操作,獲取IE內(nèi)核類型提供的與該操作對應(yīng)的第一接口。統(tǒng)一接口集集成了各項(xiàng)操作接口以支持對應(yīng)的各項(xiàng)操作。如果判斷出當(dāng)前打開頁面的瀏覽器的內(nèi)核類型為IE內(nèi)核類型,那么可先獲取與該操作對應(yīng)的第一接口的指針,然后根據(jù)該指針獲取第一接口。根據(jù)本發(fā)明的一個(gè)實(shí)施例,可采用如下方法獲得第一接口:首先獲取瀏覽器控件接口指針,例如IWebBrowserf接口指針;在獲得該指針后,可以調(diào)用該指針完成各項(xiàng)操作,例如,對于“刷新”操作,就是獲得指針后,調(diào)用該指針的“Refresh” 方法。在步驟S104中,根據(jù)統(tǒng)一接口集對應(yīng)的操作,獲取非IE內(nèi)核類型提供的與該操作對應(yīng)的第二接口。實(shí)現(xiàn)本方法的插件管理裝置內(nèi)部維護(hù)有非IE內(nèi)核類型的接口與相應(yīng)操作的映射關(guān)系表。如果判斷出當(dāng)前打開頁面的瀏覽器的內(nèi)核類型為非IE內(nèi)核類型,首先獲取插件所調(diào)用的統(tǒng)一接口集對應(yīng)的操作;然后查詢上述映射關(guān)系表,獲取與該操作對應(yīng)的由非IE內(nèi)核類型提供的第二接口。 在步驟S103之后,方法100進(jìn)入步驟S105,其中,向?yàn)g覽器發(fā)起針對第一接口的調(diào)用請求。通過上述步驟可獲知,插件所發(fā)起的調(diào)用請求實(shí)際是針對IE內(nèi)核類型的瀏覽器所提供的第一接口,因此向?yàn)g覽器發(fā)起針對第一接口的調(diào)用請求。在步驟S104之后,方法100進(jìn)入步驟S106,其中,向?yàn)g覽器發(fā)起針對第二接口的調(diào)用請求。通過上述步驟可獲知,插件所發(fā)起的調(diào)用請求實(shí)際是針對非IE內(nèi)核類型的瀏覽器所提供的第二接口,因此向?yàn)g覽器發(fā)起針對第二接口的調(diào)用請求。在步驟S105或步驟S106之后,方法100進(jìn)入步驟S107,其中在瀏覽器完成操作后,接收來自瀏覽器的返回結(jié)果,將該返回結(jié)果返給插件。此步驟并不是必須的,即在不需要返回結(jié)果的情況下則不需要執(zhí)行此步驟。通過上述實(shí)施例提供的瀏覽器插件的管理方法,當(dāng)插件與瀏覽器主程序進(jìn)行交互時(shí),可直接發(fā)起針對統(tǒng)一接口集的調(diào)用請求,實(shí)現(xiàn)本方法的插件管理裝置接收到該調(diào)用請求后,可判斷當(dāng)前瀏覽器的內(nèi)核類型,若為IE內(nèi)核類型,則獲取IE內(nèi)核類型的瀏覽器所提供的與調(diào)用請求的操作對應(yīng)的第一接口 ;若為非IE內(nèi)核類型,則獲取非IE內(nèi)核類型的瀏覽器所提供的與調(diào)用請求的操作對應(yīng)的第二接口,從而發(fā)起針對第一接口或第二接口的調(diào)用請求。通過本方法提供了針對不同瀏覽器內(nèi)核兼容的插件擴(kuò)展機(jī)制,無需插件開發(fā)人員考慮針對不同的瀏覽器內(nèi)核預(yù)先設(shè)計(jì)與瀏覽器交互的不同方式,提高了開發(fā)效率。
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的瀏覽器插件的管理裝置20的結(jié)構(gòu)框圖。如圖2所示,該裝置20包括:判斷模塊21、第一調(diào)用模塊22以及第二調(diào)用模塊23。其中,判斷模塊21適于在接收到插件發(fā)起的針對統(tǒng)一接口的調(diào)用請求后,判斷當(dāng)前打開頁面的瀏覽器的內(nèi)核類型。本裝置所提供的統(tǒng)一接口集包含了可供插件調(diào)用的接口,具體包含:操作進(jìn)程實(shí)例的接口(CAppInstanceFunc)、操作插件信息的接口(CApp ItemFunc )、操作瀏覽器框架的接口( CAppFrameFunc )、操作瀏覽器工具條的接口(CAppToolBarFunc)、操作瀏覽器側(cè)邊欄的接口(CAppSidePanelFunc)、操作頁面的接口(CAppBrowserFunc )、操作瀏覽器菜單的接口( CAppMenuFunc )、操作瀏覽器大頭像的接口(CAppFaceFunc)以及操作瀏覽器各種路徑的接口(CAppPathFunc)。插件發(fā)起的調(diào)用請求可以是上述接口中的任意一個(gè),但本發(fā)明不僅限于此。以上每個(gè)接口都包括一組函數(shù)和/或回調(diào)函數(shù),可供插件進(jìn)行調(diào)用。瀏覽器本身向用戶提供了選擇瀏覽器模式的選項(xiàng),不同的瀏覽器模式對應(yīng)了不同的內(nèi)核類型。瀏覽器內(nèi)部采用一變量(即瀏覽器類型標(biāo)識(shí)符)來標(biāo)識(shí)用戶所選擇的瀏覽器模式。判斷模塊21通過參考瀏覽器類型標(biāo)識(shí)符的具體數(shù)值,就可以判斷當(dāng)前打開頁面的瀏覽器的內(nèi)核類型。第一調(diào)用模塊22適于在判斷出瀏覽器的內(nèi)核類型為第一內(nèi)核類型的情況下,根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取第一內(nèi)核類型提供的與該操作對應(yīng)的第一接口,向?yàn)g覽器發(fā)起針對第一接口的調(diào)用請求。統(tǒng)一接口集集成了各項(xiàng)操作接口以支持對應(yīng)的各項(xiàng)操作。以第一內(nèi)核類型為IE內(nèi)核類型為例,如果判斷出當(dāng)前打開頁面的瀏覽器的內(nèi)核類型為IE內(nèi)核類型,那么可先獲取與該操作對應(yīng)的第一接口的指針,然后根據(jù)該指針獲取第一接口。根據(jù)本發(fā)明的一個(gè)實(shí)施例,第一調(diào)用模塊22可采用如下方法獲得第一接口:首先獲取瀏覽器控件接口指針,例如IWebBrowser2接口指針;在犾得該指針后,可以調(diào)用該指針完成各項(xiàng)操作,例如,對于“刷新”操作,就是獲得指針后,調(diào)用該指針的“Refresh”方法。第二調(diào)用模塊23適于在判斷出瀏覽器的內(nèi)核類型為第二內(nèi)核類型的情況下,根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取第二內(nèi)核類型提供的與該操作對應(yīng)的第二接口,向?yàn)g覽器發(fā)起針對第二接口的調(diào)用請求。本裝置內(nèi)部維護(hù)有非IE內(nèi)核類型提供的接口與相應(yīng)的操作的映射關(guān)系表。以第二內(nèi)核類型為非IE內(nèi)核類型為例,如果判斷出當(dāng)前打開頁面的瀏覽器的內(nèi)核類型為非IE內(nèi)核類型,第二調(diào)用模塊23首先獲取插件所調(diào)用的統(tǒng)一接口集對應(yīng)的操作;然后查詢上述映射關(guān)系表,獲取與該操作對應(yīng)的由非IE內(nèi)核類型提供的第二接口,接著向?yàn)g覽器發(fā)起針對第二接口的調(diào)用請求。另外,該裝置20還包括:收發(fā)模塊24,適于在瀏覽器完成操作后,接收來自瀏覽器的返回結(jié)果,將返回結(jié)果返給插件。此模塊并不是必須的,即在不需要返回結(jié)果的情況下則不需要此模塊??蛇x地,上述裝置可以集成為一個(gè)獨(dú)立的功能模塊。例如,上述裝置以類庫的方式實(shí)現(xiàn),供瀏覽器來加載,插件提供對應(yīng)的導(dǎo)出函數(shù),供該裝置調(diào)用,之后插件使用該裝置提供的接口對瀏覽器進(jìn)行各種操作。上述裝置也可以集成在插件中。例如,上述裝置以代碼段的方式實(shí)現(xiàn),供瀏覽器加載。該裝置提供的接口為函數(shù),其它插件可以直接調(diào)用這些函數(shù)。圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的瀏覽器與插件的交互系統(tǒng)的結(jié)構(gòu)框圖。如圖3所示,該系統(tǒng)包括瀏覽器10、瀏覽器插件的管理裝置20以及插件30。其中,插件30適于向?yàn)g覽器插件的管理裝置20發(fā)起針對統(tǒng)一接口集的調(diào)用請求,以及在有返回結(jié)果時(shí),接收瀏覽器插件的管理裝置20返回的返回結(jié)果;瀏覽器10適于接收瀏覽器插件的管理裝置20發(fā)起的針對第一接口或第二接口的調(diào)用請求,根據(jù)該調(diào)用請求執(zhí)行操作,以及在需要返回結(jié)果時(shí),向?yàn)g覽器插件的管理裝置20返回結(jié)果。瀏覽器插件的管理裝置20的具體結(jié)構(gòu)和功能參見上述裝置實(shí)施例的描述。通過上述實(shí)施例提供的裝置和系統(tǒng),當(dāng)插件與瀏覽器主程序進(jìn)行交互時(shí),可直接發(fā)起針對統(tǒng)一接口集的調(diào)用請求,插件管理裝置接收到該調(diào)用請求后,可判斷當(dāng)前瀏覽器的內(nèi)核類型,若為IE內(nèi)核類型,則獲取IE內(nèi)核類型的瀏覽器所提供的與調(diào)用請求的操作對應(yīng)的第一接口 ;若為非IE內(nèi)核類型,則獲取非IE內(nèi)核類型的瀏覽器所提供的與調(diào)用請求的操作對應(yīng)的第二接口,從而發(fā)起針對第一接口或第二接口的調(diào)用請求。本發(fā)明提供了針對不同瀏覽器內(nèi)核兼容的插件擴(kuò)展機(jī)制,無需插件開發(fā)人員考慮針對不同的瀏覽器內(nèi)核預(yù)先設(shè)計(jì)與瀏覽器交互的不同方式,提高了開發(fā)效率。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的瀏覽器插件的管理裝置和瀏覽器與插件的交互系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。本發(fā)明公開了 Al、一種瀏覽器插件的管理方法,包括:在接收到插件發(fā)起的針對統(tǒng)一接口集的調(diào)用請求后,判斷當(dāng)前打開頁面的瀏覽器的內(nèi)核類型;在判斷出瀏覽器的內(nèi)核類型為第一內(nèi)核類型的情況下,根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取第一內(nèi)核類型提供的與該操作對應(yīng)的第一接口,向?yàn)g覽器發(fā)起針對所述第一接口的調(diào)用請求;在判斷出瀏覽器的內(nèi)核類型為第二內(nèi)核類型的情況下,根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取第二內(nèi)核類型提供的與該操作對應(yīng)的第二接口,向?yàn)g覽器發(fā)起針對所述第二接口的調(diào)用請求。A2、根據(jù)Al所述的方法,在所述向?yàn)g覽器發(fā)起針對第一接口或第二接口的調(diào)用請求之后還包括:在瀏覽器完成操作后,接收來自瀏覽器的返回結(jié)果,將所述返回結(jié)果返給插件。A3、根據(jù)Al或A2所述的方法,所述第一內(nèi)核類型為IE內(nèi)核類型,所述第二內(nèi)核類型為非IE內(nèi)核類型。A4、根據(jù)A3所述的方法,所述獲取第一內(nèi)核類型提供的與該操作對應(yīng)的第一接口的步驟包括:根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取與該操作對應(yīng)的第一接口的指針,然后獲取與該操作對應(yīng)的第一接口。A5、根據(jù)Al所述的方法,所述統(tǒng)一接口集包括以下接口中的至少一個(gè):操作進(jìn)程實(shí)例的接口、操作插件信息的接口、操作瀏覽器框架的接口、操作瀏覽器工具條的接口、操作瀏覽器側(cè)邊欄的接口、操作頁面的接口、操作瀏覽器菜單的接口、操作瀏覽器大頭像的接口以及操作瀏覽器各種路徑的接口。A6、根據(jù)A5所述的方法,每個(gè)接口包括一組函數(shù)和/或回調(diào)函數(shù)。本發(fā)明還公開了 B7、一種瀏覽器插件的管理裝置,包括:判斷模塊,適于在接收到插件發(fā)起的針對統(tǒng)一接口的調(diào)用請求后,判斷當(dāng)前打開頁面的瀏覽器的內(nèi)核類型;第一調(diào)用模塊,適于在判斷出瀏覽器的內(nèi)核類型為第一內(nèi)核類型的情況下,根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取第一內(nèi)核類型提供的與該操作對應(yīng)的第一接口,向?yàn)g覽器發(fā)起針對所述第一接口的調(diào)用請求;第二調(diào)用模塊,適于在判斷出瀏覽器的內(nèi)核類型為第二內(nèi)核類型的情況下,根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取第二內(nèi)核類型提供的與該操作對應(yīng)的第二接口,向?yàn)g覽器發(fā)起針對所述第二接口的調(diào)用請求。B8、根據(jù)B7所述的裝置,還包括:收發(fā)模塊,適于在瀏覽器完成操作后,接收來自瀏覽器的返回結(jié)果,將所述返回結(jié)果返給插件。B9、根據(jù)B7或B8所述的裝置,所述第一內(nèi)核類型為IE內(nèi)核類型,所述第二內(nèi)核類型為非IE內(nèi)核類型。B10、根據(jù)B9所述的裝置,第一調(diào)用模塊進(jìn)一步適于在判斷出瀏覽器的內(nèi)核類型為第一內(nèi)核類型的情況下,根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取與該操作對應(yīng)的第一接口的指針,而后獲取與該操作對應(yīng)的第一接口,向?yàn)g覽器發(fā)起針對所述第一接口的調(diào)用請求。BH、根據(jù)B7所述的裝置,所述統(tǒng)一接口集包括以下接口中的至少一個(gè):操作進(jìn)程實(shí)例的接口、操作插件信息的接口、操作瀏覽器框架的接口、操作瀏覽器工具條的接口、操作瀏覽器側(cè)邊欄的接口、操作頁面的接口、操作瀏覽器菜單的接口、操作瀏覽器大頭像的接口以及操作瀏覽器各種路徑的接口。B12、根據(jù)Bll所述的裝置,每個(gè)接口包括一組函數(shù)和/或回調(diào)函數(shù)。B13、根據(jù)B7至B12任一項(xiàng)所述的裝置,所述裝置集成為一個(gè)獨(dú)立的功能模塊。B14、根據(jù)B7至B12任一項(xiàng)所述的裝置,所述裝置集成在所述插件中。本發(fā)明還公開了 C15、一種瀏覽器與插件的交互系統(tǒng),包括瀏覽器、插件以及上述B7至B14任一項(xiàng)所述的瀏覽器插件的管理裝置;其中,所述插件適于向所述瀏覽器插件的管理裝置發(fā)起針對統(tǒng)一接口集的調(diào)用請求;所述瀏覽器適于接收所述瀏覽器插件的管理裝置發(fā)起的針對第一接口或第二接口的調(diào)用請求,根據(jù)該調(diào)用請求執(zhí)行操作。
權(quán)利要求
1.一種瀏覽器插件的管理方法,包括: 在接收到插件發(fā)起的針對統(tǒng)一接口集的調(diào)用請求后,判斷當(dāng)前打開頁面的瀏覽器的內(nèi)核類型; 在判斷出瀏覽器的內(nèi)核類型為第一內(nèi)核類型的情況下,根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取第一內(nèi)核類型提供的與該操作對應(yīng)的第一接口,向?yàn)g覽器發(fā)起針對所述第一接口的調(diào)用請求; 在判斷出瀏覽器的內(nèi)核類型為第二內(nèi)核類型的情況下,根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取第二內(nèi)核類型提供的與該操作對應(yīng)的第二接口,向?yàn)g覽器發(fā)起針對所述第二接口的調(diào)用請求。
2.根據(jù)權(quán)利要求1所述的方法,在所述向?yàn)g覽器發(fā)起針對第一接口或第二接口的調(diào)用請求之后還包括:在瀏覽器完成操作后,接收來自瀏覽器的返回結(jié)果,將所述返回結(jié)果返給插件。
3.根據(jù)權(quán)利要求1或2所述的方法,所述第一內(nèi)核類型為IE內(nèi)核類型,所述第二內(nèi)核類型為非IE內(nèi)核類型。
4.根據(jù)權(quán)利要求3所述的方法,所述獲取第一內(nèi)核類型提供的與該操作對應(yīng)的第一接口的步驟包括:根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取與該操作對應(yīng)的第一接口的指針,然后獲取與該操作對應(yīng)的第一接口。
5.根據(jù)權(quán)利要求1所述的方法,所述統(tǒng)一接口集包括以下接口中的至少一個(gè):操作進(jìn)程實(shí)例的接口、操作插件信息的接口、操作瀏覽器框架的接口、操作瀏覽器工具條的接口、操作瀏覽器側(cè)邊欄的接口、操作頁面的接口、操作瀏覽器菜單的接口、操作瀏覽器大頭像的接口以及操作瀏覽器各種路徑的接口。
6.根據(jù)權(quán)利要求5所述的方法,每個(gè)接口包括一組函數(shù)和/或回調(diào)函數(shù)。
7.一種瀏覽器插件的管理裝置,包括: 判斷模塊,適于在接收到插件發(fā)起的針對統(tǒng)一接口的調(diào)用請求后,判斷當(dāng)前打開頁面的瀏覽器的內(nèi)核類型; 第一調(diào)用模塊,適于在判斷出瀏覽器的內(nèi)核類型為第一內(nèi)核類型的情況下,根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取第一內(nèi)核類型提供的與該操作對應(yīng)的第一接口,向?yàn)g覽器發(fā)起針對所述第一接口的調(diào)用請求; 第二調(diào)用模塊,適于在判斷出瀏覽器的內(nèi)核類型為第二內(nèi)核類型的情況下,根據(jù)所述統(tǒng)一接口集對應(yīng)的操作,獲取第二內(nèi)核類型提供的與該操作對應(yīng)的第二接口,向?yàn)g覽器發(fā)起針對所述第二接口的調(diào)用請求。
8.根據(jù)權(quán)利要求7所述的裝置,還包括:收發(fā)模塊,適于在瀏覽器完成操作后,接收來自瀏覽器的返回結(jié)果,將所述返回結(jié)果返給插件。
9.根據(jù)權(quán)利要求7或8所述的裝置,所述第一內(nèi)核類型為IE內(nèi)核類型,所述第二內(nèi)核類型為非IE內(nèi)核類型。
10.一種瀏覽器與插件的交互系統(tǒng),包括瀏覽器、插件以及上述權(quán)利要求7至9任一項(xiàng)所述的瀏覽器插件的管理裝置;其中,所述插件適于向所述瀏覽器插件的管理裝置發(fā)起針對統(tǒng)一接口集的調(diào)用請求;所述瀏覽器適于接收所述瀏覽器插件的管理裝置發(fā)起的針對第一接口或第二接口的調(diào)用請求,根據(jù)該調(diào)用請求執(zhí)行操作。
全文摘要
本發(fā)明公開了一種瀏覽器插件的管理方法及裝置、瀏覽器與插件的交互系統(tǒng)。其中方法包括在接收到插件發(fā)起的針對統(tǒng)一接口集的調(diào)用請求后,判斷當(dāng)前打開頁面的瀏覽器的內(nèi)核類型;在判斷出內(nèi)核類型為第一內(nèi)核類型的情況下,根據(jù)統(tǒng)一接口集對應(yīng)的操作,獲取第一內(nèi)核類型提供的與該操作對應(yīng)的第一接口,向?yàn)g覽器發(fā)起針對第一接口的調(diào)用請求;在判斷出內(nèi)核類型為第二內(nèi)核類型的情況下,根據(jù)統(tǒng)一接口集對應(yīng)的操作,獲取第二內(nèi)核類型提供的與該操作對應(yīng)的第二接口,向?yàn)g覽器發(fā)起針對第二接口的調(diào)用請求。本發(fā)明提供了針對不同瀏覽器內(nèi)核兼容的插件擴(kuò)展機(jī)制,無需插件開發(fā)人員考慮針對不同的瀏覽器內(nèi)核預(yù)先設(shè)計(jì)與瀏覽器交互的不同方式,提高了開發(fā)效率。
文檔編號(hào)G06F9/48GK103197972SQ20131015443
公開日2013年7月10日 申請日期2013年4月28日 優(yōu)先權(quán)日2013年4月28日
發(fā)明者段培堃, 杭程, 任寰 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司