專(zhuān)利名稱(chēng):在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)通信技術(shù)領(lǐng)域,具體涉及一種在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法和裝置。
背景技術(shù):
基于Android (安卓)平臺(tái)的瀏覽器在用戶與瀏覽器所打開(kāi)的HTML (HyperTextMarkup Language,超文本標(biāo)記語(yǔ)言)網(wǎng)頁(yè)進(jìn)行交互的過(guò)程中,在某些交互場(chǎng)景中(例如點(diǎn)擊HTML頁(yè)面中的某個(gè)HTML標(biāo)簽)需要啟動(dòng)外部應(yīng)用程序,讓外部應(yīng)用程序與用戶進(jìn)行進(jìn)一步的交互(例如用戶輸入銀行帳號(hào)和密碼進(jìn)行支付)。外部應(yīng)用程序是針對(duì)瀏覽器程序而言的,除了瀏覽器程序以外的跟瀏覽器有交互的其他應(yīng)用程序都可以稱(chēng)作為瀏覽器的外部應(yīng)用程序,例如某銀行的在線支付程序。如圖1所示,現(xiàn)有技術(shù)中基于Android平臺(tái)的瀏覽器啟動(dòng)外部應(yīng)用程序的主要實(shí)現(xiàn)方法如下修改瀏覽器對(duì)HTML的實(shí)現(xiàn),在瀏覽器的代碼實(shí)現(xiàn)中增加一些不兼容于HTML的實(shí)現(xiàn)(例如修改或增加某個(gè)HTML標(biāo)簽的定義和實(shí)現(xiàn),使得點(diǎn)擊此HTML標(biāo)簽后會(huì)啟動(dòng)外部應(yīng)用程序),瀏覽器在這些不兼容于HTML的實(shí)現(xiàn)中,通過(guò)調(diào)用Android系統(tǒng)所提供的用于啟動(dòng)應(yīng)用程序的API (應(yīng)用程序編程接口)以啟動(dòng)外部應(yīng)用程序。這種方法的缺點(diǎn)是破壞了瀏覽器對(duì)HTML的標(biāo)準(zhǔn)實(shí)現(xiàn),加入了不兼容于HTML的實(shí)現(xiàn),不利于擴(kuò)展。瀏覽器每增加支持一個(gè)外部應(yīng)用程序,瀏覽器就需要做一次修改,因?yàn)楫?dāng)瀏覽器調(diào)用Android系統(tǒng)的API以啟動(dòng)外部應(yīng)用程序時(shí),在瀏覽器的實(shí)現(xiàn)中需要用到外部應(yīng)用程序的信息(如外部應(yīng)用程序的包名)。
發(fā)明內(nèi)容
本發(fā)明的特征和優(yōu)點(diǎn)在下文的描述中部分地陳述,或者可從該描述顯而易見(jiàn),或者可通過(guò)實(shí)踐本發(fā)明而學(xué)習(xí)。為克服現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明提供一種在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法和裝置,在不破壞瀏覽器HTML標(biāo)準(zhǔn)、不需要修改瀏覽器的情況下,就可以實(shí)現(xiàn)對(duì)外部應(yīng)用程序的啟動(dòng)支持。本發(fā)明解決上述技術(shù)問(wèn)題所采用的技術(shù)方案如下根據(jù)本發(fā)明的一個(gè)方面,提供一種在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法,包括在瀏覽器的網(wǎng)頁(yè)中添加HTML標(biāo)準(zhǔn)的表示插件的標(biāo)簽;將外部應(yīng)用程序增加對(duì)應(yīng)于標(biāo)簽的瀏覽器插件模塊;瀏覽器接收到點(diǎn)擊標(biāo)簽的事件后,通過(guò)調(diào)用外部應(yīng)用程序的接口將點(diǎn)擊事件傳遞給外部應(yīng)用程序中增加的瀏覽器插件模塊,外部應(yīng)用程序的瀏覽器插件模塊調(diào)用操作系統(tǒng)提供的用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口來(lái)啟動(dòng)外部應(yīng)用程序。根據(jù)本發(fā)明的一個(gè)實(shí)施例,標(biāo)簽為embed標(biāo)簽或object標(biāo)簽,通過(guò)設(shè)置embed標(biāo)簽或object標(biāo)簽的type屬性值來(lái)與外部應(yīng)用程序相關(guān)聯(lián)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,將外部應(yīng)用程序增加遵循網(wǎng)景插件應(yīng)用程序編程接口的瀏覽器插件模塊;在將點(diǎn)擊事件傳遞給外部應(yīng)用程序的瀏覽器插件模塊時(shí),瀏覽器通過(guò)調(diào)用插外部應(yīng)用程序側(cè)的網(wǎng)景插件應(yīng)用程序編程接口將點(diǎn)擊事件傳遞給外部應(yīng)用程序的瀏覽器插件模塊。根據(jù)本發(fā)明的一個(gè)實(shí)施例,操作系統(tǒng)為Android操作系統(tǒng)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,外部應(yīng)用程序?yàn)槭謾C(jī)支付程序,手機(jī)支付程序的瀏覽器插件模塊在接收到瀏覽器傳遞的點(diǎn)擊事件后,調(diào)用Android操作系統(tǒng)的接口 Context.StartActivityO,啟動(dòng)手機(jī)支付程序的Activity。根據(jù)本發(fā)明的另一個(gè)方面,提供一種在瀏覽器中啟動(dòng)外部應(yīng)用程序的裝置,包括瀏覽器模塊,用于在瀏覽器的網(wǎng)頁(yè)中添加HTML標(biāo)準(zhǔn)的表示插件的標(biāo)簽;外部應(yīng)用程序模塊,其將外部應(yīng)用程序增加對(duì)應(yīng)于標(biāo)簽的瀏覽器插件模塊;操作系統(tǒng)模塊,其提供用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口 ;其中,瀏覽器模塊接收到點(diǎn)擊標(biāo)簽的事件后,通過(guò)調(diào)用外部應(yīng)用程序的接口將點(diǎn)擊事件傳遞給外部應(yīng)用程序模塊中增加的瀏覽器插件模塊,外部應(yīng)用程序模塊中的瀏覽器插件模塊調(diào)用操作系統(tǒng)模塊提供的用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口來(lái)啟動(dòng)外部應(yīng)用程序。根據(jù)本發(fā)明的一個(gè)實(shí)施例,瀏覽器模塊添加的標(biāo)簽為embed標(biāo)簽或object標(biāo)簽,通過(guò)設(shè)置embed標(biāo)簽或object標(biāo)簽的type屬性值來(lái)與外部應(yīng)用程序相關(guān)聯(lián)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,外部應(yīng)用程序模塊將外部應(yīng)用程序增加遵循網(wǎng)景插件應(yīng)用程序編程接口的瀏覽器插件模塊,所述外部應(yīng)用程序模塊包括具有網(wǎng)景插件應(yīng)用程序編程接口的瀏覽器插件模塊、和為外部應(yīng)用程序提供界面和功能的功能模塊;瀏覽器模塊包括具有網(wǎng)景插件應(yīng)用程序編程接口的插件模塊;瀏覽器模塊通過(guò)調(diào)用外部應(yīng)用程序模塊側(cè)的網(wǎng)景插件應(yīng)用程序編程接口,將點(diǎn)擊事件傳遞給外部應(yīng)用程序模塊的瀏覽器插件模塊,外部應(yīng)用程序模塊的瀏覽器插件模塊調(diào)用操作系統(tǒng)模塊提供的用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口來(lái)啟動(dòng)外部應(yīng)用程序模塊的功能模塊。根據(jù)本發(fā)明的一個(gè)實(shí)施例,操作系統(tǒng)模塊采用Android操作系統(tǒng)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,外部應(yīng)用程序模塊為手機(jī)支付程序模塊,手機(jī)支付程序模塊的瀏覽器插件模塊在接收到瀏覽器模塊傳遞的點(diǎn)擊事件后,調(diào)用Android操作系統(tǒng)的接口 Context. StartActivityO,啟動(dòng)手機(jī)支付程序模塊的Activity。本發(fā)明針對(duì)現(xiàn)有技術(shù)進(jìn)行了改進(jìn),在不破壞瀏覽器HTML標(biāo)準(zhǔn)的情況下,提供了一種便于擴(kuò)展的瀏覽器啟動(dòng)外部應(yīng)用程序的通用方法,本發(fā)明的實(shí)現(xiàn)方法兼容于HTML標(biāo)準(zhǔn),而且不需要修改瀏覽器就可以實(shí)現(xiàn)對(duì)外部應(yīng)用程序的啟動(dòng)支持。利用本發(fā)明,對(duì)于外部應(yīng)用程序的開(kāi)發(fā)者而言,不需要對(duì)瀏覽器作任何修改,SP可以實(shí)現(xiàn)通過(guò)瀏覽器啟動(dòng)外部應(yīng)用程序,外部應(yīng)用程序的開(kāi)發(fā)者只需要做的是一、在編寫(xiě)HTML網(wǎng)頁(yè)時(shí),添加一個(gè)HTML標(biāo)準(zhǔn)的標(biāo)簽(例如embed標(biāo)簽或object標(biāo)簽及其type屬性值);二、將外部應(yīng)用程序增加一個(gè)瀏覽器插件,例如遵循NPAPI的瀏覽器插件(NPAPI為NetscapePlugin Application Programming Interface,即網(wǎng)景插件應(yīng)用程序編程接口,是瀏覽器插件標(biāo)準(zhǔn),提供了一系列通用接口用于實(shí)現(xiàn)插件),即在外部應(yīng)用程序的動(dòng)態(tài)連接庫(kù)文件中添加NPAPI接口。對(duì)于外部應(yīng)用程序,只要添加一個(gè)瀏覽器插件(如實(shí)現(xiàn)了 NPAPI的瀏覽器插件)并且在瀏覽器插件的事件處理過(guò)程中調(diào)用操作系統(tǒng)提供的啟動(dòng)應(yīng)用程序的API,就可以在不破壞瀏覽器HTML標(biāo)準(zhǔn)、不需要修改瀏覽器的情況下,實(shí)現(xiàn)通過(guò)瀏覽器在網(wǎng)頁(yè)中由用戶點(diǎn)擊標(biāo)簽或插件來(lái)啟動(dòng)外部應(yīng)用程序。通過(guò)閱讀說(shuō)明書(shū),本領(lǐng)域普通技術(shù)人員將更好地了解這些技術(shù)方案的特征和內(nèi)容。
下面通過(guò)參考附圖并結(jié)合實(shí)例具體地描述本發(fā)明,本發(fā)明的優(yōu)點(diǎn)和實(shí)現(xiàn)方式將會(huì)更加明顯,其中附圖所示內(nèi)容僅用于對(duì)本發(fā)明的解釋說(shuō)明,而不構(gòu)成對(duì)本發(fā)明的任何意義上的限制,在附圖中圖1為現(xiàn)有技術(shù)中基于Android平臺(tái)的瀏覽器啟動(dòng)外部應(yīng)用程序的方法示意圖;圖2為本發(fā)明實(shí)施例的在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法流程圖;圖3為本發(fā)明實(shí)施例的在瀏覽器中啟動(dòng)外部應(yīng)用程序的裝置結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例的基于Android平臺(tái)的瀏覽器啟動(dòng)外部應(yīng)用程序的裝置結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例的基于Android平臺(tái)的瀏覽器啟動(dòng)手機(jī)支付程序的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式為克服現(xiàn)有技術(shù)破壞瀏覽器對(duì)HTML的標(biāo)準(zhǔn)實(shí)現(xiàn),且瀏覽器每增加支持一個(gè)外部應(yīng)用程序,瀏覽器就需要做一次修改的缺點(diǎn),本實(shí)施例提供一種在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法,如圖2所示,其包括S101、在瀏覽器的網(wǎng)頁(yè)中添加HTML標(biāo)準(zhǔn)的表示插件的標(biāo)簽;S102、將外部應(yīng)用程序增加對(duì)應(yīng)于標(biāo)簽的瀏覽器插件模塊;S103、瀏覽器接收到點(diǎn)擊標(biāo)簽的事件后,通過(guò)調(diào)用外部應(yīng)用程序的接口(例如NPAPI)將點(diǎn)擊事件傳遞給外部應(yīng)用程序中增加的瀏覽器插件模塊,外部應(yīng)用程序的瀏覽器插件模塊調(diào)用操作系統(tǒng)提供的用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口來(lái)啟動(dòng)外部應(yīng)用程序。作為優(yōu)選方案,標(biāo)簽為embed標(biāo)簽,通過(guò)設(shè)置embed標(biāo)簽的type屬性值來(lái)與外部應(yīng)用程序相關(guān)聯(lián)。另外,標(biāo)簽為也可以是object標(biāo)簽,通過(guò)設(shè)直object標(biāo)簽的type屬性值來(lái)與外部應(yīng)用程序相關(guān)聯(lián)。優(yōu)選地,將外部應(yīng)用程序增加一個(gè)遵循網(wǎng)景插件應(yīng)用程序編程接口(NPAPI)的瀏覽器插件模塊;在將點(diǎn)擊事件傳遞給外部應(yīng)用程序的瀏覽器插件模塊時(shí),瀏覽器通過(guò)調(diào)用外部應(yīng)用程序側(cè)的網(wǎng)景插件應(yīng)用程序編程接口(NPAPI)將點(diǎn)擊事件傳遞給外部應(yīng)用程序的瀏覽器插件模塊。在本實(shí)施例中,操作系統(tǒng)為Android操作系統(tǒng)。當(dāng)然,本發(fā)明并不限于Android操作系統(tǒng),也可以為其它的任何操作系統(tǒng)。
在一個(gè)具體的實(shí)例中,外部應(yīng)用程序可以為手機(jī)支付程序,手機(jī)支付程序在接收到瀏覽器傳遞的點(diǎn)擊事件后,調(diào)用Android操作系統(tǒng)的接口 Context. startActivity O ,啟動(dòng)手機(jī)支付程序的Activity。如圖3所示,本實(shí)施例同時(shí)提供一種在瀏覽器中啟動(dòng)外部應(yīng)用程序的裝置,包括瀏覽器模塊,用于在瀏覽器的網(wǎng)頁(yè)中添加HTML標(biāo)準(zhǔn)的表示插件的標(biāo)簽;外部應(yīng)用程序模塊,其將外部應(yīng)用程序增加對(duì)應(yīng)于標(biāo)簽的瀏覽器插件模塊;操作系統(tǒng)模塊,其提供用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口 ;其中,瀏覽器模塊接收到點(diǎn)擊標(biāo)簽的事件后,通過(guò)調(diào)用外部應(yīng)用程序的接口(例如NPAPI)將點(diǎn)擊事件傳遞給外部應(yīng)用程序中增加的瀏覽器插件模塊,外部應(yīng)用程序模塊中的瀏覽器插件模塊調(diào)用操作系統(tǒng)模塊提供的用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口來(lái)啟動(dòng)外部應(yīng)用程序。作為優(yōu)選方案,瀏覽器模塊添加的標(biāo)簽為embed標(biāo)簽,通過(guò)設(shè)置embed標(biāo)簽的type屬性值來(lái)與外部應(yīng)用程序相關(guān)聯(lián)。另外,標(biāo)簽為也可以是object標(biāo)簽,通過(guò)設(shè)置object標(biāo)簽的type屬性值來(lái)與外部應(yīng)用程序相關(guān)聯(lián)。優(yōu)選地,外部應(yīng)用程序模塊將外部應(yīng)用程序增加一個(gè)遵循網(wǎng)景插件應(yīng)用程序編程接口的瀏覽器插件模塊,外部應(yīng)用程序模塊包括具有網(wǎng)景插件應(yīng)用程序編程接口的瀏覽器插件模塊、和為外部應(yīng)用程序提供界面和功能的功能模塊;瀏覽器模塊包括具有網(wǎng)景插件應(yīng)用程序編程接口的插件模塊;瀏覽器模塊通過(guò)調(diào)用外部應(yīng)用程序模塊側(cè)的網(wǎng)景插件應(yīng)用程序編程接口,將點(diǎn)擊事件傳遞給外部應(yīng)用程序模塊的瀏覽器插件模塊,外部應(yīng)用程序模塊的瀏覽器插件模塊調(diào)用操作系統(tǒng)模塊提供的用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口來(lái)啟動(dòng)外部應(yīng)用程序模塊的功能模塊。在本實(shí)施例中,操作系統(tǒng)模塊采用Android操作系統(tǒng)。當(dāng)然,本發(fā)明并不限于Android操作系統(tǒng),也可以為其它的任何操作系統(tǒng)在一個(gè)具體的實(shí)例中,外部應(yīng)用程序模塊為手機(jī)支付程序模塊,手機(jī)支付程序模塊的瀏覽器插件模塊在接收到瀏覽器模塊傳遞的點(diǎn)擊事件后,調(diào)用Android操作系統(tǒng)的接口 Context. startActivity (),啟動(dòng)手機(jī)支付程序模塊的 Activity。如圖4所示,下面以基于Android平臺(tái)的瀏覽器啟動(dòng)外部應(yīng)用程序?yàn)槔龑?duì)本實(shí)施例的實(shí)現(xiàn)方法進(jìn)行具體介紹首先,在HTML網(wǎng)頁(yè)代碼中添加embed標(biāo)簽,如下<embed type= “application/x-extenalapp,,/>embed標(biāo)簽是標(biāo)準(zhǔn)的HTML標(biāo)簽,每個(gè)瀏覽器都有且必須有embed標(biāo)簽的實(shí)現(xiàn)。本發(fā)明并沒(méi)有為瀏覽器特意添加或修改對(duì)embed標(biāo)簽的實(shí)現(xiàn),embed標(biāo)簽是瀏覽器與生俱來(lái)的,是HTML標(biāo)準(zhǔn)中規(guī)定的。然后,外部應(yīng)用程序在實(shí)現(xiàn)上由兩部分(兩個(gè)模塊)組成實(shí)現(xiàn)了 NPAPI的瀏覽器插件模塊、基于Android平臺(tái)實(shí)現(xiàn)的功能模塊(在本文中,將應(yīng)用程序的除瀏覽器插件模塊以外的其他組成模塊統(tǒng)稱(chēng)為功能模塊,功能模塊為應(yīng)用程序提供用戶界面和與此應(yīng)用程序相關(guān)的功能的實(shí)現(xiàn))。對(duì)于目前已有的Android應(yīng)用程序,要使得此Android應(yīng)用程序可以通過(guò)網(wǎng)頁(yè)啟動(dòng),只需要在程序中添加瀏覽器插件模塊的實(shí)現(xiàn)即可。最后,外部應(yīng)用程序的瀏覽器插件模塊在NPAPI的事件處理接口的實(shí)現(xiàn)中在處理某個(gè)插件事件(如用戶點(diǎn)擊標(biāo)簽或插件的事件)時(shí),調(diào)用Android操作系統(tǒng)的用于啟動(dòng)某個(gè)應(yīng)用程序的API (應(yīng)用程序編程接口 )。Android操作系統(tǒng)提供了用于啟動(dòng)應(yīng)用程序的API,只要在調(diào)用此API時(shí)指定應(yīng)用程序的包名,Android系統(tǒng)就會(huì)找到包名對(duì)應(yīng)的應(yīng)用程序,然后啟動(dòng)此應(yīng)用程序,這就實(shí)現(xiàn)了本發(fā)明的“通過(guò)插件啟動(dòng)應(yīng)用程序”的目的。這樣,用戶在瀏覽器中打開(kāi)某個(gè)網(wǎng)頁(yè),該網(wǎng)頁(yè)含有一個(gè)表示插件的embed標(biāo)簽,embed標(biāo)簽在網(wǎng)頁(yè)中表現(xiàn)為一個(gè)插件。此網(wǎng)頁(yè)的目的是當(dāng)用戶點(diǎn)擊網(wǎng)頁(yè)中的標(biāo)簽或插件后,瀏覽器會(huì)自動(dòng)啟動(dòng)一個(gè)外部應(yīng)用程序。瀏覽器接收到用戶點(diǎn)擊標(biāo)簽或插件的事件后,將點(diǎn)擊事件傳遞給瀏覽器自身的插件模塊,最終通過(guò)NPAPI傳遞給外部應(yīng)用程序的瀏覽器插件模塊。外部應(yīng)用程序的瀏覽器插件模塊在處理點(diǎn)擊事件過(guò)程中,調(diào)用Android操作系統(tǒng)的用于啟動(dòng)應(yīng)用程序的API,在調(diào)用參數(shù)中指定要啟動(dòng)的外部應(yīng)用程序,然后Android系統(tǒng)就會(huì)啟動(dòng)指定的外部應(yīng)用程序(此后將會(huì)由外部應(yīng)用程序的功能子模塊提供用戶界面),最終達(dá)到了通過(guò)插件啟動(dòng)某個(gè)外部應(yīng)用程序的目的。在HTML中,embed標(biāo)簽定義嵌入的內(nèi)容,比如插件。embed標(biāo)簽是在HTML頁(yè)面中的,是HTML頁(yè)面的一部分;瀏覽器的插件模塊是瀏覽器的一部分,插件模塊是HTML的embed標(biāo)簽在瀏覽器的具體實(shí)現(xiàn)模塊。embed標(biāo)簽的type屬性規(guī)定被嵌入內(nèi)容的媒體類(lèi)型。利用本發(fā)明,網(wǎng)頁(yè)開(kāi)發(fā)者可以根據(jù)其不同的實(shí)際需要編寫(xiě)不同的網(wǎng)頁(yè),通過(guò)網(wǎng)頁(yè)啟動(dòng)某個(gè)特定的外部應(yīng)用程序,由外部應(yīng)用程序來(lái)提供網(wǎng)頁(yè)所無(wú)法提供的功能。本發(fā)明為瀏覽器開(kāi)發(fā)者提供了一個(gè)便于擴(kuò)展的方案和框架,無(wú)需修改瀏覽器就可以讓網(wǎng)頁(yè)根據(jù)embed標(biāo)簽或object標(biāo)簽的type屬性值來(lái)啟動(dòng)其相關(guān)聯(lián)的外部應(yīng)用程序。本發(fā)明為外部應(yīng)用程序開(kāi)發(fā)者提供了一個(gè)便于移植的方案和框架,可以將現(xiàn)有的應(yīng)用程序很方便地改造成可以讓瀏覽器通過(guò)網(wǎng)頁(yè)啟動(dòng)的外部應(yīng)用程序,外部應(yīng)用程序開(kāi)發(fā)者只需要增加一個(gè)實(shí)現(xiàn)了插件側(cè)NPAPI的插件子模塊到現(xiàn)有的應(yīng)用程序即可。如圖5所示,下面以基于Android平臺(tái)的瀏覽器啟動(dòng)手機(jī)支付程序作為一個(gè)實(shí)例進(jìn)行說(shuō)明對(duì)于手機(jī)支付程序,Android平臺(tái)的瀏覽器不需要做任何改動(dòng),在原有的手機(jī)支付程序模塊上添加了一個(gè)瀏覽器插件模塊,從而構(gòu)成了手機(jī)支付插件,實(shí)現(xiàn)了由手機(jī)瀏覽器在網(wǎng)頁(yè)中啟動(dòng)手機(jī)支付程序。該方案實(shí)現(xiàn)了瀏覽器與外部應(yīng)用程序的松耦合和靈活擴(kuò)展。具體實(shí)現(xiàn)方案如下1、在HTML網(wǎng)頁(yè)代碼中添加embed標(biāo)簽,如下<embed type= “application/x_unionpayplugin,,/>2、手機(jī)支付程序模塊由兩部分組成實(shí)現(xiàn)了 NPAPI的瀏覽器插件模塊、基于Android平臺(tái)實(shí)現(xiàn)的手機(jī)支付功能模塊。3、手機(jī)支付程序模塊的瀏覽器插件模塊在接收到點(diǎn)擊標(biāo)簽或插件的事件后,調(diào)用Android操作系統(tǒng)的接口 Context. startActivity O ,從而啟動(dòng)手機(jī)支付程序模塊的功能模塊的Activity。Context. startActivity O其實(shí)就是Android系統(tǒng)提供的用于啟動(dòng)應(yīng)用程序的API, Activity是組成手機(jī)支付功能模塊的一部分,也是所有具有用戶界面的Android應(yīng)用程序的必需的組成部分之一,屬于Android平臺(tái)的概念。Activity是Android的應(yīng)用程序組件,提供一個(gè)屏幕,用戶可以用來(lái)交互為了完成某項(xiàng)任務(wù),例如撥號(hào)、拍照、發(fā)送email、看地圖等。由此可見(jiàn),對(duì)于外部應(yīng)用程序,只要添加一個(gè)瀏覽器插件(如實(shí)現(xiàn)了 NPAPI的瀏覽器插件)并且在瀏覽器插件的事件處理過(guò)程中調(diào)用操作系統(tǒng)提供的啟動(dòng)應(yīng)用程序的API,就可以在不破壞瀏覽器HTML標(biāo)準(zhǔn)、不需要修改瀏覽器的情況下,實(shí)現(xiàn)通過(guò)瀏覽器在網(wǎng)頁(yè)中由用戶點(diǎn)擊標(biāo)簽或插件來(lái)啟動(dòng)外部應(yīng)用程序。以上參照
了本發(fā)明的優(yōu)選實(shí)施例,本領(lǐng)域技術(shù)人員不脫離本發(fā)明的范圍和實(shí)質(zhì),可以有多種變型方案實(shí)現(xiàn)本發(fā)明。舉例而言,作為一個(gè)實(shí)施例的部分示出或描述的特征可用于另一實(shí)施例以得到又一實(shí)施例。以上僅為本發(fā)明較佳可行的實(shí)施例而已,并非因此局限本發(fā)明的權(quán)利范圍,凡運(yùn)用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效變化,均包含于本發(fā)明的權(quán)利范圍之內(nèi)。
權(quán)利要求
1.一種在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法,其特征在于包括 在瀏覽器的網(wǎng)頁(yè)中添加HTML標(biāo)準(zhǔn)的表示插件的標(biāo)簽; 將外部應(yīng)用程序增加對(duì)應(yīng)于所述標(biāo)簽的瀏覽器插件模塊; 瀏覽器接收到點(diǎn)擊所述標(biāo)簽的事件后,通過(guò)調(diào)用外部應(yīng)用程序的接口將點(diǎn)擊事件傳遞給所述外部應(yīng)用程序中增加的瀏覽器插件模塊,所述外部應(yīng)用程序的瀏覽器插件模塊調(diào)用操作系統(tǒng)提供的用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口來(lái)啟動(dòng)所述外部應(yīng)用程序。
2.根據(jù)權(quán)利要求1所述的在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法,其特征在于,所述標(biāo)簽為embed標(biāo)簽或object標(biāo)簽,通過(guò)設(shè)置所述embed標(biāo)簽或object標(biāo)簽的type屬性值來(lái)與所述外部應(yīng)用程序相關(guān)聯(lián)。
3.根據(jù)權(quán)利要求1或2所述的在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法,其特征在于,將外部應(yīng)用程序增加遵循網(wǎng)景插件應(yīng)用程序編程接口的瀏覽器插件模塊;在將點(diǎn)擊事件傳遞給所述外部應(yīng)用程序的瀏覽器插件模塊時(shí),瀏覽器通過(guò)調(diào)用外部應(yīng)用程序側(cè)的網(wǎng)景插件應(yīng)用程序編程接口將點(diǎn)擊事件傳遞給所述外部應(yīng)用程序的瀏覽器插件模塊。
4.根據(jù)權(quán)利要求3所述的在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法,其特征在于,所述操作系統(tǒng)為Android操作系統(tǒng)。
5.根據(jù)權(quán)利要求4所述的在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法,其特征在于,所述外部應(yīng)用程序?yàn)槭謾C(jī)支付程序,所述手機(jī)支付程序的瀏覽器插件模塊在接收到瀏覽器傳遞的點(diǎn)擊事件后,調(diào)用Android操作系統(tǒng)的接口 Context. startActivity O ,啟動(dòng)手機(jī)支付程序的 Activity。
6.一種在瀏覽器中啟動(dòng)外部應(yīng)用程序的裝置,其特征在于包括 瀏覽器模塊,用于在瀏覽器的網(wǎng)頁(yè)中添加HTML標(biāo)準(zhǔn)的表示插件的標(biāo)簽; 外部應(yīng)用程序模塊,其將外部應(yīng)用程序增加對(duì)應(yīng)于所述標(biāo)簽的瀏覽器插件模塊; 操作系統(tǒng)模塊,其提供用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口 ; 其中,所述瀏覽器模塊接收到點(diǎn)擊所述標(biāo)簽的事件后,通過(guò)調(diào)用外部應(yīng)用程序的接口將點(diǎn)擊事件傳遞給所述外部應(yīng)用程序模塊中增加的瀏覽器插件模塊,所述外部應(yīng)用程序模塊中的瀏覽器插件模塊調(diào)用操作系統(tǒng)模塊提供的用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口來(lái)啟動(dòng)所述外部應(yīng)用程序。
7.根據(jù)權(quán)利要求6所述的在瀏覽器中啟動(dòng)外部應(yīng)用程序的裝置,其特征在于,所述瀏覽器模塊添加的所述標(biāo)簽為embed標(biāo)簽或object標(biāo)簽,通過(guò)設(shè)置所述embed標(biāo)簽或object標(biāo)簽的type屬性值來(lái)與所述外部應(yīng)用程序相關(guān)聯(lián)。
8.根據(jù)權(quán)利要求6或7所述的在瀏覽器中啟動(dòng)外部應(yīng)用程序的裝置,其特征在于,所述外部應(yīng)用程序模塊將所述外部應(yīng)用程序增加遵循網(wǎng)景插件應(yīng)用程序編程接口的瀏覽器插件模塊, 所述外部應(yīng)用程序模塊包括具有網(wǎng)景插件應(yīng)用程序編程接口的瀏覽器插件模塊、和為外部應(yīng)用程序提供界面和功能的功能模塊; 所述瀏覽器模塊包括具有網(wǎng)景插件應(yīng)用程序編程接口的插件模塊; 所述瀏覽器模塊通過(guò)調(diào)用外部應(yīng)用程序模塊側(cè)的網(wǎng)景插件應(yīng)用程序編程接口,將點(diǎn)擊事件傳遞給外部應(yīng)用程序模塊的瀏覽器插件模塊,所述外部應(yīng)用程序模塊的瀏覽器插件模塊調(diào)用操作系統(tǒng)模塊提供的用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口來(lái)啟動(dòng)所述外部應(yīng)用程序模塊的功能模塊。
9.根據(jù)權(quán)利要求8所述的在瀏覽器中啟動(dòng)外部應(yīng)用程序的裝置,其特征在于,所述操作系統(tǒng)模塊采用Android操作系統(tǒng)。
10.根據(jù)權(quán)利要求9所述的在瀏覽器中啟動(dòng)外部應(yīng)用程序的裝置,其特征在于,所述外部應(yīng)用程序模塊為手機(jī)支付程序模塊,所述手機(jī)支付程序模塊的瀏覽器插件模塊在接收到瀏覽器模塊傳遞的點(diǎn)擊事件后,調(diào)用Android操作系統(tǒng)的接口 Context. startActivity (),啟動(dòng)手機(jī)支付程序模塊的Activity。
全文摘要
本發(fā)明提供一種在瀏覽器中啟動(dòng)外部應(yīng)用程序的方法和裝置,該方法包括在瀏覽器的網(wǎng)頁(yè)中添加HTML標(biāo)準(zhǔn)的表示插件的標(biāo)簽;將外部應(yīng)用程序增加對(duì)應(yīng)于標(biāo)簽的瀏覽器插件模塊;瀏覽器接收到點(diǎn)擊標(biāo)簽的事件后,通過(guò)調(diào)用外部應(yīng)用程序的接口將點(diǎn)擊事件傳遞給外部應(yīng)用程序中增加的瀏覽器插件模塊,外部應(yīng)用程序的瀏覽器插件模塊調(diào)用操作系統(tǒng)提供的用于啟動(dòng)應(yīng)用程序的應(yīng)用程序編程接口來(lái)啟動(dòng)外部應(yīng)用程序。本發(fā)明克服了現(xiàn)有技術(shù)破壞瀏覽器對(duì)HTML的標(biāo)準(zhǔn)實(shí)現(xiàn),且瀏覽器每增加支持一個(gè)外部應(yīng)用程序,就需要做一次修改的缺點(diǎn),在不破壞瀏覽器HTML標(biāo)準(zhǔn)、不需要修改瀏覽器的情況下,就可以實(shí)現(xiàn)對(duì)外部應(yīng)用程序的啟動(dòng)支持。
文檔編號(hào)G06F9/48GK103049320SQ20121055304
公開(kāi)日2013年4月17日 申請(qǐng)日期2012年12月17日 優(yōu)先權(quán)日2012年12月17日
發(fā)明者梁捷, 俞永福, 何小鵬, 朱順炎, 鄺耀宗 申請(qǐng)人:廣州市動(dòng)景計(jì)算機(jī)科技有限公司