两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種瀏覽器插件調(diào)用方法及系統(tǒng)的制作方法

文檔序號:6425886閱讀:224來源:國知局
專利名稱:一種瀏覽器插件調(diào)用方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及插件技術(shù),尤指一種iOS系統(tǒng)的瀏覽器插件調(diào)用方法及系統(tǒng)。
背景技術(shù)
網(wǎng)頁往往需要調(diào)用插件的功能來實(shí)現(xiàn)更豐富的表現(xiàn),更強(qiáng)大的功能,比如IE瀏覽器的ActiveX ;又如firefox、safari、chrome等瀏覽器使用的網(wǎng)景插件應(yīng)用程序編程接口(NPAPI,Netscape Plugin Application Programming Interface)的插件。在網(wǎng)頁中經(jīng)??吹降膄lash就是這種插件技術(shù)的一種表現(xiàn)。iOS系統(tǒng)是美國蘋果公司(Apple Inc.)用于移動設(shè)備(如iphone、ipad)的操 作系統(tǒng)。iOS系統(tǒng)使用safari瀏覽器作為內(nèi)置瀏覽器,目前,在safari瀏覽器上實(shí)現(xiàn)插件技術(shù)有NPAPI組件技術(shù)。NPAPI是一套用于webkit內(nèi)核瀏覽器公開的、特定的接口,只要遵循這套接口編寫出對應(yīng)的模塊文件,并將該模塊文件放置到safari的插件目錄下,就能實(shí)現(xiàn)safari裝載該對應(yīng)的模塊,接著網(wǎng)頁即可調(diào)用該插件。比如蘋果公司在移動設(shè)備中內(nèi)置有QuickTime插件,QuickTime是蘋果公司的播放器,通過這個組件,網(wǎng)頁就能調(diào)用QuickTime進(jìn)行音視頻的播放;又比如第三方開發(fā)的Safari下載管理(Safari DownloadManager)插件,實(shí)現(xiàn)了 safari的下載管理,等等。現(xiàn)有插件技術(shù)的使用方式如圖I所示,整個操作環(huán)境是在瀏覽器中進(jìn)行的,瀏覽器在打開網(wǎng)頁時,會有javascript腳本與插件,數(shù)據(jù)的交換就在插件與javascript腳本間進(jìn)行?,F(xiàn)有iOS平臺的NPAPI的缺點(diǎn)主要是,美國蘋果公司對插件技術(shù)的封閉,第三方軟件開發(fā)廠商是不得使用和修改的。目前,NPAPI技術(shù)所碰到的問題是美國蘋果公司不讓插件出現(xiàn)在safari瀏覽器中,因此,對于第三方軟件開發(fā)廠商來講,圖I中的插件模塊是不存在的,這樣,javascript腳本就無法找到數(shù)據(jù)交換的對象。而部分第三方軟件開發(fā)廠商開發(fā)的iOS下的NPAPI插件,需要用戶對iOS進(jìn)行破解后才能使用,這樣又會存在幾個問題美國蘋果公司禁止對iOS進(jìn)行破解,因此,其不會對進(jìn)行了 iOS破解的設(shè)備提供維修保障,而且對iOS的破解是觸犯知識產(chǎn)權(quán)保護(hù)法的;iOS破解后會產(chǎn)生安全風(fēng)險(xiǎn),并且容易使得系統(tǒng)不穩(wěn)定。綜上所述,第三方用戶在使用NPAPI技術(shù)非常受限制,缺乏靈活性,達(dá)不到一般應(yīng)用要求。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種瀏覽器插件調(diào)用方法及系統(tǒng),能夠提供第三方用戶使用NPAPI技術(shù)的便利性,增加靈活性,達(dá)到一般應(yīng)用要求。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種瀏覽器插件調(diào)用方法,預(yù)先設(shè)置用于訪問插件的URL地址;該方法還包括在接收到頁面跳轉(zhuǎn)通知時,確定出需要跳轉(zhuǎn)的URL地址為用于訪問插件的URL地址,不進(jìn)行頁面跳轉(zhuǎn),從URL中讀取參數(shù),使插件獲得傳入的數(shù)據(jù)。在確定出需要跳轉(zhuǎn)的URL地址不是用于訪問插件的URL地址時,該方法還包括進(jìn)行正常頁面跳轉(zhuǎn),結(jié)束本流程。當(dāng)所述插件需要反饋數(shù)據(jù)到頁面時,該方法還包括所述插件通過瀏覽器接口的方法,直接通過javascript腳本將數(shù)據(jù)注入到頁面。所述通過瀏覽器接口的方法,直接通過javascript腳本將數(shù)據(jù)注入到頁面包括預(yù)先設(shè)置用于保存插件傳出給頁面的數(shù)據(jù)的javascript變量;所述插件通過瀏覽器控件UIWebView 的 StringByEvaluatingjavaScriptFromString方法,將數(shù)據(jù)存儲到該javascript變量中;
所述頁面直接訪問該javascript變量以獲得數(shù)據(jù)。所述插件是iOS的應(yīng)用app程序。一種瀏覽器插件調(diào)用系統(tǒng),至少包括插件、瀏覽器、頁面,以及javascript腳本,其中,Javascript腳本位于瀏覽器中,用于發(fā)起頁面跳轉(zhuǎn)通知;插件,位于瀏覽器外并監(jiān)視瀏覽器相關(guān)事件,用于接收頁面準(zhǔn)備跳轉(zhuǎn)的通知,在確定出URL地址為用于訪問插件的URL地址時,阻止頁面跳轉(zhuǎn)后,從URL中讀取參數(shù),使插件獲得傳入的數(shù)據(jù)。所述插件,還用于通過瀏覽器控件的方法,將數(shù)據(jù)存儲到預(yù)先設(shè)置的javascript變量;相應(yīng)地,所述javascript腳本,還用于直接訪問該javascript變量以獲得數(shù)據(jù)。所述插件是iOS的應(yīng)用app程序。從上述本發(fā)明提供的技術(shù)方案可以看出,包括預(yù)先設(shè)置用于訪問插件的URL地址;在接收到頁面跳轉(zhuǎn)通知時,確定出需要跳轉(zhuǎn)的URL地址為用于訪問插件的URL地址,不進(jìn)行頁面跳轉(zhuǎn),從URL中讀取參數(shù),使插件獲得傳入的數(shù)據(jù)。通過本發(fā)明調(diào)用插件的方法,通過app模擬通常頁面調(diào)用插件的各個接口,實(shí)現(xiàn)了對插件的模擬,同時也實(shí)現(xiàn)了數(shù)據(jù)在插件和javascript腳本之間的輸入輸出,提供了第三方用戶使用NPAPI技術(shù)的便利性,增加了靈活性,達(dá)到了一般應(yīng)用要求。


