IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アップル インコーポレイテッドの特許一覧

特許7111772タッチイベントモデルプログラミングインターフェイス
<>
  • 特許-タッチイベントモデルプログラミングインターフェイス 図1A
  • 特許-タッチイベントモデルプログラミングインターフェイス 図1B
  • 特許-タッチイベントモデルプログラミングインターフェイス 図2
  • 特許-タッチイベントモデルプログラミングインターフェイス 図3
  • 特許-タッチイベントモデルプログラミングインターフェイス 図4
  • 特許-タッチイベントモデルプログラミングインターフェイス 図5
  • 特許-タッチイベントモデルプログラミングインターフェイス 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-25
(45)【発行日】2022-08-02
(54)【発明の名称】タッチイベントモデルプログラミングインターフェイス
(51)【国際特許分類】
   G06F 3/0488 20220101AFI20220726BHJP
【FI】
G06F3/0488
【請求項の数】 12
【外国語出願】
(21)【出願番号】P 2020115933
(22)【出願日】2020-07-03
(62)【分割の表示】P 2018200268の分割
【原出願日】2009-03-03
(65)【公開番号】P2020181592
(43)【公開日】2020-11-05
【審査請求日】2020-07-30
(31)【優先権主張番号】12/042,299
(32)【優先日】2008-03-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
【氏名又は名称原語表記】Apple Inc.
【住所又は居所原語表記】One Apple Park Way,Cupertino, California 95014, U.S.A.
(74)【代理人】
【識別番号】110003281
【氏名又は名称】特許業務法人大塚国際特許事務所
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134175
【弁理士】
【氏名又は名称】永川 行光
(72)【発明者】
【氏名】ウィリアムソン リチャード
(72)【発明者】
【氏名】ボルシンガ グレゴリー デニス
(72)【発明者】
【氏名】オマニック ティモシー ピー
【審査官】星野 裕
(56)【参考文献】
【文献】国際公開第2008/020446(WO,A1)
【文献】特開2000-222130(JP,A)
【文献】特開2003-296024(JP,A)
【文献】特開2006-085356(JP,A)
【文献】特開2004-005688(JP,A)
【文献】特開2006-102275(JP,A)
【文献】特開2005-322088(JP,A)
【文献】特表2007-533044(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/048
(57)【特許請求の範囲】
【請求項1】
方法であって、
1つ以上のプロセッサと、前記1つ以上のプロセッサにより実行される1つ以上のプログラムを記憶したメモリとを備える電子デバイスにおいて、
タッチ感知面上で2つ以上のタッチを検出したことに応じて複数のタッチリストを含むタッチイベントを提供することであって、前記複数のタッチリストは、
前記タッチイベントのターゲットと関連付けられたつ以上のタッチを識別する第1のタッチリストと、
前記タッチイベントの2つ以上の変更されたタッチを識別する第2のタッチリストと、
前記タッチイベントの全てのタッチを識別する第3のタッチリストと
のうち2つ以上を含む、提供することと、
ウェブページに埋め込まれた1つ以上の命令から、前記複数のタッチリストの少なくとも1つにおける1つ以上のタッチに対応する1つ以上の値を受信することと、
受信した前記1つ以上の値に従って、前記ウェブページの表示を生成することと
を含む、方法。
【請求項2】
前記1つ以上の値は、前記第1のタッチリストにおける1つ以上のタッチに対応する、請求項1に記載の方法。
【請求項3】
前記1つ以上の値は、前記第2のタッチリストにおける1つ以上のタッチに対応する、請求項1に記載の方法。
【請求項4】
前記ウェブページに埋め込まれた1つ以上の命令から複数の値を受信することを含み、前記複数の値は、前記第2のタッチリストにおける1つ以上のタッチと、前記第3のタッチリストにおける1つ以上のタッチとに対応する、請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記複数のタッチリストは、前記第1のタッチリスト、前記第2のタッチリスト及び前記第3のタッチリストを含む、請求項1から4のいずれか1項に記載の方法。
【請求項6】
各タッチリストは、ウェブページ上の1つ以上のタッチを識別するためのタッチイベントデータを含み、前記タッチイベントデータは、タッチ識別子と、少なくとも1つのタッチ位置座標のセットとを含み、前記各タッチリストは更に、各タッチと関連付けられたタッチイベントターゲットを含み、前記少なくとも1つのタッチ位置座標のセットはクライアント座標、ページ座標及び画面座標のうちの少なくとも1つを含む、請求項1から5のいずれか1項に記載の方法。
【請求項7】
2つ以上のタッチイベントを結合することによりジェスチャイベントを生成することを更に含む、請求項1から6のいずれか1項に記載の方法。
【請求項8】
前記ジェスチャイベントはスケール情報及び回転情報のうちの1つを含み、前記スケール情報はスケーリング値を含み、前記回転情報は回転値を含む、請求項7に記載の方法。
【請求項9】
電子デバイスであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサにより実行される1つ以上のプログラムを記憶したメモリと
を備え、前記1つ以上のプログラムは、
タッチ感知面上で2つ以上のタッチを検出したことに応じて複数のタッチリストを含むタッチイベントを提供することであって、前記複数のタッチリストは、
前記タッチイベントのターゲットと関連付けられたつ以上のタッチを識別する第1のタッチリストと、
前記タッチイベントの2つ以上の変更されたタッチを識別する第2のタッチリストと、
前記タッチイベントの全てのタッチを識別する第3のタッチリストと
のうち2つ以上を含む、提供することと、
ウェブページに埋め込まれた1つ以上の命令から、前記複数のタッチリストの少なくとも1つにおける1つ以上のタッチに対応する1つ以上の値を受信することと、
受信した前記1つ以上の値に従って、前記ウェブページの表示を生成することと
を実行するための命令群を含む、電子デバイス。
【請求項10】
前記1つ以上のプログラムは、請求項2から8のいずれか1項に記載の方法を実行するための命令群を含む、請求項9に記載の電子デバイス。
【請求項11】
電子デバイスの1つ以上のプロセッサにより実行されるコンピュータプログラムであって、前記コンピュータプログラムは、
タッチ感知面上で2つ以上のタッチを検出したことに応じて複数のタッチリストを含むタッチイベントを提供することであって、前記複数のタッチリストは、
前記タッチイベントのターゲットと関連付けられたつ以上のタッチを識別する第1のタッチリストと、
前記タッチイベントの2つ以上の変更されたタッチを識別する第2のタッチリストと、
前記タッチイベントの全てのタッチを識別する第3のタッチリストと
のうち2つ以上を含む、提供することと、
ウェブページに埋め込まれた1つ以上の命令から、前記複数のタッチリストの少なくとも1つにおける1つ以上のタッチに対応する1つ以上の値を受信することと、
受信した前記1つ以上の値に従って、前記ウェブページの表示を生成することと
を実行するための命令群を含む、コンピュータプログラム。
【請求項12】
請求項2から8のいずれか1項に記載の方法を実行するための命令群を含む、請求項11に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、ウェブブラウジングサービスに係る。
【背景技術】
【0002】
ドキュメント内のテキストベース情報の構造を記述すると共に、そのテキストを双方向フォーム、埋め込まれた映像及び他のオブジェクトで補足するための手段をなすマークアップ言語を使用して、ウェブページが生成される。1つの普及したマークアップ言語は、カギ括弧で囲まれたタグの形態で書かれたハイパーテキストマークアップ言語(HTML)である。HTMLは、ウェブページの見掛け及び意味を記述することができると共に、ウェブブラウザ及び他のHTMLプロセッサの振舞いに影響する埋め込み型スクリプト言語コード(例えば、JavaScript(登録商標))を含むことができる。JavaScript(登録商標)は、マウスイベントハンドラー又はイベントリスナーをウェブページに追加する能力を開発者に与える。これらのマウスイベントハンドラーは、ウェブページの特定の領域に指定され、そしてマウスアップ又はマウスダウンイベントのようなマウスイベントをこれらの領域において受け取るように構成することができる。
【発明の概要】
【0003】
対照的に、タッチ感知装置でナビゲートされるウェブページは、ユーザが1つ以上の指でウェブページにタッチしそしてジェスチャーをなすことで発生されたタッチイベントに応答することがしばしば必要である。従来のマウスイベントハンドラーは、これらタッチイベントを正しく解釈することができない。従って、タッチイベントは、タッチイベントを正しく解釈すると共に、タッチ感知ディスプレイ又は装置の能力を開発者が完全に利用できるようにするための異なるタッチイベントモデルを必要としている。
【0004】
タッチ感知装置から1つ以上のタッチ入力信号を得ることができる。タッチイベントモデルを使用し、それらタッチ入力信号に基づいてタッチ及び/又はジェスチャーイベントを決定することができる。このタッチ及びジェスチャーイベントは、タッチ感知装置上に表示されるウェブページの異なる領域から発生されるタッチ入力信号に関連付けることができる。プログラミングインターフェイスを通して少なくとも1つのタッチ又はジェスチャーイベントへのアクセスを与えることができる。
【0005】
ある実施形態では、ウェブブラウザにおいて、方法は、ジェスチャーイベントに関連した回転値を受け取るステップと、その回転値に基づいてウェブブラウザにおけるジェスチャーイベントに関連したウェブページのエレメントを動的に回転するステップであって、前記回転値が、度での相対的デルタであるようなステップとを備えている。ジェスチャーイベントは、2つ以上のタッチイベントを含むことができる。
【0006】
ある実施形態では、ウェブブラウザにおいて、方法は、ジェスチャーイベントに関連したスケーリング値を受け取るステップと、そのスケーリング値に基づいてウェブブラウザにおけるジェスチャーイベントに関連したウェブページのエレメントを動的にサイズ変更するステップであって、前記スケーリング値が、ドキュメントピクセルでの相対的デルタであるようなステップとを備えている。ジェスチャーイベントは、2つ以上のタッチイベントに関連付けることができる。
【0007】
ある実施形態では、ウェブブラウザにおいて、方法は、タッチリストを受け取るステップを備え、このタッチリストは、ウェブページにおける1つ以上のタッチを識別するためのタッチデータを含み、このタッチデータは、タッチ識別子と、少なくとも1セットのタッチ位置座標とを含み、更に、タッチリストは、各タッチに関連したタッチイベントターゲットに対するデータを含み、前記少なくとも1セットのタッチ位置座標は、クライアント座標のセットと、ページ座標のセットと、スクリーン座標のセットとを含む。タッチデータは、1つ以上の変更されたタッチを識別することができる。
【0008】
システム、方法及びコンピュータ読み取り可能な媒体に向けられた他の実施形態も開示される。
【図面の簡単な説明】
【0009】
図1A】、
図1B】例示的なウェブページドキュメントを示す。
【0010】
図2】例示的なマルチタッチケーパブル装置の処理スタックを示す。
【0011】
図3】タッチイベントを処理するための例示的プロセスのフローチャートである。
【0012】
図4】例示的なマルチタッチケーパブル装置を示す。
【0013】
図5図4のマルチタッチケーパブル装置に対する例示的なネットワークオペレーティング環境のブロック図である。
【0014】
図6図4のマルチタッチケーパブル装置の実施例のブロック図である。
【発明を実施するための形態】
【0015】
例示的ウェブページ構造及びDOM
図1Aは、ブラウザに表示できる例示的ウェブページ100を示す。ブラウザは、図4のマルチタッチケーパブル(multi-touch capable)装置400のようなポータブル装置にホストされてもよい。ウェブページ100には、1つ以上のエレメント、即ちエレメント102(“エレメント1”)、エレメント104(“エレメント2”)及びエレメント106(“エレメント3”)を表示することができる。これらエレメント102、104、106は、ユーザが選択できるウェブページ100の領域に対応することができ、選択の結果として付加的な機能を与えることができる。例えば、これらエレメントは、ウェブページ100のボタンに対応する。又、1つのエレメントが別のエレメントを含むようにエレメントをネスト構成にすることもできる。例えば、エレメント104は、エレメント108を含む。図示された例では、エレメント108は、例えば、メディアプレーヤユーザインターフェイスであるエレメント104内にネストされたスクラバーコントロールである。
【0016】
ある実施形態において、ユーザは、マウスではなく指を使用してウェブページ100のエレメントで種々のファンクションを遂行することができる。ユーザは、例えば、図4に示すタッチ感知ディスプレイ402を使用してウェブページ100のエレメントにタッチすることができる。一実施例では、ユーザは、1つ以上の指でエレメントにタッチし及び/又はスワイプ、ピンチ又は回転運動のようなジェスチャーを行うことで、エレメントを選択することができる。タッチ入力信号を確認するために、ウェブページ100のあるエリアをタッチイベントハンドラーに関連付けることができる。これは、図1Bを参照して述べるように、DOM及び埋め込まれたスクリプト言語で行うことができる。
【0017】
図1Bは、ウェブページ100に関連付けられた例示的DOM150である。このDOM150は、ウェブページ100の構造的表示を与えるもので、スクリプト言語(例えば、JavaScript(登録商標))で解釈できるオブジェクトのセットとしてウェブページコンテンツを記述する。ある実施形態において、DOM150は、ウェブページ100のエレメント102、104、106、108をツリーの個々のノードにマップすることによりウェブページの構造へのアクセスを与える。例えば、エレメント102は、ノード154に対応する。エレメント104は、ノード156に対応する。エレメント106は、ノード158に対応する。エレメント108は、ノード160に対応する。根ノード152は、全ウェブページ100に対応する。
【0018】
ある実施形態において、ウェブページ100の1つ以上のエレメント102、104、106、108は、DOM150の対応ノードをタッチイベントハンドラーに関連付けることにより、1つ以上の対応するタッチイベントハンドラーに関連付けることができる。タッチイベントハンドラーは、ウェブページ100のHTMLタグに挿入できると共に、例えば、ユーザがウェブページ100の1つのエレメントにタッチするか又はその中でジェスチャーするときに、スクリプト言語を実行してアクションを遂行することができる。例えば、JavaScript(登録商標)は、DOM150と共に機能して、異なるタッチイベントにアクションをアタッチすることができる。
【0019】
ある実施形態では、1つ以上のエレメント102、104、106、108が、イベントハンドラー又はリスナーにより検出されたタッチ入力を受け取ることができる。タッチ入力は、図2を参照して説明するように、ソフトウェアスタックの1つ以上のレイヤにおいて実施できるタッチイベントモデルによって検出されてタッチイベントへと処理することができる。タッチイベントは、ウェブページ100により更に処理することができる。タッチイベントは、タッチ感知装置により発生される生のタッチ入力信号よりもアプリケーションにおいて使用し易いフォーマット(例えば、属性)である。例えば、各タッチイベントは、タッチが現在発生しているところの座標のセットを含むことができる。
【0020】
ウェブページ100における各エレメント、及びその関連イベントハンドラーは、タッチイベントを受け取り、処理し、取り扱うことができる。例えば、ドライバ202(図2)が、エレメント102に関連したタッチポイント110を感知するか、又はエレメント104に関連したタッチポイント112を感知する場合に、エレメント102又は104に関連したイベントハンドラーは、エレメントにタッチしたことを指示する個別のタッチイベントを各々受け取ることができ、そして任意であるが、そのタッチイベントを更なる処理のためにウェブページ100へ送ることができる。ある実施形態において、イベントハンドラーに対応しないウェブページ100の領域にタッチした場合には、アプリケーションレイヤ214のブラウザが、ウェブページ100ではなく、入力を処理することができる。
【0021】
ある実施形態では、DOM150においてノードごとに指ごとにタッチイベントを検出することができる。例えば、ユーザは、実質的に同時にタッチポイント110及びタッチポイント112においてタッチ感知ディスプレイ402にタッチすることができ、そしてタッチイベントモデルにより2つの個別のタッチイベントを検出することができる。DOM150における各ノード102及びノード104は個別のタッチイベントハンドラーに関連しているので、タッチポイント110及びタッチポイント112に対して個別のタッチイベントを検出することができる。
【0022】
ある実施形態において、タッチイベントは、EventTargetとしてウェブページ100へ配送することができる。タッチイベントの幾つかの例は、touchstart(タッチ開始)、touchmove(タッチ移動)、touchend(タッチ終了)、及びtouchcancel(タッチキャンセル)を含むことができる。他のタッチイベントも考えられる。touchstartは、イベントハンドラーに関連したウェブページ100の領域においてタッチ感知ディスプレイ402にユーザが最初に指を置いたときに検出されるタッチイベントである。ユーザがウェブページ100上で自分の指を動き回らせると、1つ以上のtouchmoveイベントを検出することができる。ユーザがウェブページ100から自分の指を持ち上げると、touchendイベントが検出される。システムが普通のイベントハンドリングを中断するときには、touchcancelを検出することができる。例えば、偶発的なタッチを防止するためにタッチ感知ディスプレイ402がロックされたときにtouchcancelイベントが生じる。
【0023】
又、ある実施形態において、2つ以上のタッチイベントを合成することによりジェスチャーイベントを検出することもできる。タッチイベントと同様に、ジェスチャーイベント(GestureEvent)を、EventTargetとしてウェブページ100へ配送することもできる。ジェスチャーイベントの幾つかの例は、gesturestart(ジェスチャー開始)、gesturechange(ジェスチャー変更)、及びgestureend(ジェスチャー終了)である。ジェスチャーイベントは、スケール及び/又は回転情報を含むことができる。回転情報は、度での相対的デルタである回転値を含むことができる。ウェブページ100のエレメントは、この回転値に基づいて動的に回転することができる。スケール情報は、ドキュメントピクセルでの相対的デルタであるスケール値を含むことができる。ジェスチャーイベントに関連したウェブページ100のエレメントは、このスケール値に基づいて動的にサイズ変更することができる。他のジェスチャーイベントも考えられる。
【0024】
ある実施形態では、ウェブページ100上の1つ以上のタッチを識別するためのタッチイベントデータを含むタッチリストを受け取ることができる。タッチイベントデータは、タッチ識別子と、少なくとも1セットのタッチ位置座標とを含むことができる。又、タッチリストは、各タッチに関連したタッチイベントターゲットに対するタッチイベントデータも含むことができる。ある実施形態では、1セットのタッチ位置座標は、クライアント座標、ページ座標、及びスクリーン座標を含むことができる。ある実施形態では、タッチイベントデータは、1つ以上の変更されたタッチを識別することができる。
【0025】
ある実施形態では、GestureEventを、TouchEventの前にウェブページ100へ送り出すことができる。例えば、ユーザがタッチポイント110及びタッチポイント112に指を置いて、タッチ感知ディスプレイ上で指を時計方向又は反時計方向に動かして回転ジェスチャーを行う場合には、タッチイベントモデルがこれらの複数タッチイベントを検出し、そのタッチイベントをジェスチャーイベントへと合成する。次いで、このジェスチャーイベントをウェブページ100へ送り、その後、そのジェスチャーイベントを形成するために合成されたタッチイベントを送ることができる。このように、開発者は、ジェスチャーイベント、及びジェスチャーイベントの個々のタッチイベントにアクセスすることができ、これは、ウェブアプリケーションを開発するときに、より大きな融通性を開発者に与えるものである。
【0026】
ある実施形態では、タッチイベントが次の順序で受け取られる。即ち、touchstartイベント、1つ以上のtouchmoveイベント、そしてtouchend又はtouchcancelイベント。図1Aの実施例を使用すると、ユーザがタッチポイント110にタッチしたときに、エレメント102に関連した第1のタッチイベントハンドラーにより第1のtouchstartイベントが検出される。ユーザがタッチポイント112にタッチすると、エレメント104に関連した第2のタッチイベントハンドラーにより第2のtouchstartイベントが検出される。ユーザが自分の指を持ち上げずに自分の指を回転するにつれて、第1及び第2のタッチイベントハンドラーがtouchmoveイベントを検出し、これは、タッチイベントモデルにより回転ジェスチャーイベントとして解釈することができる。ユーザが回転を終了して自分の指をウェブページ100から持ち上げると、第1及び第2のタッチイベントハンドラーがtouchendイベントを検出する。これらのタッチイベントの全部又は幾つかを、タッチイベント「アプリケーションプログラミングインターフェイス(API)」により、開発者に利用できるようにすることができる。タッチAPIは、「ソフトウェアデベロープメントキット(SDK)」として、又はアプリケーションの一部分として(例えば、ブラウザツールキットの一部分として)開発者に利用できるようにすることができる。タッチイベントAPIは、その種々のファンクションを遂行するために、他のサービス、フレームワーク及びオペレーティングシステムに依存することができる。これらのサービス、フレームワーク及びオペレーティングシステムは、図2を参照して述べるようにソフトウェア又は処理スタックの一部分でよく、ここでは、アプリケーションにおけるイベントアクションを定義するためにドキュメントに挿入できる属性にタッチイベントが関連付けされる。
【0027】
例示的IDL
例示的なタッチイベントモデルを、「インターフェイス記述言語(IDL)」で以下に説明する。IDLのファンクション及びデータ構造は、ウェブ設計者又はアプリケーション開発者によりAPIを通してアクセスすることができる。タッチイベント及び/又はジェスチャーイベントへのアクセスは、アプリケーションにおけるイベントアクションを定義するためにマークアップ言語ドキュメント(例えば、HTML、XML)に挿入できる属性に関連付けることができる。例えば、これら属性は、タッチ感知ディスプレイ402に表示されるウェブページを発生するためにHTMLドキュメントの1つ以上のHTMLタグに挿入することができる。イベントアクションは、埋め込み型スクリプト(例えば、JavaScript(登録商標))を実行することを含むことができる。

【0028】
次は、上述した例示的IDLを使用してタッチイベントを処理するためのHTMLコード断片の例である。以下のHTMLは、例えば、タッチイベントリスナーTouchStart及びGestureStartが、HTMLコードをもつエレメントに追加されたことを示す。
【0029】
前記IDLに対応するHTMLコードは、次のものでよい。




【0030】
マルチタッチ装置のための例示的処理スタック
図2は、例示的なマルチタッチケーパブル装置の処理スタックを示す図である。上述したタッチイベントモデルは、処理スタックの1つ以上の領域及びスタックにおけるユーザの種々のリソースにおいて実施することができる。ハードウェア200のレイヤは、種々のハードウェアインターフェイスコンポーネント、例えば、タッチ感知又はイネーブル型装置或いはタッチ感知ディスプレイを含むことができる。タッチ感知装置は、ディスプレイと、複数のタッチを同時に感知するパネルとを含むことができる。又、ハードウェアレイヤ200は、タッチ感知ディスプレイ又は装置の向き(例えば、肖像、風景)を検出するための加速度計も含むことができる。従って、向きを表す信号は、最適な表示のためにウェブページをスケーリングするようにタッチイベントモデルにより使用することができる。
【0031】
ドライバレイヤ202における1つ以上のドライバは、ハードウェア200と通信することができる。例えば、ドライバは、ハードウェアレイヤ200のタッチ感知ディスプレイ又は装置によって発生されるタッチ入力信号を受け取って処理することができる。コアオペレーティングシステム(OS)204は、ドライバ(1つ又は複数)と通信することができる。コアOS204は、ドライバ(1つ又は複数)から受け取られた生の入力データを処理することができる。ある実施形態では、ドライバは、コアOS204の一部分であると考えることもできる。
【0032】
OSアプリケーションプログラミングインターフェイス(API)206のセットがコアOS204と通信することができる。これらのAPIは、オペレーティングシステムと共に通常含まれるAPIのセットでよい(例えば、Linux又はUNIX API)。コアファウンデーションAPI208のセットは、OS API206を使用することができ、そしてファウンデーションAPI210のセットは、コアファウンデーションAPI208を使用することができる。
【0033】
ウェブページソフトウェア開発キット(SDK)210は、装置で実行されるアプリケーションにより使用するように設計されたAPIのセットを含むことができる。タッチイベントAPIは、例えば、ウェブページSDK210に含ませることができる。ウェブページSDK210のAPIは、ファウンデーションAPI208を使用することができる。ウェブページSDK210は、例えば、アップル社により提供されるウェブキットを含むことができる。ウェブページSDK210は、APIとしてオファーすることもできるし、或いはアプリケーション、例えば、アップル社により提供されるSAFARI(登録商標)のようなブラウザを通してアクセスすることもできる。
【0034】
装置で実行されるアプリケーション214は、ウェブページSDK210のAPIを使用してウェブページを生成することができる。次いで、ウェブページSDK210のAPIは、低レベルエレメントと通信し、最終的には、タッチ感知ディスプレイ又は装置及び種々の他のユーザインターフェイスハードウェアと通信することができる。各レイヤは、その下のレイヤを使用できるが、これは、常に必要とされない。例えば、ある実施形態では、装置214は、OS API206と時々通信することができる。
【0035】
例示的タッチイベントプロセス
図3は、APIを経てタッチ及び/又はジェスチャーイベントへのアクセスを与えるためのプロセス300のフローチャートである。このプロセス300は、1つ以上のタッチ入力信号を得ることで開始できる(302)。タッチ入力信号は、タッチ感知ディスプレイ又は装置から得ることができる。タッチイベント及び/又はジェスチャーの決定は、タッチイベントモデルを使用してタッチ入力信号に基づいて行うことができる(304)。タッチイベントは、タッチ感知ディスプレイ又は装置に表示されるウェブページの領域に関連付けることができる。例えば、タッチ感知ディスプレイは、移動電話のディスプレイでよく、タッチ感知装置は、ノードブックコンピュータのタッチ感知パッドでよい。タッチイベント及び/又はジェスチャーイベントへのアクセスは、プログラミングインターフェイスを経て与えることができる(306)。例えば、図2を参照して上述したHTML断片については、この断片をウェブ開発者によりHTMLドキュメントに挿入し、タッチ及び/又はジェスチャーイベントへのアクセスを開発者に与えることができる。タッチイベント及び/又はジェスチャーイベントは、HTMLドキュメントのコードによって更に処理されて、イベントアクションを開始することができる(306)。
【0036】
移動装置の概略
図4は、例示的なマルチタッチケーパブル装置400のブロック図である。ある実施形態では、マルチタッチケーパブル装置400は、タッチ感知ディスプレイ402を備えている。このタッチ感知ディスプレイ402は、液晶ディスプレイ(LCD)技術、光放射ポリマーディスプレイ(LPD)技術、又は他のディスプレイ技術を実施することができる。タッチ感知ディスプレイ402は、ユーザとの触覚及び/又は触感接触を感知することができる。
【0037】
ある実施形態では、タッチ感知ディスプレイ402は、マルチタッチ感知ディスプレイ402である。タッチ感知ディスプレイ402は、例えば、複数の同時タッチポイントを処理することができ、これは、各タッチポイントの圧力、程度及び/又は位置に関連したデータを処理することを含む。このような処理は、複数の指でのジェスチャー及び相互作用、コーディング(chording)、及び他の相互作用を容易にする。他のタッチ感知ディスプレイ技術、例えば、スタイラス又は他のポインティング装置を使用して接触がなされるディスプレイも、使用することができる。マルチタッチ感知ディスプレイ技術の幾つかの例が、米国特許第6,323,846号、第6,570,557号、第6,677,932号、及び米国特許公告第2002/0015024A1号に説明されており、その各々は、参考としてここにそのまま援用する。ある実施形態では、マルチタッチケーパブル装置400は、種々のシステムオブジェクトへのユーザアクセスを与えると共にユーザへ情報を伝達するためにタッチ感知ディスプレイ402に1つ以上のグラフィックユーザインターフェイスを表示することができる。
【0038】
例示的なマルチタッチケーパブル装置のファンクション
ある実施形態において、マルチタッチケーパブル装置400は、電話装置、e-メール装置、ネットワークデータ通信装置、Wi-Fiベースステーション装置、及び媒体処理装置のような複数の装置ファンクションを実施することができる。ある実施形態では、マルチタッチケーパブル装置400は、ウェブページ(例えば、ウェブページ100)を表示するためのウェブブラウザ404を含むことができる。タッチ感知ディスプレイ402は、ウェブページ100において作られるタッチ入力信号を受け取ることができ、そして上述したタッチモデルを使用して、タッチ入力信号に基づきタッチ及び/又はジェスチャーイベントを決定することができる。ある実施形態では、マルチタッチケーパブル装置400は、ネットワーク配布ファンクションを実施することができる。ある実施形態では、タッチ感知ディスプレイ402は、マルチタッチケーパブル装置400がユーザの耳の付近にあるときに、ロックダウンすることができる。このロックダウンは、図1Bを参照して述べたように、touchcancelイベントを生じさせる。
【0039】
ある実施形態では、加速度計472は、方向矢印474により指示されたように、マルチタッチケーパブル装置400の移動を検出するのに使用することができる。従って、表示オブジェクト及び又は媒体は、例えば、肖像又は風景のような検出された向きに基づいてプレゼンテーションすることができる。ある実施形態では、マルチタッチケーパブル装置400は、グローバルポジショニングシステム(GPS)、又は他のポジショニングシステム(例えば、Wi-Fiアクセスポイント、テレビジョン信号、セルラーグリッド、ユニフォームリソースロケータ(URL)を使用するシステム)により与えられるような位置決定能力をサポートするための回路及びセンサを含むことができる。ある実施形態では、ポジショニングシステム(例えば、GPS受信器)は、マルチタッチケーパブル装置400に一体化することもできるし、又は位置に基づくサービスへのアクセスを与えるようにインターフェイスを経てマルチタッチケーパブル装置400に結合できる個別の装置として設けることもできる。又、マルチタッチケーパブル装置400は、1つ以上のワイヤレス通信サブシステムを含むこともできる。
【0040】
ある実施形態では、例えば、ユニバーサルシリアルバス(USB)ポート又はドッキングポート或いは他のワイヤードポート接続のようなポート装置を含ませることができる。このポート装置は、例えば、他のコンピューティング装置、例えば、他のマルチタッチケーパブル装置400、ネットワークアクセス装置、パーソナルコンピュータ、プリンタ、又はデータを受信及び/又は送信できる他の処理装置へのワイヤード接続を確立するのに使用することができる。ある実施形態では、ポート装置は、マルチタッチケーパブル装置400が、1つ以上のプロトコル、例えば、TCP/IP、HTTP、UDP及び他の既知のプロトコルを使用して、ホスト装置と同期をとれるようにする。
【0041】
ネットワークオペレーティング環境
図5は、図4のマルチタッチケーパブル装置400に対する例示的なネットワークオペレーティング環境600のブロック図である。図4のマルチタッチケーパブル装置400は、例えば、データ通信において1つ以上のワイヤード及び/又はワイヤレスネットワーク510を経て通信することができる。例えば、ワイヤレスネットワーク512、例えば、セルラーネットワークは、ゲートウェイ516の使用により、インターネットのようなワイドエリアネットワーク(WAN)514と通信することができる。同様に、802.11gワイヤレスアクセスポイントのようなアクセスポイント518は、ワイドエリアネットワーク514へ通信アクセスを与えることができる。ある実施形態では、ワイヤレスネットワーク512及びアクセスポイント518を経て音声及びデータの両通信を確立することができる。例えば、マルチタッチケーパブル装置400aは、(例えば、VoIPプロトコルを使用して)電話コールを発信及び受信することができ、(例えば、POP3プロトコルを使用して)e-メールメッセージを送信及び受信することができ、且つ(例えば、TCP/IP又はUDPプロトコルを使用して)ワイヤレスネットワーク512、ゲートウェイ516及びワイドエリアネットワーク514を経てウェブページ、写真及びビデオのような電子ドキュメント及び/又はストリームを検索することができる。同様に、マルチタッチケーパブル装置400bは、電話コールを発信及び受信し、e-メールメッセージを送信及び受信し、且つアクセスポイント518及びワイドエリアネットワーク514を経て電子ドキュメントを検索することができる。ある実施形態では、マルチタッチケーパブル装置400は、1つ以上のケーブルを使用してアクセスポイント518へ物理的に接続することができ、又、アクセスポイント518は、パーソナルコンピュータでよい。この構成では、マルチタッチケーパブル装置400は、「テザード(tethered)」装置と称することができる。
【0042】
又、マルチタッチケーパブル装置400a及び400bは、他の手段により通信を確立することもできる。例えば、マルチタッチケーパブル装置400aは、ワイヤレスネットワーク512を経て、他のワイヤレス装置、例えば、他のマルチタッチケーパブル装置400、セルラー電話、等と通信することができる。同様に、マルチタッチケーパブル装置400a及び400bは、図4に示すBluetooth(登録商標)通信装置488のような1つ以上の通信サブシステムの使用により、例えば、パーソナルエリアネットワークのようなピア・ツー・ピア通信520を確立することができる。又、他の通信プロトコル及びトポロジーを実施することもできる。
【0043】
マルチタッチケーパブル装置400は、例えば、1つ以上のワイヤード及び/又はワイヤレスネットワーク510を経てネットワークリソース530と通信することができる。例えば、ネットワークリソースは、図1及び2を参照して述べたように、タッチモデルを経てタッチできるウェブページを配送するためのウェブサーバーでよい。
【0044】
又、マルチタッチケーパブル装置400上のソフトウェアに対してソフトウェア更新が存在するかどうか自動的に決定し、次いで、そのソフトウェア更新をマルチタッチケーパブル装置400にダウンロードし、そこで、手動で又は自動的にアンパックし及び/又はインストールすることのできるソフトウェア更新サービスを含む他のサービスを提供することもできる。
【0045】
例示的移動装置アーキテクチャー
図6は、図4のマルチタッチケーパブル装置400の実施形態のブロック図600である。マルチタッチケーパブル装置400は、メモリインターフェイス602と、1つ以上のデータプロセッサと、映像プロセッサ及び/又は中央処理ユニット604と、周辺インターフェイス606とを含むことができる。メモリインターフェイス602、1つ以上のプロセッサ604及び/又は周辺インターフェイス606は、個別のコンポーネントでもよいし、或いは1つ以上の集積回路に一体化されてもよい。マルチタッチケーパブル装置400における種々のコンポーネントは、1つ以上の通信バス又は信号ラインにより結合することができる。
【0046】
センサ、装置及びサブシステムは、複数のファンクションを容易にするために、周辺インターフェイス606に結合することができる。例えば、運動センサ610、光センサ612、及び接近センサ614は、図4を参照して述べた方向、照明及び接近ファンクションを容易にするために、周辺インターフェイス606に結合することができる。又、関連ファンクションを容易にするために、ポジショニングシステム(例えば、GPS受信器)、温度センサ、生体測定センサ、又は他のセンサ装置のような他のセンサ616を周辺インターフェイス606に接続することもできる。
【0047】
又、記録写真及びビデオクリップのようなカメラファンクションを容易にするために、カメラサブシステム620及び光学的センサ622、例えば、電荷結合装置(CCD)又は相補的金属酸化物半導体(CMOS)光学的センサを使用することができる。
【0048】
又、高周波受信器及び送信器、及び/又は光学的(例えば、赤外線)受信器及び送信器を含む1つ以上のワイヤレス通信サブシステム624により通信ファンクションを容易にすることができる。通信サブシステム624の特定の設計及び実施は、マルチタッチケーパブル装置400が動作することが意図された通信ネットワーク(1つ又は複数)に依存する。例えば、マルチタッチケーパブル装置400は、GSMネットワーク、GPRSネットワーク、EDGEネットワーク、Wi-Fi又はWiMaxネットワーク、及びBluetooth(登録商標)ネットワークを経て動作するように設計された通信サブシステム624を含むことができる。特に、ワイヤレス通信サブシステム624は、装置500が他のワイヤレス装置のためのベースステーションとして構成されるようにホスティングプロトコルを含むことができる。
【0049】
オーディオサブシステム626は、ボイスイネーブル型ファンクション、例えば、音声認識、音声複写、デジタル記録及び電話ファンクションを容易にするために、スピーカ628及びマイクロホン630に結合することができる。
【0050】
I/Oサブシステム640は、タッチスクリーンコントローラ642及び/又は他の入力コントローラ644(1つ又は複数)を含むことができる。タッチスクリーンコントローラ642は、タッチスクリーン646に結合することができる。タッチスクリーン646及びタッチスクリーンコントローラ642は、例えば、これらに限定されないが、容量性、抵抗性、赤外線、及び表面音波技術、並びにタッチスクリーン646との1つ以上の接触ポイントを決定するための他の接近センサアレイ又は他の素子を含む複数のタッチ感知技術のいずれかを使用して、接触及び移動又はその切断を検出することができる。
【0051】
他の入力コントローラ644(1つ又は複数)は、他の入力/制御装置648、例えば、1つ以上のボタン、ロッカースイッチ、サムホイール、赤外線ポート、USBポート、及び/又はスタイラス等のポインタ装置に結合することができる。1つ以上のボタン(図示せず)は、スピーカ628及び/又はマイクロホン630の音量制御のためのアップ/ダウンボタンを含むことができる。
【0052】
一実施形態では、第1時間中ボタンを押すと、タッチスクリーン646のロックが解離し、その第1時間より長い第2時間中ボタンを押すと、マルチタッチケーパブル装置400への電源をターンオン又はオフにすることができる。ユーザは、1つ以上のボタンのファンクションをカスタマイズすることができる。タッチスクリーン646は、例えば、バーチャル又はソフトボタン、及び/又はキーパッド又はキーボードを実施するのにも使用できる。
【0053】
ある実施形態では、マルチタッチケーパブル装置400は、MP3、AAC、およびMPEGファイルのような記録されたオーディオ及び/又はビデオファイルをプレゼンテーションすることができる。ある実施形態では、マルチタッチケーパブル装置400は、iPodTMのようなMP3プレーヤのファンクションを含むことができる。それ、マルチ
タッチケーパブル装置400は、iPodに適合できる32ピンコネクタを含むことができる。又、他の入力/出力及び制御装置を使用することもできる。
【0054】
メモリインターフェイス602は、メモリ650に結合することができる。メモリ650は、高速ランダムアクセスメモリ及び/又は不揮発性メモリ、例えば、1つ以上の磁気ディスク記憶装置、1つ以上の光学的記憶装置、及び/又はフラッシュメモリ(例えば、NAND、NOR)を含むことができる。メモリ650は、オペレーティングシステム652、例えば、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、又は埋め込み型オペレーティングシステム、例えば、VxWorksを記憶することができる。オペレーティングシステム652は、基本的システムサービスをハンドリングし及びハードウェア依存性タスクを遂行するためのインストラクションを含むことができる。
【0055】
又、メモリ650は、1つ以上の付加的な装置、1つ以上のコンピュータ、及び/又は1つ以上のサーバーとの通信を容易にするために通信インストラクション654を記憶することもできる。メモリ650は、グラフィックユーザインターフェイス処理を容易にするためのグラフィックユーザインターフェイスインストラクション656、センサ関連処理及びファンクションを容易にするためのセンサ処理インストラクション658、電話関連プロセス及びファンクションを容易にするための電話インストラクション660、電子メッセージング関連プロセス及びファンクションを容易にするための電子メッセージングインストラクション662、ウェブブラウジング関連プロセス及びファンクションを容易にするためのウェブブラウジングインストラクション664、メディア処理関連プロセス及びファンクションを容易にするためのメディア処理インストラクション666、GPS及びナビゲーション関連プロセス及びファンクションを容易にするためのGPS/ナビゲーションインストラクション668、カメラ関連プロセス及びファンクションを容易にするためのカメラインストラクション670、及び/又は図1-5を参照して述べたプロセス及びファンクションを容易にするための他のメッセージングインストラクション672を含むことができる。
【0056】
上述したインストラクション及びアプリケーションの各々は、上述した1つ以上のファンクションを遂行するためのインストラクションのセットに対応することができる。これらのインストラクションは、個別のソフトウェアプログラム、手順又はモジュールとして実施される必要はない。メモリ650は、付加的なインストラクションを含むこともできるし、又はより少数のインストラクションを含んでもよい。マルチタッチケーパブル装置400の種々のファンクションは、1つ以上の信号処理及び/又は特定用途向け集積回路を含めて、ハードウェア及び/又はソフトウェアで実施することができる。
【0057】
ここに述べる特徴は、デジタル電子回路、或いはコンピュータハードウェア、ファームウェア、ソフトウェア、又はそれらの組合せで実施することができる。これらの特徴は、プログラム可能なプロセッサにより実行するために、例えば、マシン読み取り可能な記憶装置又は伝播信号のような情報キャリアに明白に埋め込まれたコンピュータプログラム製品において具現化することができ、そして入力データに対して動作して出力を発生することにより前記実施形態のファンクションを遂行するためにインストラクションのプログラムを実行するプログラム可能なプロセッサにより方法ステップを遂行することができる。
【0058】
上述した特徴は、データ記憶システムからデータ及びインストラクションを受け取ると共にデータ記憶システムへデータ及びインストラクションを送り出すように結合された少なくとも1つのプログラム可能なプロセッサと、少なくとも1つの入力装置と、少なくとも1つの出力装置とを含むプログラム可能なシステムにおいて実行できる1つ以上のコンピュータプログラムにおいて具現化できるのが好都合である。コンピュータプログラムとは、コンピュータに直接的又は間接的に使用して、あるアクティビティを遂行するか又はある結果を得ることができるインストラクションのセットである。コンピュータプログラムは、コンパイルされた言語又は解釈された言語を含む任意の形態のプログラミング言語(例えば、Objective-C、Java)で書くことができ、そしてコンピューティング環境で使用するのに適したコンポーネント、サブルーチン又は他のユニットをスタンドアローンプログラム又はモジュールとして含む任意の形態で展開することができる。
【0059】
インストラクションのプログラムを実行するのに適したプロセッサは、例えば、任意の種類のコンピュータの、汎用及び特殊目的の両マイクロプロセッサ、単独プロセッサ又はマルチプロセッサ又はコアの1つを含む。一般的に、プロセッサは、リードオンリメモリ又はランダムアクセスメモリ或いはその両方からインストラクション及びデータを受け取る。コンピュータの本質的要素は、インストラクションを実行するためのプロセッサと、インストラクション及びデータを記憶するための1つ以上のメモリである。又、一般的に、コンピュータは、データファイルを記憶するための1つ以上の大量記憶装置を含むか、又はそれらと通信するように作動的に結合され、このような装置は、磁気ディスク、例えば、内部ハードディスク及び取り外し可能なディスクと、磁気-光学ディスクと、光学的ディスクとを含む。コンピュータプログラムインストラクション及びデータを明白に実施するのに適した記憶装置は、例えば、EPROM、EEPROM及びフラッシュメモリ装置のような半導体メモリ装置と、内部ハードディスク及び取り外し可能なディスクのような磁気ディスクと、磁気-光学ディスクと、CD-ROM及びDVD-ROMディスクとを含む全ての形態の不揮発性メモリを含む。プロセッサ及びメモリは、ASIC(特定用途向け集積回路)により補足することもできるし又はそれに組み込むこともできる。
【0060】
ユーザとの対話を与えるために、ユーザに情報を表示するためのディスプレイ装置、例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータへ入力を与えることのできるキーボード及びポインティング装置、例えば、マウス又はトラックボールとを有するコンピュータにおいて、これらの特徴を具現化することができる。
【0061】
又、データサーバーのようなバックエンドコンポーネントを含むか、アプリケーションサーバー又はインターネットサーバーのようなミドルウェアコンポーネントを含むか、或いはグラフィックユーザインターフェイス又はインターネットブラウザ或いはその組合せを有するクライアントコンピュータのようなフロントエンドコンポーネントを含むコンピュータシステムにおいて、これらの特徴を具現化することもできる。システムのこれらのコンポーネントは、通信ネットワークのような任意のデジタルデータ通信形態又は媒体によって接続することができる。通信ネットワークは、例えば、LAN、WAN、及びインターネットを形成するコンピュータ及びネットワークを含む。
【0062】
コンピュータシステムは、クライアント及びサーバーを含むことができる。クライアント及びサーバーは、一般的に、互いに離れており、典型的に、ネットワークを通して対話する。クライアント及びサーバーの関係は、各コンピュータにおいて実行されて互いにクライアント-サーバー関係を有するコンピュータプログラムによって生じる。
【0063】
多数の実施形態について説明した。それでも、種々の変更がなされ得ることを理解されたい。例えば、1つ以上の実施形態の要素を結合、削除、変更、又は補足して、更に別の実施形態を形成することができる。更に別の実施例として、図示された論理フローは、希望の結果を達成するのに、図示された特定の順序又は逐次の順序を必要とするものではない。更に、他のステップを設けてもよいし、又は上述したフローからステップを削除してもよく、更に、上述したシステムに他のコンポーネントを追加しても、又、そこから除去してもよい。従って、これら他の実施形態は、特許請求の範囲に包含される。
【符号の説明】
【0064】
100:ウェブページ
102:エレメント1(ノード1)
104:エレメント2(ノード2)
106:エレメント3(ノード3)
108:エレメント4(ノード4)
110:タッチ
112:タッチ
152:ノード0
154:ノード1
156:ノード2
158:ノード3
160:ノード4
200:ハードウェア
202:ドライバ
204:コアOS
206:コアファウンデーション
206:OS API
208:ファウンデーション
210:ウェブページSDK
212:アプリケーション
514:ワイドエリアネットワーク
516:ゲートウェイ
518:アクセスポイント
530:ネットワークリソース(ウェブサーバー)
図1A
図1B
図2
図3
図4
図5
図6