專利名稱:用于web頁面的觸摸事件模型的制作方法
技術領域:
本主題主要涉及web瀏覽(web browsing,網(wǎng)頁瀏覽)服務。
背景技術:
web頁面(web page,網(wǎng)頁)是用標記語言創(chuàng)建的,該標記語言提供了這樣一種手段,即用于描述文檔中基于文本的信息的結構并為該文本增補交互表單、嵌入圖像及其他對象。一種流行的標記語目是超文本標記語目(HTML),該語目是用被尖括號(anglebracket)包圍的標記的形式編寫的。HTML可以描述web頁面的外觀和語義,并且可以包括嵌入式腳本語言代碼(例如JavaScript ),該代碼可以影響web瀏覽器及其他html處理器的行為。JavaScript 為開發(fā)人員提供了在web頁面中添加鼠標事件處理機(handler)或事件監(jiān)聽器(listener)的能力。這些鼠標事件處理機可以被指定到web頁面中的特定區(qū)域,并且可以被配置成接收這些區(qū)域中的鼠標事件,例如鼠標釋放(mouse up)事件或鼠標按下(mouse down)事件。相比之下,對使用觸摸敏感設備導航的web頁面來說,這些web頁面通常需要對由用戶使用一個或多個手指觸摸web頁面以及做出手勢所產(chǎn)生的觸摸事件做出響應。常規(guī)的鼠標事件處理機不能正確解釋這些觸摸事件。由此,這些觸摸事件需要一種不同的觸摸事件模型來正確解釋觸摸事件并且允許開發(fā)人員充分利用觸摸敏感顯示器或設備的能力。
發(fā)明內(nèi)容
可以從觸摸敏感設備中獲取一個或多個觸摸輸入信號。根據(jù)這些觸摸輸入信號,可以使用觸摸事件模型來確定觸摸和/或手勢事件。這些觸摸和/或手勢事件可以與那些從觸摸敏感設備上顯示的web頁面的不同區(qū)域產(chǎn)生的觸摸輸入信號相關聯(lián)。通過編程接口,可以提供對至少一個觸摸或手勢事件的訪問。在某些實施方式中,一種方法包括:獲取來自觸摸敏感設備的一個或多個觸摸輸入信號,基于觸摸輸入信號確定兩個或多個觸摸事件,其中該觸摸事件與和在觸摸敏感設備上顯示的web頁面中的兩個或更多個區(qū)域相關聯(lián)的觸摸輸入信號相關聯(lián),以及通過編程接口提供對至少一個觸摸事件的訪問。在其他實施方式中,一種方法包括:獲取來自觸摸敏感設備的一個或多個觸摸輸入信號,基于觸摸輸入信號確定兩個或多個觸摸事件,其中該觸摸事件與和在觸摸顯示設備上顯示的web頁面中的兩個或多個區(qū)域相關聯(lián)的觸摸輸入信號相關聯(lián),以及將兩個或多個觸摸事件發(fā)送至web頁面以供處理。在這里還公開了涉及系統(tǒng)、方法和計算機可讀介質的其他實施方式。
圖1示出的是例示web頁面文檔。圖2示出的是例示的具有多點觸摸能力的設備的處理堆棧。圖3是用于處理觸摸事件的例示處理的流程圖。圖4示出的是例示的具有多點觸摸能力的設備。圖5是用于圖4中具有多點觸摸能力的設備的例示網(wǎng)絡操作環(huán)境的框圖。圖6是圖4中具有多點觸摸能力的設備的例示實施方式的框圖。
具體實施例方式例示的web頁面結構和DOM圖1A顯示的是可以在瀏覽器上顯示的例示web頁面100。該瀏覽器可以主存在便攜式設備上,諸如圖4中具有多點觸摸能力的設備400上。在web頁面100上可以顯示一個或多個單元,即單元102 (“單元I”)、單元104 (“單元2”)以及單元106 (“單元3”)。這些單元102、104、106可以與用戶可選的web頁面100中的各區(qū)域相對應,并且在這里還可以提供附加功能作為選擇結果。舉例來說,這些單元可以對應于web頁面100上的按鈕。此外,這些單元還可以嵌套,以使一個單元包含另一個單元。例如,單元104包含了單元108。在所顯示的示例中,舉例來說,單元108是一個嵌套在單元104內(nèi)部的擦除器控制(scrubbercontrol),而單元104則例如可以是媒體播放器的用戶界面。在某些實施方式中,用戶可以使用手指而不是鼠標以結合web頁面100上的單元執(zhí)行各種功能。例如,用戶可以使用圖4所示的觸摸敏感顯示器402來觸摸web頁面100的單元。在一個示例中,用戶可以通過用一個或多個手指觸摸該單元和/或通過做出像輕掃(swipe)、合攏(pinch)或旋轉(rotate)運動之類的手勢來選擇某個單元。為了識別觸摸輸入信號,web頁面100的某些區(qū)域可以與觸摸事件處理機相關聯(lián)。如將要參考圖1B所描述的那樣,這種處理可以用DOM以及嵌入式腳本語言來實現(xiàn)。圖1B是與web頁面100相關聯(lián)的例示性DOM 150。DOM 150提供了 web頁面100的結構表示,并且將web頁面內(nèi)容描述成是一組可以被腳本語言(例如JavaScript )解釋的對象。在某些實施方式中,DOM 150通過將web頁面100中的單元102、104、106、108映射到樹的各獨立節(jié)點來提供對web頁面結構的訪問。例如,單元102對應于節(jié)點154。單元104對應于節(jié)點156。單元106對應于節(jié)點158。單元108對應于節(jié)點160。根節(jié)點152對應于整個web頁面100。在某些實施方式中,通過將DOM 150中的相應節(jié)點與觸摸事件處理機相關聯(lián),可以將web頁面100中的一個或多個單元102、104、106、108與一個或多個相應的觸摸事件處理機相關聯(lián)。觸摸事件處理機可以被插入到web頁面100的HTML標簽中,并且該觸摸事件處理機可以在例如用戶在web頁面100上的某個單元內(nèi)部進行觸摸或做出手勢時運行腳本語言來執(zhí)行動作。舉例來說,JavaScript 可以與DOM 150—起工作,以便將動作附著于不同的觸摸事件。在某些實施方式中,一個或多個單元102、104、106、108可以接收由事件處理機或監(jiān)聽器檢測到的觸摸輸入。如參考圖2所描述的那樣,該觸摸輸入可以由觸摸事件模型檢測并處理成觸摸事件,其中該觸摸事件模型可以在軟件堆棧的一個或多個層中實施。觸摸事件可以由web頁面100進一步處理。觸摸事件可以采用與觸摸敏感設備產(chǎn)生的原始觸摸輸入信號相比更易于在應用中使用的格式(例如屬性)。舉例來說,每一個觸摸事件都可以包括一組當前正在發(fā)生的觸摸所在的坐標。web頁面100中的每一個單元及其關聯(lián)事件處理機都可以接收、處理和操作觸摸事件。舉個例子,如果驅動器202 (圖2)感測到與單元102相關聯(lián)的觸摸點110或是與單元104相關聯(lián)的觸摸點112,那么與單元102或104相關聯(lián)的事件處理機就可以接收指示該單元已被觸摸的獨立的觸摸事件,并且可以可選地將觸摸事件發(fā)送到web頁面100以供進一步處理。在某些實施方式中,如果被觸摸的web頁面100的區(qū)域不與事件處理機相對應,那么所述輸入可由應用層214中的瀏覽器處理,而非web頁面100來處理。在某些實施方式中,在DOM 150中可以逐手指逐節(jié)點地檢測觸摸事件。例如,用戶可在基本上相同的時間在觸摸點110和觸摸點112處觸摸該觸摸敏感顯示器402,并且觸摸事件模型可以檢測到兩個獨立的觸摸事件。由于DOM 150中的每一個節(jié)點102和104都與獨立的觸摸事件處理機相關聯(lián),因此,可以為觸摸點110和觸摸點112檢測到獨立觸摸事件。在某些實施方式中,觸摸事件可以作為EventTarget (事件目標)而被遞送到web頁面100。觸摸事件的某些示例可以包括觸摸開始(touchstart),觸摸移動(touchmove),觸摸結束(touchend)以及觸摸取消(touchcancel)。此外,其他觸摸事件也是可能的。觸摸開始是當用戶首次將手指放在觸摸敏感顯示器402上且位于web頁面100中與事件處理機相關聯(lián)的一區(qū)域內(nèi)時檢測到的觸摸事件。當用戶在web頁面100上四處移動其手指時,則可以檢測到一個或多個觸摸移動事件。當用戶將其手指抬離web頁面100時,則會檢測到觸摸結束事件。當系統(tǒng)中斷常規(guī)事件處理時,則可檢測到觸摸取消。例如,觸摸取消事件可以在為防止無意觸摸而鎖定觸摸敏感顯示器402時發(fā)生。在某些實施方式中,手勢事件還可以通過組合兩個或多個觸摸事件而被檢測。與觸摸事件相似,手勢事件(GestureEvent)同樣可以作為事件目標(EventTarget)而被遞送到web頁面100。手勢事件的某些示例可以是手勢開始(gesturestart),手勢改變(gesturechange)和手勢結束(gestureend)。手勢事件可以包括縮放和/或旋轉信息。旋轉信息可以包括旋轉值,該旋轉值是一個以度數(shù)為單位的相對增量。web頁面100上的單元可以根據(jù)該旋轉值而被動態(tài)旋轉??s放信息可以包括一個縮放值,該縮放值是以文檔像素為單位的相對增量。對與手勢事件相關聯(lián)的web頁面100上的單元來說,其大小可以根據(jù)該縮放值而被動態(tài)調整。此外,其他手勢事件也是可能的。在某些實施方式中,可以接收一個包含了用于標識web頁面100上的一個或多個觸摸的觸摸事件數(shù)據(jù)的觸摸列表。觸摸事件數(shù)據(jù)可以包括觸摸標識符以及至少一組觸摸位置坐標。此外,該觸摸列表還可以包括涉及與每一個觸摸相關聯(lián)的觸摸事件目標的觸摸事件數(shù)據(jù)。在某些實施方式中,這樣一個觸摸位置坐標組可以包括客戶機坐標、頁面坐標和屏幕坐標。在某些實施方式中,觸摸事件數(shù)據(jù)可以標識一個或多個有改變的觸摸。在某些實施方式中,GestureEvent可以在TouchEvent之前被發(fā)送到web頁面100。舉個例子,如果用戶將手指放在觸摸點110和觸摸點112上,然后使用這些手指在觸摸敏感顯示器上做出順時針或逆時針旋轉手勢,那么觸摸事件模型將會檢測到這些多個觸摸事件,并且會將這些觸摸事件組合成一個手勢事件。然后,該手勢事件可以被發(fā)送到web頁面100,其后跟隨的是經(jīng)組合形成該手勢事件的各觸摸事件。這樣一來,開發(fā)人員可以訪問手勢事件以及該手勢事件中的各個單獨的觸摸事件,由此就能在開發(fā)Web應用時,為開發(fā)人員提供更大的靈活性。在某些實施方式中,觸摸事件是依照如下順序接收的:觸摸開始事件、一個或多個觸摸移動事件、以及觸摸結束或觸摸取消事件。通過使用圖1A的示例,當用戶接觸觸摸點110時,與單元102相關聯(lián)的第一觸摸事件處理機將會檢測到第一觸摸開始事件。當用戶接觸觸摸點112時,與單元104相關聯(lián)的第二觸摸事件處理機將會檢測到第二觸摸開始事件。當用戶旋轉其手指而沒有抬起其手指時,第一和第二觸摸事件處理機將會檢測到觸摸移動事件,并且該觸摸移動事件可以被觸摸事件模型解釋成是旋轉手勢事件。當用戶結束旋轉并且將其手指抬離web頁面100時,第一和第二觸摸事件處理機將會檢測到觸摸結束事件。所有或某些觸摸事件可以通過觸摸事件應用編程接口(API)而對開發(fā)人員可用。觸摸API可以作為軟件開發(fā)工具包(SDK)或是作為應用的一部分(例如作為瀏覽器工具包的一部分)而對開發(fā)人員可用。該觸摸事件API可以依靠其他服務、框架和操作系統(tǒng)來執(zhí)行其各種功能。如參考圖2所述,在觸摸事件與那些可以插入文檔用以在應用中定義事件動作的屬性相關聯(lián)的情況下,這些服務、框架和操作系統(tǒng)可以是軟件或處理堆棧的一部分。例示的IDL現(xiàn)在將用接口描述語言(IDL)描述例示的觸摸事件模型。IDL的功能和數(shù)據(jù)結構可以由web設計人員或應用開發(fā)人員通過API來訪問。對觸摸事件和/或手勢事件的訪問可以與那些可插入標記語言文檔(例如HTML,XML)用以在應用中定義事件動作的屬性相關聯(lián)。例如,這些屬性可以插入到HTML文檔的一個或多個HTML標簽中,用以產(chǎn)生在觸摸敏感顯示器402上顯示的web頁面。該事件動作可以包括運行一個嵌入式腳本(例如JavaScript )。interface [
Conditional=TOUCH_EVENTS,
GenerateConstructor ]TouchEvent: UIEvent {
void initTouchEvent(in AtomicString type, in boolean canBubble, in boolean cancelable, in DOMWindow view, in long detail, in long screenX, in long screenY, in long clientX, in long clientY, in boolean ctrlKey, in boolean altKey, in boolean shiftKey, in boolean metaKey, in TouchList touches, in TouchList targetTouches, in TouchList changedT ouches,in long scale, in long rotation);
readonly attribute TouchList touches; / / 所有觸摸
權利要求
1.一種方法,包括: 獲取來自觸摸敏感設備的一個或多個觸摸輸入信號; 基于所述觸摸輸入信號確定兩個或更多個觸摸事件,其中所述觸摸事件與和在觸摸敏感設備上顯示的web頁面的兩個或更多個區(qū)域相關聯(lián)的觸摸輸入信號相關聯(lián);以及通過編程接口提供對至少一個觸摸事件的訪問。
全文摘要
本發(fā)明涉及用于web頁面的觸摸事件模型??梢詮挠|摸敏感設備中獲取一個或多個觸摸輸入信號。根據(jù)這些觸摸輸入信號,可以使用觸摸事件模型來確定觸摸和/或手勢事件。這些觸摸和手勢事件可以與那些從觸摸敏感設備上顯示的web頁面的不同區(qū)域產(chǎn)生的觸摸輸入信號相關聯(lián)。通過編程接口,可以提供對至少一個觸摸或手勢事件的訪問。
文檔編號G06F17/22GK103150109SQ20131005314
公開日2013年6月12日 申請日期2009年3月3日 優(yōu)先權日2008年3月4日
發(fā)明者R·威廉姆森, G·D·博爾辛加, T·奧默尼克 申請人:蘋果公司