圖I為現(xiàn)有插件技術(shù)的使用方式的示意圖;圖2為本發(fā)明瀏覽器插件調(diào)用方法的流程圖;圖3為本發(fā)明瀏覽器插件調(diào)用系統(tǒng)的組成結(jié)構(gòu)示意圖;圖4為本發(fā)明數(shù)據(jù)傳入插件的實(shí)施例的流程示意圖;圖5為本發(fā)明插件數(shù)據(jù)傳出的實(shí)施例的示意圖。
具體實(shí)施例方式圖2為本發(fā)明插件調(diào)用方法的流程圖,如圖2所示,包括以下步驟步驟200 :預(yù)先設(shè)置用于訪問插件的URL地址。本步驟中,預(yù)先設(shè)置的URL地址是一個唯一的標(biāo)識,具體取什么值并不做限定,但需要保證是唯一的,這樣,在后續(xù)處理頁面跳轉(zhuǎn)時,可以通過該URL地址識別出是針對插件本身的請求,與區(qū)別于其他正常的頁面訪問URL地址,從而采取相應(yīng)的跳轉(zhuǎn)方式。步驟201 :在接收到頁面跳轉(zhuǎn)通知時,確定URL地址是否為用于訪問插件的URL地址,如果是,進(jìn)入步驟202 ;否則進(jìn)行現(xiàn)有的正常跳轉(zhuǎn)并結(jié)束本流程。對于頁面數(shù)據(jù)傳入到插件的情況,只是希望頁面把數(shù)據(jù)傳進(jìn)來,并不希望頁面發(fā)生跳轉(zhuǎn),因此,本步驟中,在檢測到頁面跳轉(zhuǎn)通知中的URL地址與預(yù)先設(shè)置的用于訪問插件的URL地址一致,則不需要進(jìn)行瀏覽器跳轉(zhuǎn)。步驟202 :不進(jìn)行頁面跳轉(zhuǎn),從URL中讀取參數(shù),使插件獲得傳入的數(shù)據(jù)。本步驟中,從javascript代碼中直接讀取從頁面?zhèn)魅氩寮臄?shù)據(jù)即可。其中,插件可以是iOS的應(yīng)用(app)程序。其中,app指iOS系統(tǒng)上的公開發(fā)行的軟件程序,app程序其實(shí)是iOS的一個普通程序,用戶可以從appstore (—個美國蘋果公司 的軟件中心)下載安裝。需要說明的是,這個app內(nèi)嵌了瀏覽器,這樣,瀏覽器中的信息交換就能被app所獲取。需要說明的是,app內(nèi)嵌瀏覽器是iOS開發(fā)下的通用行為,具體實(shí)現(xiàn)不屬于本發(fā)明的保護(hù)范圍,是本領(lǐng)域技術(shù)人員的慣用技術(shù),比如很多windows程序內(nèi)嵌一個瀏覽器用于展示廣告頁面,是很常見的,iOS系統(tǒng)下也是同樣如此。本發(fā)明方法還包括當(dāng)插件需要反饋數(shù)據(jù)到頁面時,插件通過瀏覽器接口UIffebView 的 StringByEvaluatingjavaScriptFromString 方法直接通過 javascript腳本將數(shù)據(jù)注入到頁面。具體來講包括預(yù)先設(shè)置用于保存插件傳出給頁面的數(shù)據(jù)的javascript 變量,插件通過瀏覽器控件 UIWebView 的 StringByEvaluatingJavaScriptFromString方法,將數(shù)據(jù)存儲到該javascript變量中,這樣,頁面直接訪問該javascript變量以獲得數(shù)據(jù),實(shí)現(xiàn)了插件數(shù)據(jù)輸出到頁面。其中,UIWebView是iOS系統(tǒng)下瀏覽器的對應(yīng)接口,通過這個接口,可以操作瀏覽器訪問網(wǎng)站的行為,操作頁面數(shù)據(jù)AtringByEvaluatingJavaScriptFromString是UIWebView的一個函數(shù)接口,這個函數(shù)能實(shí)現(xiàn)運(yùn)行頁面里面的javascript語句,具體使用屬于本領(lǐng)域技術(shù)人員的慣用技術(shù)手段,這里不再贅述。圖3為本發(fā)明插件調(diào)用系統(tǒng)的組成結(jié)構(gòu)示意圖,如圖3所示,至少包括插件、瀏覽器、頁面,以及javascript腳本,其中,Javascript腳本位于瀏覽器中,用于發(fā)起頁面跳轉(zhuǎn)通知;插件,位于瀏覽器外并監(jiān)視瀏覽器相關(guān)事件,用于接收頁面準(zhǔn)備跳轉(zhuǎn)的通知,在確定出URL地址為用于訪問插件的URL地址時,阻止頁面跳轉(zhuǎn)后,從URL中讀取參數(shù),使插件獲得傳入的數(shù)據(jù)。插件,還用于通過瀏覽器控件的方法,將數(shù)據(jù)存儲到預(yù)先設(shè)置的javascript變量;相應(yīng)地,javascript腳本,還用于直接訪問該javascript變量以獲得數(shù)據(jù)。圖4為本發(fā)明數(shù)據(jù)傳入插件的實(shí)施例的流程示意圖,如圖4所示,包括步驟400步驟401 :頁面需要傳數(shù)據(jù)給插件,Javascript腳本封裝數(shù)據(jù)到一個特定的URL中,并發(fā)起頁面跳轉(zhuǎn)通知。步驟402 =App本身檢測到頁面的跳轉(zhuǎn),分析出URL中的數(shù)據(jù),阻止頁面跳轉(zhuǎn)。步驟403 :數(shù)據(jù)成功傳入app,插件獲得來自頁面的數(shù)據(jù)。下面結(jié)合實(shí)例來詳細(xì)描述圖4所示的流程假設(shè)某網(wǎng)頁通過javascript將一個參數(shù)傳給插件,該參數(shù)名字為時間(time),其值取為當(dāng)前時間,數(shù)據(jù)定義為time = 20101202161616,其中的20101202161616表示2010年12月2日16時16分16秒。本實(shí)施例中,通過URL來傳送該參數(shù),通過javascript控制當(dāng)前頁面跳轉(zhuǎn)到新的URL, javascript示例代碼如表I所示
var url='https://643248ff-f6c5-4ccd-9088-ablled68e6d2 time=20101202161616'window.open(url);表I表I 中,URL 的地址內(nèi)容為 643248ff-f6c5-4ccd-9088-ablled68e6d2,是一個唯一的標(biāo)識,具體取什么值不做限定,這里只是一個示例。這樣應(yīng)用程序(app)可以通過這個唯一的標(biāo)識識別出是針對插件本身的請求。表I中,問號后面的time = 20101202161616是頁面?zhèn)鹘o插件的具體數(shù)據(jù)。 App得到URL地址跳轉(zhuǎn)的通知,通知的位置在app內(nèi)嵌的瀏覽器對應(yīng)的類UI ViewContro 11 er<UIffebViewDe legate)上面。這個類有個接口 shouldStartLoadWithRequest,通過該接口可以得到每次瀏覽器
要跳轉(zhuǎn)的地址,如表2所示代碼示例
-(B OOL) web Vie w: (UIWebView *) web ViewshouldStartLoadWithRequest: (NSURLRequest*)requestnavigationType:(UIWebYiewNavigationType)navigationType {
NSURL *url = request.URL; //得到跳轉(zhuǎn)的URL地址 NS String* strJs;
if([[urlhost]
isEqualToString: @ "643248ff-f6c5-4ccd-9088-ablled68e6d2"])
{
//如果跳轉(zhuǎn)的地址是插件特有的,那么就取出參數(shù)NSString* strRSAKey = [url query];
//參數(shù)已經(jīng)得到,數(shù)據(jù)已經(jīng)成功從頁面?zhèn)魅脒M(jìn)來return FALSE; //返回FALSE,表示覓面不跳轉(zhuǎn)}
return TRUE; //其他情況返回TURE,表示允許頁面跳轉(zhuǎn) }表2
圖5為本發(fā)明插件數(shù)據(jù)傳出的實(shí)施例的示意圖,如圖5所示,當(dāng)插件需要反饋數(shù)據(jù)到頁面時,插件通過瀏覽器控件 UIWebView 的 StringByEvaluatingjavaScriptFromString方法,直接通過javascript數(shù)據(jù)對象(可以通過定義的javascript變量來實(shí)現(xiàn))將數(shù)據(jù)注入到頁面,代碼示例如表3所示
權(quán)利要求
1.一種瀏覽器插件調(diào)用方法,其特征在于,預(yù)先設(shè)置用于訪問插件的URL地址;該方法還包括 在接收到頁面跳轉(zhuǎn)通知時,確定出需要跳轉(zhuǎn)的URL地址為用于訪問插件的URL地址,不進(jìn)行頁面跳轉(zhuǎn),從URL中讀取參數(shù),使插件獲得傳入的數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的瀏覽器插件調(diào)用方法,其特征在于,在確定出需要跳轉(zhuǎn)的URL地址不是用于訪問插件的URL地址時,該方法還包括進(jìn)行正常頁面跳轉(zhuǎn),結(jié)束本流程。
3.根據(jù)權(quán)利要求I或2所述的瀏覽器插件調(diào)用方法,其特征在于,當(dāng)所述插件需要反饋數(shù)據(jù)到頁面時,該方法還包括所述插件通過瀏覽器接口的方法,直接通過javascript腳本將數(shù)據(jù)注入到頁面。
4.根據(jù)權(quán)利要求3所述的瀏覽器插件調(diào)用方法,其特征在于,所述通過瀏覽器接口的方法,直接通過javascript腳本將數(shù)據(jù)注入到頁面包括 預(yù)先設(shè)置用于保存插件傳出給頁面的數(shù)據(jù)的javascript變量; 所述插件通過瀏覽器控件 UIWebView 的 StringByEvaluatingjavaScriptFromString方法,將數(shù)據(jù)存儲到該javascript變量中; 所述頁面直接訪問該javascript變量以獲得數(shù)據(jù)。
5.根據(jù)權(quán)利要求I所述的瀏覽器插件調(diào)度方法,其特征在于,所述插件是iOS的應(yīng)用app程序。
6.一種瀏覽器插件調(diào)用系統(tǒng),其特征在于,至少包括插件、瀏覽器、頁面,以及javascript腳本,其中, Javascript腳本位于瀏覽器中,用于發(fā)起頁面跳轉(zhuǎn)通知; 插件,位于瀏覽器外并監(jiān)視瀏覽器相關(guān)事件,用于接收頁面準(zhǔn)備跳轉(zhuǎn)的通知,在確定出URL地址為用于訪問插件的URL地址時,阻止頁面跳轉(zhuǎn)后,從URL中讀取參數(shù),使插件獲得傳入的數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的瀏覽器插件調(diào)用系統(tǒng),其特征在于, 所述插件,還用于通過瀏覽器控件的方法,將數(shù)據(jù)存儲到預(yù)先設(shè)置的javascript變量;相應(yīng)地, 所述javascript腳本,還用于直接訪問該javascript變量以獲得數(shù)據(jù)。
8.根據(jù)權(quán)利要求7或8所述的瀏覽器插件調(diào)用系統(tǒng),其特征在于,所述插件是iOS的應(yīng)用app程序。
全文摘要
本發(fā)明公開了一種瀏覽器插件調(diào)用方法及系統(tǒng),包括預(yù)先設(shè)置用于訪問插件的URL地址;在接收到頁面跳轉(zhuǎn)通知時,確定出需要跳轉(zhuǎn)的URL地址為用于訪問插件的URL地址,不進(jìn)行頁面跳轉(zhuǎn),從URL中讀取參數(shù),使插件獲得傳入的數(shù)據(jù)。通過本發(fā)明調(diào)用插件的方法,通過app模擬通常頁面調(diào)用插件的各個接口,實(shí)現(xiàn)了對插件的模擬,同時也實(shí)現(xiàn)了數(shù)據(jù)在插件和javascript腳本之間的輸入輸出,提供了第三方用戶使用NPAPI技術(shù)的便利性,增加了靈活性,達(dá)到了一般應(yīng)用要求。
文檔編號G06F9/46GK102819451SQ20111015427
公開日2012年12月12日 申請日期2011年6月9日 優(yōu)先權(quán)日2011年6月9日
發(fā)明者何暢, 周鵬里 申請人:深圳市財(cái)付通科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
加查县| 镇平县| 如东县| 霞浦县| 宜兴市| 米脂县| 高平市| 资溪县| 谷城县| 会泽县| 吴忠市| 泗阳县| 宜阳县| 万宁市| 舟曲县| 抚远县| 宜都市| 梁平县| 平凉市| 连江县| 安仁县| 华坪县| 遵义县| 固原市| 龙口市| 乐陵市| 安仁县| 平凉市| 兴安县| 县级市| 萝北县| 武强县| 江都市| 于田县| 鄱阳县| 民丰县| 济源市| 特克斯县| 清涧县| 汤阴县| 巫山县|