專(zhuān)利名稱(chēng):一種基于WebKit瀏覽器的wap頁(yè)面顯示方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)通信技術(shù)領(lǐng)域,尤其涉及一種基于WebKit瀏覽器的wap頁(yè)面顯示方法及裝置。
背景技術(shù):
Android是基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng),Android平臺(tái)由操作系統(tǒng)、中間件、用戶(hù)界面和應(yīng)用軟件組成,平臺(tái)的底層以C語(yǔ)言開(kāi)發(fā)的Linux內(nèi)核為基礎(chǔ),只提供基本功能,平臺(tái)的中間層包括函數(shù)庫(kù)和虛擬機(jī),而平臺(tái)的上層是各種應(yīng)用軟件。在Android平臺(tái)內(nèi)部集成了基于開(kāi)源WebKit內(nèi)核的全功能瀏覽器,可以同時(shí)支持無(wú)線(xiàn)應(yīng)用通信協(xié)議(WAP) 網(wǎng)和萬(wàn)維網(wǎng)(WWW)。以移動(dòng)終端為例,目前在移動(dòng)終端基于WebKit瀏覽器訪(fǎng)問(wèn)wap網(wǎng)頁(yè)時(shí),Android 系統(tǒng)中的WebKit瀏覽器無(wú)法獲知wap頁(yè)面布局所需最小寬度,只能使用默認(rèn)800像素作為 wap類(lèi)型頁(yè)面布局所需最小寬度,一般情況下,wap頁(yè)面布局所需最小寬度為200像素左右, 遠(yuǎn)小于800像素,而800像素又大于顯示屏的顯示寬度(一般小于480像素),從而使得瀏覽器在顯示wap網(wǎng)頁(yè)時(shí),以滾動(dòng)條形式在顯示屏水平方向上產(chǎn)生大片空白區(qū)域,降低了用戶(hù)體驗(yàn)。雖然,在WebKit瀏覽器可以通過(guò)查找網(wǎng)頁(yè)地址(URL)中關(guān)鍵字(如“.wap.,,、 ".m. ”等)確定當(dāng)前訪(fǎng)問(wèn)頁(yè)面是否為wap頁(yè)面,然后約定瀏覽器顯示區(qū)域的寬度為移動(dòng)終端顯示屏的顯示寬度,但是,該方法無(wú)法識(shí)別數(shù)字形式的網(wǎng)頁(yè)地址,例如,網(wǎng)頁(yè)地址 http://218. 204. 177.211 :8080/test/中不存在“.wap. ”等相關(guān)關(guān)鍵字,則無(wú)法確定該網(wǎng)頁(yè)是否為wap類(lèi)型。并且,該方法中在頁(yè)面布局所需最小寬度大于顯示屏的顯示寬度時(shí),則會(huì)造成顯示混亂。
發(fā)明內(nèi)容
本發(fā)明提供一種基于WebKit瀏覽器的wap頁(yè)面顯示方法及裝置,用以采用 Android系統(tǒng)的顯示終端,在使用WebKit瀏覽器時(shí)能夠有效識(shí)別wap類(lèi)型網(wǎng)頁(yè),并確定合適的瀏覽器顯示區(qū)域?qū)挾冗M(jìn)行wap頁(yè)面顯示。本發(fā)明實(shí)施例提供的具體技術(shù)方案如下一種基于WebKit瀏覽器的wap頁(yè)面顯示方法,包括獲取待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)值;根據(jù)所述媒體類(lèi)型參數(shù)值確定所述待顯示網(wǎng)頁(yè)為wap類(lèi)型時(shí),基于WebKit瀏覽器的最大視圖寬度、顯示終端顯示屏的顯示寬度以及所述待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度確定WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度;將確定的所述WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度作為WebKit瀏覽器的顯示區(qū)域?qū)挾龋燥@示所述待顯示網(wǎng)頁(yè)。一種基于WebKit瀏覽器的wap頁(yè)面顯示裝置,包括
第一處理單元,用于獲取待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)值;第二處理單元,用于根據(jù)所述媒體類(lèi)型參數(shù)值確定所述待顯示網(wǎng)頁(yè)為wap類(lèi)型時(shí),基于WebKit瀏覽器的最大視圖寬度、顯示終端顯示屏的顯示寬度以及所述待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度確定WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度;第三處理單元,用于將確定的所述WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度作為WebKit瀏覽器的顯示區(qū)域?qū)挾?,以顯示所述待顯示網(wǎng)頁(yè)?;谏鲜黾夹g(shù)方案,本發(fā)明實(shí)施例中,通過(guò)獲取待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)值,根據(jù)該媒體類(lèi)型參數(shù)值確定待顯示網(wǎng)頁(yè)為wap類(lèi)型時(shí),基于WebKit瀏覽器的最大視圖寬度、 顯示終端顯示屏的顯示寬度以及待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度確定WebKit瀏覽器顯示待顯示網(wǎng)頁(yè)所需的顯示寬度,并將該所需的顯示寬度作為WebKit瀏覽器的顯示區(qū)域?qū)挾?,以顯示待顯示網(wǎng)頁(yè),從而能夠在使用WebKit瀏覽器時(shí)能夠有效識(shí)別wap類(lèi)型網(wǎng)頁(yè),并確定合適的瀏覽器顯示區(qū)域?qū)挾冗M(jìn)行wap頁(yè)面顯示。
圖1為本發(fā)明實(shí)施例中基于WebKit瀏覽器的wap頁(yè)面顯示方法流程圖;圖2為本發(fā)明實(shí)施例中獲取mimetype值時(shí)的對(duì)象調(diào)用關(guān)系示意圖;圖3為本發(fā)明實(shí)施例中基于WebKit瀏覽器的wap頁(yè)面顯示裝置結(jié)構(gòu)圖。
具體實(shí)施例方式為了使得采用Android系統(tǒng)的顯示終端(尤其是移動(dòng)終端),在使用WebKit瀏覽器時(shí)能夠有效識(shí)別wap類(lèi)型網(wǎng)頁(yè),并確定合適的瀏覽器顯示區(qū)域?qū)挾冗M(jìn)行wap頁(yè)面顯示,本發(fā)明實(shí)施例提供了一種基于WebKit瀏覽器的wap頁(yè)面顯示方法。下面結(jié)合附圖對(duì)本發(fā)明優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。在Android系統(tǒng)中,當(dāng)WebKit瀏覽器的界面構(gòu)造或顯示區(qū)域尺寸狀態(tài)發(fā)生變化時(shí),例如在瀏覽器界面尺寸變化時(shí),會(huì)調(diào)用WebKit瀏覽器中WebViewCore對(duì)象的 viewSizeChanged函數(shù)(在Java編程語(yǔ)言中,方法是實(shí)現(xiàn)功能的最小單位,本實(shí)施例為表述方便,統(tǒng)一將方法稱(chēng)為函數(shù)),本實(shí)施例中將基于WebKit瀏覽器的wap頁(yè)面顯示方法的具體實(shí)現(xiàn)代碼加入viewSizeChanged函數(shù)中。實(shí)際應(yīng)用中,也可將該具體實(shí)現(xiàn)代碼設(shè)置于 WebKit瀏覽器之外,再設(shè)置調(diào)用關(guān)系即可。如附圖1所示,本發(fā)明實(shí)施例中,基于WebKit瀏覽器進(jìn)行wap頁(yè)面顯示的詳細(xì)方法流程如下步驟101 獲取待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)(mimetype)值。本實(shí)施例中,通過(guò)調(diào)用FrameLoader對(duì)象中的responseMIMEType函數(shù)獲取待顯示網(wǎng)頁(yè)的mimetype值。具體地,在獲取待顯示網(wǎng)頁(yè)的mimetype值后,判斷該mimetype值是否為“text/ vnd. wap. wml",若是,則確定該待顯示網(wǎng)頁(yè)為wap類(lèi)型。若mimetype值為“text/html”則待顯示網(wǎng)頁(yè)為html類(lèi)型。本實(shí)施例中,通過(guò)調(diào)用WebKit瀏覽器中FrameLoader對(duì)象的responseMIMEType 函數(shù)獲取待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)值,該媒體類(lèi)型參數(shù)值由responseMIMEType函數(shù)從服務(wù)器返回的待顯示網(wǎng)頁(yè)的網(wǎng)頁(yè)數(shù)據(jù)中獲得。實(shí)際應(yīng)用中,如附圖2所示,通過(guò)相互關(guān)聯(lián)的對(duì)象調(diào)用WebKit瀏覽器中FrameLoader對(duì)象中的responseMIMEType函數(shù),例如,首先調(diào)用WebKit瀏覽器中WebViewCore對(duì)象,通過(guò)該對(duì)象中的nativeGetMainFrameMimeType ()函數(shù)調(diào)用 NativeffebViewCoreNativeffebViewCore 巾白勺 GetMainFrameType () Mi^ 調(diào)用FrameLoader對(duì)象,通過(guò)Frameloader對(duì)象中的responseMIMEType ()函數(shù)逐級(jí)返回 mimetype 值。步驟102 根據(jù)mimetype值確定待顯示網(wǎng)頁(yè)為wap類(lèi)型時(shí),基于WebKit瀏覽器的最大視圖寬度(maxviewport)、顯示終端顯示屏的顯示寬度以及待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度(minprefwidth)確定WebKit瀏覽器顯示待顯示網(wǎng)頁(yè)所需的顯示寬度。具體地,在根據(jù)mimetype值確定待顯示網(wǎng)頁(yè)為wap類(lèi)型之后,確定WebKit 瀏覽器顯示待顯示網(wǎng)頁(yè)所需的顯示寬度之前,通過(guò)顯示終端Android系統(tǒng)的應(yīng)用程序編程接口(API)獲得顯示終端顯示屏的顯示寬度,以及通過(guò)WebKit瀏覽器開(kāi)放的 GetContentMinPrefWidth接口獲得待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度。其中,WebKit瀏覽器的最大視圖寬度為預(yù)定值,如800像素。例如,以移動(dòng)終端為例,通過(guò)Android系統(tǒng)的API接口獲得移動(dòng)終端顯示屏的顯示寬度時(shí),具體代碼可表示為DisplayMetrics. DENSITY DEVICE*2,其中,DisplayMetrics是 Android系統(tǒng)API提供的一個(gè)顯示參數(shù)相關(guān)的類(lèi),DENSITY DEVICE是該類(lèi)的一個(gè)靜態(tài)變量, 表示當(dāng)前顯示設(shè)備的邏輯密度(density)值,將該值乘2即得到當(dāng)前顯示設(shè)備顯示寬度相應(yīng)的像素?cái)?shù)目。本實(shí)施例中,基于WebKit瀏覽器的最大視圖寬度、顯示終端顯示屏的顯示寬度以及待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度確定WebKit瀏覽器顯示待顯示網(wǎng)頁(yè)所需的顯示寬度時(shí),具體為選取顯示終端顯示屏的顯示寬度和待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度中的最大值,并進(jìn)一步選取該最大值與WebKit瀏覽器的最大視圖寬度中的最小值,將該最小值確定為WebKit瀏覽器顯示待顯示網(wǎng)頁(yè)所需的顯示寬度。步驟103 將確定的WebKit瀏覽器顯示待顯示網(wǎng)頁(yè)所需的顯示寬度作為WebKit 瀏覽器的顯示區(qū)域?qū)挾?,以顯示待顯示網(wǎng)頁(yè)。例如,以移動(dòng)終端為例,在設(shè)置于WebKit瀏覽器WebViewCore對(duì)象的 ViewSizeChanged (...)函數(shù)中的代碼可用偽碼表示如下Private void viewSizeChanged (int w, int h, int textwrapWidth, float scale, int anchorX, int anchorY, boolean ignoreHeight)
mimetype=荻取的待顯示網(wǎng)頁(yè)的mimetype值; if mimetype 等于"text/vnd.wap.wml"
width=min ( WebKit瀏覽器的最大視圖寬度,max (移動(dòng)終端顯示屏的顯示寬度, 待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度)) endif
將width值通知底層顯示模塊基于上述原理,如附圖3所示,本發(fā)明實(shí)施例還提供了一種基于WebKit瀏覽器的 wap頁(yè)面顯示裝置,主要包括以下處理單元第一處理單元301,用于獲取待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)值;第二處理單元302,用于根據(jù)媒體類(lèi)型參數(shù)值確定待顯示網(wǎng)頁(yè)為wap類(lèi)型時(shí),基于 WebKit瀏覽器的最大視圖寬度、顯示終端顯示屏的顯示寬度以及待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度確定WebKit瀏覽器顯示待顯示網(wǎng)頁(yè)所需的顯示寬度;第三處理單元303,用于將確定的WebKit瀏覽器顯示待顯示網(wǎng)頁(yè)所需的顯示寬度作為WebKit瀏覽器的顯示區(qū)域?qū)挾?,以顯示待顯示網(wǎng)頁(yè)?;谏鲜黾夹g(shù)方案,本發(fā)明實(shí)施例中,通過(guò)獲取待顯示網(wǎng)頁(yè)的mimetype值,根據(jù)該mimetype值確定待顯示網(wǎng)頁(yè)為wap類(lèi)型時(shí),基于WebKit瀏覽器的最大視圖寬度、顯示終端顯示屏的顯示寬度以及待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度確定WebKit瀏覽器顯示待顯示網(wǎng)頁(yè)所需的顯示寬度,將該顯示寬度作為WebKit瀏覽器的顯示區(qū)域?qū)挾?,以顯示待顯示網(wǎng)頁(yè),從而能夠在使用WebKit瀏覽器時(shí)能夠有效識(shí)別wap類(lèi)型網(wǎng)頁(yè),并確定合適的瀏覽器顯示區(qū)域?qū)挾?,進(jìn)行wap頁(yè)面顯示。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種基于WebKit瀏覽器的wap頁(yè)面顯示方法,其特征在于,包括獲取待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)值;根據(jù)所述媒體類(lèi)型參數(shù)值確定所述待顯示網(wǎng)頁(yè)為wap類(lèi)型時(shí),基于WebKit瀏覽器的最大視圖寬度、顯示終端顯示屏的顯示寬度以及所述待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度確定 WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度;將確定的所述WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度作為WebKit瀏覽器的顯示區(qū)域?qū)挾?,以顯示所述待顯示網(wǎng)頁(yè)。
2.如權(quán)利要求1所述的方法,其特征在于,獲取待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)值,包括通過(guò)調(diào)用WebKit瀏覽器中FrameLoader對(duì)象的responseMIMEType函數(shù)獲取所述待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)值,所述媒體類(lèi)型參數(shù)值由所述responseMIMEType函數(shù)從服務(wù)器返回的所述待顯示網(wǎng)頁(yè)的網(wǎng)頁(yè)數(shù)據(jù)中獲得。
3.如權(quán)利要求2所述的方法,其特征在于,根據(jù)所述媒體類(lèi)型參數(shù)值確定所述待顯示網(wǎng)頁(yè)為wap類(lèi)型時(shí),包括判斷該媒體類(lèi)型參數(shù)值是否為“text/vnd. wap. wml”,若是,則確定該待顯示網(wǎng)頁(yè)為 wap類(lèi)型。
4.如權(quán)利要求1、2或3所述的方法,其特征在于,確定WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度之前,還包括通過(guò)顯示終端Android系統(tǒng)的應(yīng)用程序編程接口獲得顯示終端顯示屏的顯示寬度,以及通過(guò)WebKit瀏覽器開(kāi)放的GetContentMinPrefWidth接口獲得所述待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度。
5.如權(quán)利要求4所述的方法,其特征在于,基于WebKit瀏覽器的最大視圖寬度、顯示終端顯示屏的顯示寬度以及所述待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度確定所述WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度,包括選取所述顯示終端顯示屏的顯示寬度和所述待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度中的最大值,并進(jìn)一步選取該最大值與所述WebKit瀏覽器的最大視圖寬度中的最小值,將該最小值確定為所述WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度。
6.一種基于WebKit瀏覽器的wap頁(yè)面顯示裝置,其特征在于,包括第一處理單元,用于獲取待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)值;第二處理單元,用于根據(jù)所述媒體類(lèi)型參數(shù)值確定所述待顯示網(wǎng)頁(yè)為wap類(lèi)型時(shí),基于WebKit瀏覽器的最大視圖寬度、顯示終端顯示屏的顯示寬度以及所述待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度確定WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度;第三處理單元,用于將確定的所述WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度作為WebKit瀏覽器的顯示區(qū)域?qū)挾龋燥@示所述待顯示網(wǎng)頁(yè)。
7.如權(quán)利要求6所述的裝置,其特征在于,所述第一處理單元具體用于通過(guò)調(diào)用 WebKit瀏覽器中FrameLoader對(duì)象的responseMIMEType函數(shù)獲取所述待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)值,所述媒體類(lèi)型參數(shù)值由所述responseMIMEType函數(shù)從服務(wù)器返回的所述待顯示網(wǎng)頁(yè)的網(wǎng)頁(yè)數(shù)據(jù)中獲得。
8.如權(quán)利要求7所述的裝置,其特征在于,所述第二處理單元用于根據(jù)所述媒體類(lèi)型參數(shù)值確定所述待顯示網(wǎng)頁(yè)為wap類(lèi)型時(shí),判斷該媒體類(lèi)型參數(shù)值是否為“text/vnd. wap.wml”,若是,則確定該待顯示網(wǎng)頁(yè)為wap類(lèi)型。
9.如權(quán)利要求6、7或8所述的裝置,其特征在于,所述第二處理單元還用于在確定 WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度之前,通過(guò)顯示終端Android系統(tǒng)的應(yīng)用程序編程接口獲得顯示終端顯示屏的顯示寬度,以及通過(guò)WebKit瀏覽器開(kāi)放的 GetContentMinPrefWidth接口獲得所述待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度。
10.如權(quán)利要求9所述的裝置,其特征在于,所述第二處理單元具體用于選取所述顯示終端顯示屏的顯示寬度和所述待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度中的最大值,并進(jìn)一步選取該最大值與所述WebKit瀏覽器的最大視圖寬度中的最小值,將該最小值確定為所述 WebKit瀏覽器顯示所述待顯示網(wǎng)頁(yè)所需的顯示寬度。
全文摘要
本發(fā)明公開(kāi)了一種基于WebKit瀏覽器的wap頁(yè)面顯示方法,用以采用Android系統(tǒng)的顯示終端,在使用WebKit瀏覽器時(shí)能夠有效識(shí)別wap類(lèi)型網(wǎng)頁(yè),并確定合適的瀏覽器顯示區(qū)域?qū)挾?。該方法為獲取待顯示網(wǎng)頁(yè)的媒體類(lèi)型參數(shù)值,確定待顯示網(wǎng)頁(yè)為wap類(lèi)型時(shí),基于WebKit瀏覽器的最大視圖寬度、顯示終端顯示屏的顯示寬度以及待顯示網(wǎng)頁(yè)頁(yè)面布局所需最小寬度確定WebKit瀏覽器顯示待顯示網(wǎng)頁(yè)所需的顯示寬度,將該顯示寬度確定為WebKit瀏覽器的顯示區(qū)域?qū)挾龋燥@示待顯示網(wǎng)頁(yè)。本發(fā)明同時(shí)公開(kāi)了一種基于WebKit瀏覽器的wap頁(yè)面顯示裝置。
文檔編號(hào)G06F9/44GK102360294SQ20111031696
公開(kāi)日2012年2月22日 申請(qǐng)日期2011年10月18日 優(yōu)先權(quán)日2011年10月18日
發(fā)明者朱宏浩 申請(qǐng)人:青島海信移動(dòng)通信技術(shù)股份有限公司