專利名稱:Linux下本地應(yīng)用程序窗體嵌入瀏覽器的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及瀏覽器的嵌入,尤其是一種在Linux下本地應(yīng)用程序窗體嵌入瀏覽器的方法及系統(tǒng)。
背景技術(shù):
目前,插件在瀏覽器中的應(yīng)用已經(jīng)十分普遍。在安裝好插件后,瀏覽器能夠直接應(yīng)用插件程序,通過對(duì)本地應(yīng)用程序的調(diào)用,方便快捷地處理相應(yīng)的文件,從而大量減少打開網(wǎng)頁(yè)的時(shí)間。但由于插件需要調(diào)用系統(tǒng)提供的函數(shù)庫(kù)或者數(shù)據(jù),所以,一般開發(fā)者為滿足多數(shù)用戶的需求,經(jīng)常是針對(duì)最流行的Windows操作系統(tǒng)來開發(fā)的,比如Windows XP、Windows 7和Windows 8等。但對(duì)于安裝其它操作系統(tǒng),尤其是Linux的用戶來說,當(dāng)用戶使用瀏覽器瀏覽網(wǎng)頁(yè)時(shí),如果瀏覽器無法加載對(duì)應(yīng)的本地應(yīng)用程序,網(wǎng)頁(yè)會(huì)無法顯示,給用戶瀏覽網(wǎng)頁(yè)帶來不便;當(dāng)用戶需要通過瀏覽器打開文件并對(duì)文件進(jìn)行操作時(shí),如果瀏覽器無法加載對(duì)應(yīng)的本地應(yīng)用程序,同樣會(huì)發(fā)現(xiàn)無法打開文件進(jìn)而無法操作,為此用戶常常需要通過相關(guān)的下載軟件下載文件后,通過本地應(yīng)用程序打開才能進(jìn)行操作,這樣會(huì)嚴(yán)重浪費(fèi)時(shí)間。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明的目的在于提供一種在Linux下本地應(yīng)用程序窗體嵌入瀏覽器的方法及系統(tǒng),通過瀏覽器提供的NPAPI與瀏覽器插件進(jìn)行通信,瀏覽器插件通過利用Linux下的DBus與本地應(yīng)用程序進(jìn)程進(jìn)行通信,實(shí)現(xiàn)本地程序窗體的嵌入和本地應(yīng)用程序的調(diào)用,使瀏覽器網(wǎng)頁(yè)正常顯示并減少操作時(shí)間。本發(fā)明解決其問題所采用的技術(shù)方案是
Linux下本地應(yīng)用程序窗體嵌入瀏覽器的方法,其特征在于,包括以下步驟
步驟A,通過瀏覽器提供的NPAPI與瀏覽器插件通信,獲得瀏覽器插件內(nèi)的插件對(duì)象; 步驟B,插件對(duì)象啟動(dòng)本地應(yīng)用程序,并使本地應(yīng)用程序窗體嵌入到瀏覽器;
步驟C,插件對(duì)象調(diào)用對(duì)應(yīng)的瀏覽器插件內(nèi)的插件接口 ;
步驟D,插件接口通過Linux下的DBus與本地應(yīng)用程序進(jìn)行通信,實(shí)現(xiàn)對(duì)本地應(yīng)用程序的調(diào)用并完成對(duì)應(yīng)的操作。進(jìn)一步,所述步驟D中,DBus根據(jù)插件接口提供的服務(wù)名字和路徑名字在插件接口和本地應(yīng)用程序進(jìn)程之間建立DBus連接,實(shí)現(xiàn)二者之間的通信,同時(shí)為DBus連接命名。進(jìn)一步,所述為DBus連接命名時(shí),加密后的瀏覽器的窗口 ID作為DBus連接名字的一部分。進(jìn)一步,所述步驟A中,瀏覽器提供的NPAPI通過JaveScript腳本與瀏覽器插件通信。進(jìn)一步,所述本地應(yīng)用程序窗體符合X Window協(xié)議。Linux下本地應(yīng)用程序窗體嵌入瀏覽器的系統(tǒng),其特征在于,包括瀏覽器,瀏覽器插件模塊,本地應(yīng)用程序和DBus通信模塊,其中
瀏覽器插件模塊,包括對(duì)象模塊和接口模塊;
瀏覽器,包括NPAPI接口模塊,瀏覽器通過NPAPI接口模塊與對(duì)象模塊通信,加載瀏覽器插件模塊;
對(duì)象模塊,用于啟動(dòng)本地應(yīng)用程序,并使本地應(yīng)用程序窗體嵌入至瀏覽器,對(duì)象模塊也用于調(diào)用接口模塊;
DBus通信模塊,用于在接口模塊和本地應(yīng)用程序之間建立通信,實(shí)現(xiàn)接口模塊對(duì)本地應(yīng)用程序的調(diào)用并執(zhí)行對(duì)應(yīng)的操作。進(jìn)一步,所述NPAPI接口模塊通過JaveScript腳本與對(duì)象模塊通信,從而加載瀏覽器插件模塊。進(jìn)一步,所述DBus通信模塊通過建立DBus連接實(shí)現(xiàn)接口模塊與本地應(yīng)用程序之間的通信,同時(shí)DBus通信模塊為此DBus連接命名。進(jìn)一步,所述DBus通信模塊為此DBus連接命名時(shí),加密后的瀏覽器窗口 ID作為DBus連接名字的一部分。進(jìn)一步,所述本地應(yīng)用程序窗體符合X Window協(xié)議。本發(fā)明的有益效果是
本發(fā)明采用一種在Linux下本地應(yīng)用程序窗體嵌入瀏覽器的方法及系統(tǒng),通過瀏覽器提供的NPAPI可以和瀏覽器插件進(jìn)行通信,獲取插件對(duì)象;插件對(duì)象啟動(dòng)本地應(yīng)用程序并使本地應(yīng)用程序窗體嵌入至瀏覽器;插件對(duì)象調(diào)用插件接口 ;插件接口通過利用Linux下的DBus與本地應(yīng)用程序進(jìn)程進(jìn)行通信,從而實(shí)現(xiàn)對(duì)本地應(yīng)用程序的調(diào)用。這樣不用打開本地程序而直接通過調(diào)用就可以在瀏覽器中使用,不僅減少操作時(shí)間,也使用戶感到方便和快捷。
下面結(jié)合附圖和實(shí)例對(duì)本發(fā)明作進(jìn)一步說明。圖1是本發(fā)明方法的程序流程圖。圖2是本發(fā)明系統(tǒng)的組成結(jié)構(gòu)示意圖。圖3是本發(fā)明具體實(shí)施例的程序流程圖。
具體實(shí)施例方式圖1是本發(fā)明方法的程序流程圖,參照?qǐng)D1所示,包括以下步驟
步驟A,通過瀏覽器提供的NPAPI與瀏覽器插件通信,獲得瀏覽器插件內(nèi)的插件對(duì)象。本步驟中,瀏覽器提供的NPAPI通過JaveScript腳本與瀏覽器插件通信,獲得瀏覽器插件內(nèi)的插件對(duì)象。所述NPAPI即網(wǎng)景插件應(yīng)用程序接口,是用于在瀏覽器中執(zhí)行外部應(yīng)用程序的通用接口。所述JaveScript腳本是一種基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶端腳本語(yǔ)言,同時(shí)也是一種廣泛用于客戶端Web開發(fā)的腳本語(yǔ)言。步驟B,插件對(duì)象啟動(dòng)本地應(yīng)用程序,并使本地應(yīng)用程序窗體嵌入到瀏覽器。本步驟中,插件對(duì)象通過調(diào)用JaveScript函數(shù)啟動(dòng)本地應(yīng)用程序進(jìn)程,并使本地應(yīng)用窗體嵌入到瀏覽器當(dāng)中。其中,本地應(yīng)用程序具有窗體,且本地應(yīng)用程序窗體符合XWindow協(xié)議。所述X Window協(xié)議是標(biāo)準(zhǔn)化軟件工具包及顯示架構(gòu)的運(yùn)作協(xié)議。步驟C,插件對(duì)象調(diào)用對(duì)應(yīng)的瀏覽器插件內(nèi)的插件接口。本步驟中,插件對(duì)象可以直接調(diào)用瀏覽器插件內(nèi)的插件接口。步驟D,插件接口通過Linux下的DBus與本地應(yīng)用程序進(jìn)行通信,實(shí)現(xiàn)對(duì)本地應(yīng)用程序的調(diào)用并完成對(duì)應(yīng)的操作。本步驟中,Linux下的DBus根據(jù)插件接口提供的服務(wù)名字和路徑名字在插件接口和本地應(yīng)用程序進(jìn)程之間建立DBus連接,并為此DBus連接命名,命名時(shí),加密后的瀏覽器的窗口 ID作為DBus連接的一部分。插件接口通過DBus連接與本地應(yīng)用程序進(jìn)行通信,實(shí)現(xiàn)對(duì)本地應(yīng)用程序的調(diào)用并完成相關(guān)的操作。所述DBus是一個(gè)適用于桌面應(yīng)用的進(jìn)程間的通訊機(jī)制。,由于瀏覽器的窗口 ID是唯一的,保證了同時(shí)啟動(dòng)多個(gè)窗口時(shí)調(diào)用本地應(yīng)用程序不受影響,窗口 ID加密后,使每次啟動(dòng)的服務(wù)名字都不同,其它程序就無法使用此服務(wù)名字。圖2是本發(fā)明系統(tǒng)的組成結(jié)構(gòu)示意圖,參照?qǐng)D2所示,包括瀏覽器,瀏覽器插件模塊,本地應(yīng)用程序和DBus通信模塊,其中
瀏覽器插件模塊,包括對(duì)象模塊和接口模塊;
瀏覽器,包括NPAPI接口模塊,NPAPI接口模塊通過JaveScript腳本與對(duì)象模塊通信,從而加載瀏覽器插件模塊;
對(duì)象模塊,用于啟動(dòng)本地應(yīng)用程序,并使本地應(yīng)用程序窗體嵌入至瀏覽器,對(duì)象模塊也用于調(diào)用接口模塊;
DBus通信模塊,通過建立DBus連接實(shí)現(xiàn)接口模塊和本地應(yīng)用程序之間的通信,實(shí)現(xiàn)接口模塊對(duì)本地應(yīng)用程序的調(diào)用并執(zhí)行對(duì)應(yīng)的操作。DBus通信模塊在建立DBus連接時(shí),會(huì)為此DBus連接命名,命名時(shí),加密后的瀏覽器窗口 ID作為DBus連接名字的一部分。所述本地應(yīng)用程序窗體符合X Window協(xié)議。需要說明的是,所述本地應(yīng)用程序包括但不限于控制臺(tái)程序、辦公軟件程序、TOF瀏覽器等,且本地應(yīng)用程序有對(duì)應(yīng)的窗體程序。所述瀏覽器為可向萬維網(wǎng)(Web)服務(wù)器發(fā)送各種請(qǐng)求,并對(duì)從服務(wù)器發(fā)來的超文本信息和各種多媒體數(shù)據(jù)格式進(jìn)行解釋、顯示和播放。所述瀏覽器無特殊限制,其包括但不限于IE,360安全瀏覽器,火狐瀏覽器,世界之窗瀏覽器,TT瀏覽器,搜狗瀏覽器,谷歌瀏覽器,opera瀏覽器,maxthon瀏覽器,greenbrowser瀏覽器,chromeplus瀏覽器,彩虹瀏覽器,Safari for windows瀏覽器,Google Chrome瀏覽器。所述本地應(yīng)用程序窗體嵌入瀏覽器的方法相同或相似,本發(fā)明皆可實(shí)現(xiàn)。圖3是本發(fā)明具體實(shí)施例的程序流程圖,參照?qǐng)D3所示,本實(shí)施例選取火狐瀏覽器和WPS本地應(yīng)用程序進(jìn)行說明,還包括有Linux操作系統(tǒng)和瀏覽器插件,其步驟如下
步驟A,火狐瀏覽器提供的NPAPI通過JavaScript與瀏覽器插件通信,獲得瀏覽器插件內(nèi)的插件對(duì)象;
步驟B,插件對(duì)象調(diào)用JaveScript函數(shù)啟動(dòng)WPS進(jìn)程并把對(duì)應(yīng)的WPS窗體嵌入至火狐瀏覽器;
步驟C,插件對(duì)象調(diào)用瀏覽器插件內(nèi)的插件接口 ;
步驟D,插件接口通過Linux下的DBus與WPS進(jìn)程進(jìn)行通信,實(shí)現(xiàn)對(duì)WPS內(nèi)部功能的調(diào)用并完成相關(guān)操作。
本實(shí)施例以調(diào)用WPS文檔中的打開命令OpenO為例。在安裝WPS本地程序時(shí),用戶會(huì)自動(dòng)安裝瀏覽器插件。在火狐瀏覽器需要用到相關(guān)的WPS文件時(shí),如WPS文檔,WPS演示或WPS表格,當(dāng)火狐瀏覽器啟動(dòng)時(shí),瀏覽器插件程序會(huì)隨著瀏覽器的啟動(dòng)自動(dòng)執(zhí)行。之后,利用火狐瀏覽器提供的NPAPI就可以和瀏覽器插件進(jìn)行通信。瀏覽器插件是一個(gè)程序集合,包含有對(duì)象和函數(shù)庫(kù)。利用JavaScript腳本語(yǔ)言可以使火狐瀏覽器通過NPAPI與瀏覽器插件進(jìn)行通信。首先載入瀏覽器插件,通過〈object name=〃webwps〃type=〃application/x_wps〃>可以載入瀏覽器插件,其中〃application/x_wps〃已經(jīng)在瀏覽器插件中定義。Javascript通過document, webwps可以獲得瀏覽器插件內(nèi)的插件對(duì)象,插件對(duì)象調(diào)用Javascript函數(shù)啟動(dòng)WPS進(jìn)程并把WPS窗體嵌入至火狐瀏覽器,通過嵌入的方式可以更方便操作和使用。之后,插件對(duì)象會(huì)調(diào)用瀏覽器插件內(nèi)的插件接口。本實(shí)施例中,WPS窗體符合X Window協(xié)議。所述X Window協(xié)議是標(biāo)準(zhǔn)化軟件工具包及顯示架構(gòu)的運(yùn)作協(xié)議。由于WPS開放了一套樹型的API接口,因此,只要我們通過最頂端的API即Application逐級(jí)往下找,就可以找到所需要的API。插件接口繼承WPS的樹形API接口,從而在調(diào)用時(shí)可以保持插件接口與對(duì)應(yīng)的WPS接口兩端一致。當(dāng)我們需要調(diào)用打開命令時(shí),只要我們知道WPS中最頂端到所需最低端的API接口集合,通過逐級(jí)查找,就可以找到所需要的命令document. webwps. Application. Documents. Open (),通過此命令即可實(shí)現(xiàn)調(diào)用,其中OpenO為我們所需要的最低端的API。然后此命令會(huì)被插件接口打包成調(diào)用消息以便和DBus進(jìn)行通信。消息包含了傳送者和接收者及消息實(shí)體。DBus會(huì)根據(jù)消息提供的服務(wù)名字和路徑名字在插件接口和對(duì)應(yīng)的WPS進(jìn)程之間建立對(duì)應(yīng)的DBus連接,同時(shí)為此DBus連接命名。WPS提供有一個(gè)對(duì)應(yīng)的服務(wù),插件會(huì)找到并連接這個(gè)服務(wù),根據(jù)對(duì)應(yīng)的路徑索引信息,調(diào)用至IJ相應(yīng)的WPS接口。本實(shí)施例中,插件最終會(huì)找到最終的OpenO接口,并完成相關(guān)的調(diào)用。完成調(diào)用之后,WPS會(huì)將結(jié)果打包成消息傳遞給瀏覽器插件。這種方式可以輕松實(shí)現(xiàn)對(duì)WPS的調(diào)用,滿足用戶瀏覽網(wǎng)頁(yè)的需要,并使操作簡(jiǎn)單化從而減少時(shí)間?;鸷鼮g覽器打開的每個(gè)窗口都有一個(gè)窗口 ID,且每個(gè)窗口 ID都是不一樣的。為了使同時(shí)啟動(dòng)多個(gè)窗口時(shí)調(diào)用WPS不受影響,在為DBus連接命名時(shí),火狐瀏覽器窗口的窗口 ID也被加入進(jìn)去,這樣就保證了每次啟動(dòng)的服務(wù)名字是不同的,為了不讓其它程序使用此服務(wù)名字,可以給窗口 ID加密,使其它程序無法使用此服務(wù)名字。完成相關(guān)的操作后或閉關(guān)瀏覽器時(shí),退出WPS即可。以上所述,只是本發(fā)明的較佳實(shí)施例而已,本發(fā)明并不局限于上述實(shí)施方式,只要其以相同的手段達(dá)到本發(fā)明的技術(shù)效果,都應(yīng)屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.Linux下本地應(yīng)用程序窗體嵌入瀏覽器的方法,其特征在于,包括以下步驟 步驟A,通過瀏覽器提供的NPAPI與瀏覽器插件通信,獲得瀏覽器插件內(nèi)的插件對(duì)象; 步驟B,插件對(duì)象啟動(dòng)本地應(yīng)用程序,并使本地應(yīng)用程序窗體嵌入到瀏覽器; 步驟C,插件對(duì)象調(diào)用對(duì)應(yīng)的瀏覽器插件內(nèi)的插件接口 ; 步驟D,插件接口通過Linux下的DBus與本地應(yīng)用程序進(jìn)行通信,實(shí)現(xiàn)對(duì)本地應(yīng)用程序的調(diào)用并完成對(duì)應(yīng)的操作。
2.根據(jù)權(quán)利要求1所述的Linux下本地應(yīng)用程序窗體嵌入瀏覽器的方法,其特征在于所述步驟D中,DBus根據(jù)插件接口提供的服務(wù)名字和路徑名字在插件接口和本地應(yīng)用程序進(jìn)程之間建立DBus連接,實(shí)現(xiàn)二者之間的通信,同時(shí)為DBus連接命名。
3.根據(jù)權(quán)利要求2所述的Linux下本地應(yīng)用程序窗體嵌入瀏覽器的方法,其特征在于所述為DBus連接命名時(shí),加密后的瀏覽器的窗口 ID作為DBus連接名字的一部分。
4.根據(jù)權(quán)利要求1所述的Linux下本地應(yīng)用程序窗體嵌入瀏覽器的方法,其特征在于所述步驟A中,瀏覽器提供的NPAPI通過JaveScript腳本與瀏覽器插件通信。
5.根據(jù)權(quán)利要求1至4任一所述的Linux下本地應(yīng)用程序窗體嵌入瀏覽器的方法,其特征在于所述本地應(yīng)用程序窗體符合X Window協(xié)議。
6.Linux下本地應(yīng)用程序窗體嵌入瀏覽器的系統(tǒng),其特征在于,包括瀏覽器,瀏覽器插件模塊,本地應(yīng)用程序和DBus通信模塊,其中 瀏覽器插件模塊,包括對(duì)象模塊和接口模塊; 瀏覽器,包括NPAPI接口模塊,瀏覽器通過NPAPI接口模塊與對(duì)象模塊通信,加載瀏覽器插件模塊; 對(duì)象模塊,用于啟動(dòng)本地應(yīng)用程序,并使本地應(yīng)用程序窗體嵌入至瀏覽器,對(duì)象模塊也用于調(diào)用接口模塊; DBus通信模塊,用于在接口模塊和本地應(yīng)用程序之間建立通信,實(shí)現(xiàn)接口模塊對(duì)本地應(yīng)用程序的調(diào)用并執(zhí)行對(duì)應(yīng)的操作。
7.根據(jù)權(quán)利要求6所述的Linux下本地應(yīng)用程序窗體嵌入瀏覽器的系統(tǒng),其特征在于所述NPAPI接口模塊通過JaveScript腳本與對(duì)象模塊通信,加載瀏覽器插件模塊。
8.根據(jù)權(quán)利要求6所述的Linux下本地應(yīng)用程序窗體嵌入瀏覽器的系統(tǒng),其特征在于所述DBus通信模塊通過建立DBus連接實(shí)現(xiàn)接口模塊與本地應(yīng)用程序之間的通信,同時(shí)DBus通信模塊為此DBus連接命名。
9.根據(jù)權(quán)利要求8所述的Linux下本地應(yīng)用程序窗體嵌入瀏覽器的系統(tǒng),其特征在于所述DBus通信模塊為此DBus連接命名時(shí),加密后的瀏覽器窗口 ID作為DBus連接名字的一部分。
10.根據(jù)權(quán)利要求6至9任一所述的Linux下本地應(yīng)用程序窗體嵌入瀏覽器的系統(tǒng),其特征在于所述本地應(yīng)用程序窗體符合X Window協(xié)議。
全文摘要
本發(fā)明公開了一種Linux下本地應(yīng)用程序窗體嵌入瀏覽器的方法及系統(tǒng),瀏覽器首先獲得瀏覽器插件內(nèi)的插件對(duì)象,插件對(duì)象啟動(dòng)本地程序進(jìn)程并使本地應(yīng)用程序窗體嵌入至瀏覽器,之后插件對(duì)象調(diào)用瀏覽器插件內(nèi)的插件接口,插件接口通過利用Linux下的DBus與本地應(yīng)用程序進(jìn)行通信,從而完成相關(guān)調(diào)用。這種方法可以縮短網(wǎng)頁(yè)打開與本地應(yīng)用程序相關(guān)文件的速度,使閱讀、瀏覽和辦公更加方便和快捷。
文檔編號(hào)G06F9/48GK103064738SQ20131001543
公開日2013年4月24日 申請(qǐng)日期2013年1月15日 優(yōu)先權(quán)日2013年1月15日
發(fā)明者詹欣坤, 陳旺, 劉強(qiáng) 申請(qǐng)人:珠海金山辦公軟件有限公司, 北京金山辦公軟件有限公司