電子設(shè)備觸摸操作處理的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種電子設(shè)備觸摸操作處理的方法和裝置,其中所述方法包括步驟:接收對電子設(shè)備的滑動(dòng)觸摸操作;獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值;在所述狀態(tài)值為第一狀態(tài)值的情況下,執(zhí)行第一處理;在所述狀態(tài)值為第二狀態(tài)值的情況下,執(zhí)行第二處理。所述裝置包括:觸摸接口,適于接收對電子設(shè)備的滑動(dòng)觸摸操作;狀態(tài)值獲取模塊,適于獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值;第一處理模塊,適于在所述狀態(tài)值為第一狀態(tài)值的情況下,執(zhí)行第一處理;第二處理模塊,適于在所述狀態(tài)值為第二狀態(tài)值的情況下,執(zhí)行第二處理。
【專利說明】電子設(shè)備觸摸操作處理的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及觸摸操作技術(shù),尤其涉及一種電子設(shè)備觸摸操作處理的方法和裝置?!颈尘凹夹g(shù)】
[0002]近年來,在各種帶有觸摸屏的電子設(shè)備上,手勢操作的應(yīng)用變得越來越廣泛,如在觸摸屏上進(jìn)行左右滑動(dòng),以實(shí)現(xiàn)應(yīng)用程序中操作的前進(jìn)、后退等功能,以及雙指縮放網(wǎng)頁等等。相比傳統(tǒng)的點(diǎn)擊觸摸的操作方式,手勢操作極大地豐富了操作手段,提高了操作效率。
[0003]當(dāng)用戶在應(yīng)用程序于電子設(shè)備屏幕上所展現(xiàn)的網(wǎng)頁上進(jìn)行滑動(dòng)手勢操作時(shí),如何準(zhǔn)確地判定用戶當(dāng)前操作的意圖成為了非常重要的問題。即,用戶是在拖動(dòng)網(wǎng)頁內(nèi)的可拖動(dòng)內(nèi)容,還是在做出滑動(dòng)手勢操作以實(shí)現(xiàn)相應(yīng)的功能(例如,程序的前進(jìn)后退)?
[0004]圖1示意性地圖示了一個(gè)應(yīng)用程序在電子設(shè)備的屏幕上所展現(xiàn)的頁面的界面。圖1中的頁面可分為框內(nèi)內(nèi)容、以及框外內(nèi)容兩部分,框內(nèi)的內(nèi)容為幻燈片形式的圖片展示,用戶可以通過拖動(dòng)圖片的方式在不同圖片間進(jìn)行切換;而框外的區(qū)域?yàn)榉强赏蟿?dòng)區(qū)域。當(dāng)用戶觸摸滑動(dòng)區(qū)域在框內(nèi)的時(shí)候,程序不應(yīng)該響應(yīng)于手勢操作,因?yàn)橛脩舻哪康母锌赡苁乔袚Q圖片;而當(dāng)用戶在框外觸摸滑動(dòng)時(shí),就需要處理用戶的手勢操作,例如切換到之前或之后的網(wǎng)頁。除了圖1中所示出的情況之外,網(wǎng)頁內(nèi)可拖動(dòng)內(nèi)容的例子還有很多,如網(wǎng)頁地圖,視頻的進(jìn)度條等等。
[0005]此種方案在實(shí)現(xiàn)上的一個(gè)技術(shù)難題是,電子設(shè)備的操作系統(tǒng)提供的接口不包含判斷某個(gè)區(qū)域的內(nèi)容是否可拖動(dòng)的接口,應(yīng)用程序也無法通過已提供的接口獲得頁面中某個(gè)區(qū)域內(nèi)的內(nèi)容是哪種類型。
[0006]以Android系統(tǒng)為例,該系統(tǒng)瀏覽器架構(gòu)所提供的接口具有很強(qiáng)的局限性,一些瀏覽器應(yīng)用(如UC瀏覽器、QQ瀏覽器等),在安裝包內(nèi)附帶了各自瀏覽器的內(nèi)核,而不使用Android系統(tǒng)原生的Webkit內(nèi)核。這些擁有自有內(nèi)核的瀏覽器通過修改和拓展其自有內(nèi)核,能夠?qū)崿F(xiàn)判別用戶手勢滑動(dòng)區(qū)域所對應(yīng)網(wǎng)頁內(nèi)容的能力。然而,其代價(jià)是較高的技術(shù)門檻,龐大的安裝包尺寸和巨大的內(nèi)核維護(hù)開銷。這些自有內(nèi)核的瀏覽器通常是對Webkit內(nèi)核的二次開發(fā)和再次封裝,僅其內(nèi)核尺寸就在IOMB左右,給用戶的下載和安裝增加了很大負(fù)擔(dān);而隨著Webkit版本的升級(jí),升級(jí)其自有內(nèi)核到最新版本又帶來了巨大的開發(fā)成本。
【發(fā)明內(nèi)容】
[0007]鑒于上述問題,提出了本發(fā)明,以便提供一種克服上述問題或者至少部分地解決上述問題的電子設(shè)備觸摸操作處理的方法和裝置。
[0008]依據(jù)本發(fā)明的一個(gè)方面,提供了一種電子設(shè)備觸摸操作處理的方法,包括步驟:接收對電子設(shè)備的滑動(dòng)觸摸操作;獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值;在所述狀態(tài)值為第一狀態(tài)值的情況下,執(zhí)行第一處理;在所述狀態(tài)值為第二狀態(tài)值的情況下,執(zhí)行第二處理。
[0009]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的方法中,在所述獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值的步驟中,通過Java的反射機(jī)制獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值。
[0010]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的方法中,所述狀態(tài)值是由所述滑動(dòng)觸摸操作所處于的區(qū)域決定的。
[0011]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的方法中,所述網(wǎng)頁顯示控件是Android系統(tǒng)的WebView控件,所述觸摸模式對象是mTouchMode對象。
[0012]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的方法中,所述第一狀態(tài)值為 T0UCH_DRAG_M0DE,所述第二狀態(tài)值為 T0UCH_INIT_M0DE 或者 T0UCH_D0NE_M0DE。
[0013]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的方法中,在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容不能被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第一狀態(tài)值;并且在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容能夠被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第二狀態(tài)值。
[0014]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的方法中,所述第一處理為與所述滑動(dòng)觸摸操作相對應(yīng)的手勢操作處理,所述第二處理為與所述滑動(dòng)觸摸操作相對應(yīng)的拖動(dòng)操作處理。
[0015]依據(jù)本發(fā)明的另一方面,提供了一種電子設(shè)備觸摸操作處理的裝置,包括:觸摸接口,適于接收對電子設(shè)備的滑動(dòng)觸摸操作;狀態(tài)值獲取模塊,適于獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值;第一處理模塊,適于在所述狀態(tài)值為第一狀態(tài)值的情況下,執(zhí)行第一處理;第二處理模塊,適于在所述狀態(tài)值為第二狀態(tài)值的情況下,執(zhí)行第二處理。
[0016]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的裝置中,所述狀態(tài)值獲取模塊適于通過Java的反射機(jī)制獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值。
[0017]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的裝置中,所述狀態(tài)值是由所述滑動(dòng)觸摸操作所處于的區(qū)域決定的。
[0018]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的裝置中,所述網(wǎng)頁顯示控件是Android系統(tǒng)的WebView控件,所述觸摸模式對象是mTouchMode對象。
[0019]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的裝置中,所述第一狀態(tài)值為 T0UCH_DRAG_M0DE,所述第二狀態(tài)值為 T0UCH_INIT_M0DE 或者 T0UCH_D0NE_M0DE。
[0020]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的裝置中,在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容不能被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第一狀態(tài)值;并且在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容能夠被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第二狀態(tài)值。
[0021]可選地,在根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的裝置中,所述第一處理模塊適于在所述狀態(tài)值為第一狀態(tài)值的情況下執(zhí)行與所述滑動(dòng)觸摸操作相對應(yīng)的手勢操作處理,所述第二處理模塊適于在所述狀態(tài)值為第二狀態(tài)值的情況下執(zhí)行與所述滑動(dòng)觸摸操作相對應(yīng)的拖動(dòng)操作處理。
[0022]本發(fā)明提供了上述電子設(shè)備觸摸操作處理的方法和裝置。根據(jù)本發(fā)明的實(shí)施例,可以接收對電子設(shè)備的滑動(dòng)觸摸操作,并且獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值,在所述狀態(tài)值為第一狀態(tài)值的情況下,執(zhí)行第一處理,而在所述狀態(tài)值為第二狀態(tài)值的情況下,執(zhí)行第二處理。由此,可以根據(jù)反映滑動(dòng)觸摸操作所處于的區(qū)域的狀態(tài)值,準(zhǔn)確地判斷所述區(qū)域的特征(例如,是頁面中內(nèi)容不能被拖動(dòng)的區(qū)域,還是頁面中內(nèi)容能夠被拖動(dòng)的區(qū)域),并且執(zhí)行與所述區(qū)域相對應(yīng)的處理,從而有效地避免了現(xiàn)有技術(shù)中難以區(qū)分頁面中的不同特征的區(qū)域、從而導(dǎo)致執(zhí)行與用戶的滑動(dòng)觸摸操作意圖相悖的處理的缺陷。同時(shí),由于不需要修改瀏覽器或其它頁面顯示程序的內(nèi)核組件,可以直接利用操作系統(tǒng)新版本的各種特性,而無需進(jìn)行再次開發(fā),同時(shí)也避免了修改內(nèi)核組件帶來的安全風(fēng)險(xiǎn)。另外,由于不需要單獨(dú)的自有內(nèi)核組件,也節(jié)省了電子設(shè)備的存儲(chǔ)空間。
[0023]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【專利附圖】
【附圖說明】
[0024]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0025]圖1示意性地圖示了一個(gè)應(yīng)用程序在電子設(shè)備的屏幕上所展現(xiàn)的頁面的界面;
[0026]圖2示意性地圖示了根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的方法的流程圖;以及
[0027]圖3示意性地圖示了根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的裝置的框圖。
【具體實(shí)施方式】
[0028]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0029]圖2示意性地圖示了根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的方法200的流程圖。
[0030]本發(fā)明的原理適用于任何包含顯示部件的電子設(shè)備,包括、但不限于:基于Windows、Linux、Mac OS、Unix 等桌面操作系統(tǒng)的計(jì)算機(jī);基于 iOS、Android、WindowsPhone,Symbian等移動(dòng)操作系統(tǒng)的移動(dòng)電話、平板電腦、視頻播放器、電子閱讀器、數(shù)碼相框等等。在下文中,將以基于Android系統(tǒng)的電子設(shè)備為例,對本發(fā)明的原理進(jìn)行示例性地描述。然而,這只是為了以具體的示例描述本發(fā)明,以幫助讀者理解本發(fā)明的原理,本發(fā)明的范圍不限于此,而是可以適用于任何包含顯示部件、基于任何操作系統(tǒng)的電子設(shè)備。
[0031]如圖2所示,根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的方法200始于步驟S210,其中,接收對電子設(shè)備的滑動(dòng)觸摸操作。可選地,所述滑動(dòng)觸摸操作可以是用戶利用其手指或身體其他部位、或者例如手寫筆的觸摸設(shè)備,通過在電子設(shè)備的觸摸屏幕上滑動(dòng)而完成的。而電子設(shè)備則可以利用其觸摸屏幕來接收這樣的滑動(dòng)觸摸操作。根據(jù)本發(fā)明的實(shí)施例,所述觸摸屏幕包括但不限于:電阻式觸摸屏、電容式觸摸屏、壓電式觸摸屏、紅外線式觸摸屏、表面聲波式觸摸屏等等。[0032]根據(jù)本發(fā)明的實(shí)施例,接下來,可以執(zhí)行步驟S220,其中,獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值。根據(jù)本發(fā)明的實(shí)施例,所述網(wǎng)頁顯示控件可以是Android系統(tǒng)的WebView控件,所述觸摸模式對象可以是mTouchMode對象。對于Android4.0以及之前的版本,所述網(wǎng)頁顯示控件可以是WebView控件,而對于Android4.1以及之后的版本,所述網(wǎng)頁顯示控件可以是使用Java類WebViewClassic的實(shí)例的WebView控件。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,給出上述網(wǎng)頁顯示控件和觸摸模式對象的示例的目的僅為幫助讀者理解本發(fā)明的原理,而并非是要將本發(fā)明的范圍限制于此,網(wǎng)頁顯示控件可以是任何能夠?qū)崿F(xiàn)網(wǎng)頁顯示功能的控件,例如iOS系統(tǒng)的UIWebView控件等。
[0033]對于Android 系統(tǒng),在 WebView (或 WebViewClassic)這個(gè) Java 類中維護(hù)了一個(gè)名為mTouchMode的私有對象,該對象用來記錄WebView控件當(dāng)前的觸控狀態(tài)。mTouchMode對象的狀態(tài)值由Android系統(tǒng)根據(jù)觸摸的操作方式以及操作區(qū)域中的內(nèi)容來決定,mTouchMode對象可能被賦值的常量如下:
[0034]private static final int T0UCH_INIT_M0DE=1;
[0035]private static final int T0UCH_DRAG_START_M0DE=2;
[0036]private static final int T0UCH_DRAG_M0DE=3;
[0037]private static final int T0UCH_SH0RTPRESS_START_M0DE=4;
[0038]private static final int T0UCH_SH0RTPRESS_M0DE=5;
[0039]private static final int T0UCH_D0UBLE_TAP_M0DE=6;
[0040]private stat ic final int T0UCH_D0NE_M0DE=7;
[0041]private static final int T0UCH_PINCH_DRAG=8;
[0042]private static final int T0UCH_DRAG_LAYER_M0DE=9;
[0043]這些常量值代表著不同的含義,如T0UCH_INIT_M0DE表示觸控操作的開始狀態(tài),T0UCH_PINCH_DRAG表示用戶當(dāng)前在進(jìn)行兩點(diǎn)縮放操作,在此不做逐一闡述。
[0044]根據(jù)本發(fā)明的實(shí)施例,在所述步驟S220中,可以通過Java的反射機(jī)制獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值,例如獲取WebView控件的mTouchMode對象的狀態(tài)值或WebView控件所使用的WebViewClassic的mTouchMode對象的狀態(tài)值。
[0045]根據(jù)本發(fā)明的實(shí)施例,對于反射操作,可以采用Java語言等提供的反射機(jī)制來進(jìn)行操作,將mTouchMode對象從私有屬性臨時(shí)變?yōu)楣袑傩?,以供直接使用和修改。本領(lǐng)域技術(shù)人員能夠理解,同樣可以采用其它的程序設(shè)計(jì)語言(例如.Net語言),以相似的方式將對象從私有屬性臨時(shí)變?yōu)楣袑傩裕赃_(dá)到反射操作的目的。
[0046]以下給出采用Java的反射機(jī)構(gòu)獲取mTouchMode對象的值的示例代碼:
[0047]
public static int gelWcbView'TouchModc(Objccl webView.) {
try I
Field C= android.wcbkil.WcbView.class.gclDcclarcdFicid("mTouchMode");
r.sctAcccssiblc(true);
return (Integer) i'.gcl(wcbVicw);
catch (Exception e) {
\
i
return -1;
}[0048]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,給出上述示例代碼的目的是幫助讀者理解本發(fā)明的原理,而并非是要將本發(fā)明的范圍限制于此。
[0049]根據(jù)本發(fā)明的實(shí)施例,觸摸模式對象(例如mTouchMode對象)的狀態(tài)值是由所述滑動(dòng)觸摸操作所處于的區(qū)域決定的,不同的狀態(tài)值代表所述滑動(dòng)觸摸操作處于不同的區(qū)域。
[0050]根據(jù)本發(fā)明的實(shí)施例,在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容不能被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第一狀態(tài)值;而在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容能夠被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第二狀態(tài)值。
[0051 ] 可選地,所述第一狀態(tài)值可以為T0UCH_DRAG_M0DE,所述第二狀態(tài)值可以為T0UCH_INIT_M0DE或者T0UCH_D0NE_M0DE。然而,以上只是第一狀態(tài)值和第二狀態(tài)值的示例,因Android版本的不同,第一狀態(tài)值和第二狀態(tài)值也會(huì)有所不同。
[0052]利用觸摸模式對象狀態(tài)值的上述特點(diǎn),就可以利用狀態(tài)值來做為參考,從而執(zhí)行有針對性的處理。
[0053]根據(jù)本發(fā)明的實(shí)施例,在所述狀態(tài)值為第一狀態(tài)值的情況下,可以執(zhí)行步驟S230,其中,執(zhí)行第一處理,可選地,所述第一處理可以為與所述滑動(dòng)觸摸操作相對應(yīng)的手勢操作處理,例如頁面前進(jìn)、后退等手勢操作處理,因?yàn)榈谝粻顟B(tài)值表示所述滑動(dòng)觸摸操作處于頁面中內(nèi)容不能被拖動(dòng)的區(qū)域。
[0054]根據(jù)本發(fā)明的實(shí)施例,在所述狀態(tài)值為第二狀態(tài)值的情況下,可以執(zhí)行步驟S240,其中,執(zhí)行第二處理,可選地,所述第二處理可以為與所述滑動(dòng)觸摸操作相對應(yīng)的拖動(dòng)操作處理,因?yàn)榈诙顟B(tài)值表示所述滑動(dòng)觸摸操作處于頁面中內(nèi)容能夠被拖動(dòng)的區(qū)域。
[0055]本發(fā)明提供了上述電子設(shè)備觸摸操作處理的方法。根據(jù)本發(fā)明的實(shí)施例,可以接收對電子設(shè)備的滑動(dòng)觸摸操作,并且獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值,在所述狀態(tài)值為第一狀態(tài)值的情況下,執(zhí)行第一處理,而在所述狀態(tài)值為第二狀態(tài)值的情況下,執(zhí)行第二處理。由此,可以根據(jù)反映滑動(dòng)觸摸操作所處于的區(qū)域的狀態(tài)值,準(zhǔn)確地判斷所述區(qū)域的特征(例如,是頁面中內(nèi)容不能被拖動(dòng)的區(qū)域,還是頁面中內(nèi)容能夠被拖動(dòng)的區(qū)域),并且執(zhí)行與所述區(qū)域相對應(yīng)的處理,從而有效地避免了現(xiàn)有技術(shù)中難以區(qū)分頁面中的不同特征的區(qū)域、從而導(dǎo)致執(zhí)行與用戶的滑動(dòng)觸摸操作意圖相悖的處理的缺陷。同時(shí),由于不需要修改瀏覽器或其它頁面顯示程序的內(nèi)核組件,可以直接利用操作系統(tǒng)新版本的各種特性,而無需進(jìn)行再次開發(fā),同時(shí)也避免了修改內(nèi)核組件帶來的安全風(fēng)險(xiǎn)。另外,由于不需要單獨(dú)的自有內(nèi)核組件,也節(jié)省了電子設(shè)備的存儲(chǔ)空間。
[0056]與上述方法200相對應(yīng),本發(fā)明還提供了一種電子設(shè)備觸摸操作處理的裝置。圖3示意性地圖示了根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備觸摸操作處理的裝置300的框圖。
[0057]如圖3所示,所述裝置300包括觸摸接口 310、狀態(tài)值獲取模塊320、第一處理模塊330、以及第二處理模塊340。其中,觸摸接口 310適于接收對電子設(shè)備的滑動(dòng)觸摸操作;狀態(tài)值獲取模塊320適于獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值;第一處理模塊330適于在所述狀態(tài)值為第一狀態(tài)值的情況下,執(zhí)行第一處理;第二處理模塊340適于在所述狀態(tài)值為第二狀態(tài)值的情況下,執(zhí)行第二處理。
[0058]首先,觸摸接口 310接收對電子設(shè)備的滑動(dòng)觸摸操作。可選地,所述滑動(dòng)觸摸操作可以是用戶利用其手指或身體其他部位、或者例如手寫筆的觸摸設(shè)備,通過在電子設(shè)備的觸摸屏幕上滑動(dòng)而完成的。而觸摸接口 310則可以利用電子設(shè)備的觸摸屏幕來接收這樣的滑動(dòng)觸摸操作。根據(jù)本發(fā)明的實(shí)施例,所述觸摸屏幕包括但不限于:電阻式觸摸屏、電容式觸摸屏、壓電式觸摸屏、紅外線式觸摸屏、表面聲波式觸摸屏等等。
[0059]根據(jù)本發(fā)明的實(shí)施例,接下來,狀態(tài)值獲取模塊320獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值。根據(jù)本發(fā)明的實(shí)施例,所述網(wǎng)頁顯示控件可以是Andro i d系統(tǒng)的WebVi ew控件,所述觸摸模式對象可以是mTouchMode對象。對于Android4.0以及之前的版本,所述網(wǎng)頁顯示控件可以是WebView控件,而對于Android4.1以及之后的版本,所述網(wǎng)頁顯示控件可以是使用Java類WebViewClassic的實(shí)例的WebView控件。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,給出上述網(wǎng)頁顯示控件和觸摸模式對象的示例的目的僅為幫助讀者理解本發(fā)明的原理,而并非是要將本發(fā)明的范圍限制于此,網(wǎng)頁顯示控件可以是任何能夠?qū)崿F(xiàn)網(wǎng)頁顯示功能的控件,例如iOS系統(tǒng)的UIWebView控件等。
[0060]對于Android 系統(tǒng),在 WebView (或 WebViewClassic)這個(gè) Java 類中維護(hù)了一個(gè)名為mTouchMode的私有對象,該對象用來記錄WebView控件當(dāng)前的觸控狀態(tài)。mTouchMode對象的狀態(tài)值由An dr ο i d系統(tǒng)根據(jù)觸摸的操作方式以及操作區(qū)域中的內(nèi)容來決定,mTouchMode對象可能被賦值的常量如下:
[0061]private static final int T0UCH_INIT_M0DE=1;
[0062]private static final int T0UCH_DRAG_START_M0DE=2;
[0063]private static final int T0UCH_DRAG_M0DE=3;
[0064]private static final int T0UCH_SH0RTPRESS_START_M0DE=4;
[0065]private static final int T0UCH_SH0RTPRESS_M0DE=5;
[0066]private static final int T0UCH_D0UBLE_TAP_M0DE=6;
[0067]private static final int T0UCH_D0NE_M0DE=7;
[0068]private static final int T0UCH_PINCH_DRAG=8;
[0069]private static final int T0UCH_DRAG_LAYER_M0DE=9;
[0070]這些常量值代表著不同的含義,如T0UCH_INIT_M0DE表示觸控操作的開始狀態(tài),T0UCH_PINCH_DRAG表示用戶當(dāng)前在進(jìn)行兩點(diǎn)縮放操作,在此不做逐一闡述。
[0071]根據(jù)本發(fā)明的實(shí)施例,狀態(tài)值獲取模塊320可以通過Java的反射機(jī)制獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值,例如獲取WebView控件的mTouchMode對象的狀態(tài)值或WebView控件所使用的WebViewClassic的mTouchMode對象的狀態(tài)值。
[0072]根據(jù)本發(fā)明的實(shí)施例,對于反射操作,狀態(tài)值獲取模塊320可以采用Java語言等提供的反射機(jī)制來進(jìn)行操作,將mTouchMode對象從私有屬性臨時(shí)變?yōu)楣袑傩?,以供直接使用和修改。本領(lǐng)域技術(shù)人員能夠理解,同樣可以采用其它的程序設(shè)計(jì)語言(例如.Net語言),以相似的方式將對象從私有屬性臨時(shí)變?yōu)楣袑傩?,以達(dá)到反射操作的目的。
[0073]以下給出采用Java的反射機(jī)構(gòu)獲取mTouchMode對象的值的示例代碼:
[0074]public static int gctWcbViewTouchModc(Objccl wcbVicw)
try {
Field 1、= android.wcbkit.WebView.class.gctDcclarcdFicld(t!mTouchModct!);
f.sctAcccssiblc(true);
return (Integer) f.gct(wcbVicw);
} catch (Exception c) !
I
return -1;
}
[0075]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,給出上述示例代碼的目的是幫助讀者理解本發(fā)明的原理,而并非是要將本發(fā)明的范圍限制于此。
[0076]根據(jù)本發(fā)明的實(shí)施例,觸摸模式對象(例如mTouchMode對象)的狀態(tài)值是由所述滑動(dòng)觸摸操作所處于的區(qū)域決定的,不同的狀態(tài)值代表所述滑動(dòng)觸摸操作處于不同的區(qū)域。
[0077]根據(jù)本發(fā)明的實(shí)施例,在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容不能被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第一狀態(tài)值;而在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容能夠被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第二狀態(tài)值。
[0078]可選地,所述第一.狀態(tài)值可以為T0UCH_DRAG_M0DE,所述第二狀態(tài)值可以為T0UCH_INIT_M0DE或者T0UCH_D0NE_M0DE。然而,以上只是第一狀態(tài)值和第二狀態(tài)值的示例,因Android版本的不同,第一狀態(tài)值和第二狀態(tài)值也會(huì)有所不同。
[0079]利用觸摸模式對象狀態(tài)值的上述特點(diǎn),就可以利用狀態(tài)值來作為參考,從而執(zhí)行有針對性的處理。
[0080]根據(jù)本發(fā)明的實(shí)施例,在所述狀態(tài)值為第一狀態(tài)值的情況下,由第一處理模塊330執(zhí)行第一處理,可選地,所述第一處理可以為與所述滑動(dòng)觸摸操作相對應(yīng)的手勢操作處理,例如頁面前進(jìn)、后退等手勢操作處理,因?yàn)榈谝粻顟B(tài)值表示所述滑動(dòng)觸摸操作處于頁面中內(nèi)容不能被拖動(dòng)的區(qū)域。
[0081]根據(jù)本發(fā)明的實(shí)施例,在所述狀態(tài)值為第二狀態(tài)值的情況下,由第二處理模塊340執(zhí)行第二處理,可選地,所述第二處理可以為與所述滑動(dòng)觸摸操作相對應(yīng)的拖動(dòng)操作處理,因?yàn)榈诙顟B(tài)值表示所述滑動(dòng)觸摸操作處于頁面中內(nèi)容能夠被拖動(dòng)的區(qū)域。
[0082]由于上述各設(shè)備(裝置)實(shí)施例與前述各方法實(shí)施例相對應(yīng),因此不再對各裝置實(shí)施例進(jìn)行詳細(xì)描述。
[0083]在此提供的算法和顯示不與任何特定計(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í)施方式。
[0084]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
[0085]類似地,應(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í)施例。
[0086]本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的裝置中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)裝置中??梢园褜?shí)施例中的若干模塊組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者模塊中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的替代特征來代替。
[0087]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
[0088]本發(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í)施例的裝置中的一些或者全部模塊的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的裝置程序(例如,計(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)上提供,或者以任何其他形式提供。
[0089]應(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)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
[0090]根據(jù)本發(fā)明的實(shí)施例公開了 Al.—種電子設(shè)備觸摸操作處理的方法,包括步驟:接收對電子設(shè)備的滑動(dòng)觸摸操作;獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值;在所述狀態(tài)值為第一狀態(tài)值的情況下,執(zhí)行第一處理;在所述狀態(tài)值為第二狀態(tài)值的情況下,執(zhí)行第二處理。A2.如Al所述的方法,其中在所述獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值的步驟中,通過Java的反射機(jī)制獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值。A3.如Al所述的方法,其中所述狀態(tài)值是由所述滑動(dòng)觸摸操作所處于的區(qū)域決定的。A4.如Al至A3中的任一項(xiàng)所述的方法,其中所述網(wǎng)頁顯示控件是Android系統(tǒng)的WebView控件,所述觸摸模式對象是mTouchMode對象。A5.如A4所述的方法,其中所述第一狀態(tài)值為T0UCH_DRAG_M0DE,所述第二狀態(tài)值為TOUCH_INIT_MODE或者TOUCH_DONE_MODE。A6.如A5所述的方法,其中在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容不能被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第一狀態(tài)值;并且在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容能夠被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第二狀態(tài)值。A7.如Al至A3中的任一項(xiàng)所述的方法,其中所述第一處理為與所述滑動(dòng)觸摸操作相對應(yīng)的手勢操作處理,所述第二處理為與所述滑動(dòng)觸摸操作相對應(yīng)的拖動(dòng)操作處理。
[0091]根據(jù)本發(fā)明的實(shí)施例還公開了 B8.—種電子設(shè)備觸摸操作處理的裝置,包括:觸摸接口,適于接收對電子設(shè)備的滑動(dòng)觸摸操作;狀態(tài)值獲取模塊,適于獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值;第一處理模塊,適于在所述狀態(tài)值為第一狀態(tài)值的情況下,執(zhí)行第一處理;第二處理模塊,適于在所述狀態(tài)值為第二狀態(tài)值的情況下,執(zhí)行第二處理。B9.如B8所述的裝置,其中所述狀態(tài)值獲取模塊適于通過Java的反射機(jī)制獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值。B10.如B8所述的裝置,其中所述狀態(tài)值是由所述滑動(dòng)觸摸操作所處于的區(qū)域決定的。Bll.如B8至BlO中的任一項(xiàng)所述的裝置,其中所述網(wǎng)頁顯示控件是Android系統(tǒng)的WebView控件,所述觸摸模式對象是mTouchMode對象。B12.如Bll所述的裝置,其中所述第一狀態(tài)值為T0UCH_DRAG_M0DE,所述第二狀態(tài)值為T0UCH_INIT_M0DE或者T0UCH_D0NE_M0DEo B13.如B12所述的裝置,其中在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容不能被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第一狀態(tài)值;并且在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容能夠被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第二狀態(tài)值。B14.如B8至BlO中的任一項(xiàng)所述的裝置,其中所述第一處理模塊適于在所述狀態(tài)值為第一狀態(tài)值的情況下執(zhí)行與所述滑動(dòng)觸摸操作相對應(yīng)的手勢操作處理,所述第二處理模塊適于在所述狀態(tài)值為第二狀態(tài)值的情況下執(zhí)行與所述滑動(dòng)觸摸操作相對應(yīng)的拖動(dòng)操作處理。
【權(quán)利要求】
1.一種電子設(shè)備觸摸操作處理的方法,包括步驟: 接收對電子設(shè)備的滑動(dòng)觸摸操作; 獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值; 在所述狀態(tài)值為第一狀態(tài)值的情況下,執(zhí)行第一處理; 在所述狀態(tài)值為第二狀態(tài)值的情況下,執(zhí)行第二處理。
2.如權(quán)利要求1所述的方法,其中在所述獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值的步驟中,通過Java的反射機(jī)制獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值。
3.如權(quán)利要求1所述的方法,其中所述狀態(tài)值是由所述滑動(dòng)觸摸操作所處于的區(qū)域決定的。
4.如權(quán)利要求1至3中的任一項(xiàng)所述的方法,其中所述網(wǎng)頁顯示控件是Android系統(tǒng)的WebView控件,所述觸摸模式對象是mTouchMode對象。
5.如權(quán)利要求4所述的方法,其中所述第一狀態(tài)值為T0UCH_DRAG_M0DE,所述第二狀態(tài)值為 T0UCH_INIT_M0DE 或者 T0UCH_D0NE_M0DE。
6.如權(quán)利要求5所述的方法,其中在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容不能被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第一狀態(tài)值;并且 在所述滑動(dòng)觸摸操作處于頁面中內(nèi)容能夠被拖動(dòng)的區(qū)域的情況下,所述狀態(tài)值為第二狀態(tài)值。
7.如權(quán)利要求1至3中的任一項(xiàng)所述的方法,其中所述第一處理為與所述滑動(dòng)觸摸操作相對應(yīng)的手勢操作處理,所述第二處理為與所述滑動(dòng)觸摸操作相對應(yīng)的拖動(dòng)操作處理。
8.一種電子設(shè)備觸摸操作處理的裝置,包括: 觸摸接口,適于接收對電子設(shè)備的滑動(dòng)觸摸操作; 狀態(tài)值獲取模塊,適于獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值; 第一處理模塊,適于在所述狀態(tài)值為第一狀態(tài)值的情況下,執(zhí)行第一處理; 第二處理模塊,適于在所述狀態(tài)值為第二狀態(tài)值的情況下,執(zhí)行第二處理。
9.如權(quán)利要求8所述的裝置,其中所述狀態(tài)值獲取模塊適于通過Java的反射機(jī)制獲取網(wǎng)頁顯示控件的觸摸模式對象的狀態(tài)值。
10.如權(quán)利要求8所述的裝置,其中所述狀態(tài)值是由所述滑動(dòng)觸摸操作所處于的區(qū)域決定的。
【文檔編號(hào)】G06F3/0488GK103440107SQ201310398281
【公開日】2013年12月11日 申請日期:2013年9月4日 優(yōu)先權(quán)日:2013年9月4日
【發(fā)明者】范國峰 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司