PhoneGapで手軽にiPhone/Androidアプリを作ろう

第3回 PhoneGapを支えるAPIたち~jQuery Mobileでメモ帳アプリ

この記事を読むのに必要な時間:およそ 7 分

前回はHello, Worldアプリケーションの作成とビルド,PhoneGap:Buildの使い方を紹介しました。今回はPhoneGapを支える各種APIの紹介と,jQuery Mobileを用いたメモ帳アプリを実際に作成してみるところまでを紹介していきたいと思います。

PhoneGap APIの紹介

それではPhoneGap APIといくつかのメソッド・オブジェクトをチェックしてみましょう。

Accelerometer(モーションセンサ)

デバイスのモーションセンサにアクセスし,端末がどの方向に動いたかの情報を取得します。対応しているおもなプラットフォームはAndroid,BlackBerry WebWorks(OS 5.0以上)⁠iOSの3種です。

accelerometer.getCurrentAcceleration
X/Y/Z軸の傾きとタイムスタンプを取得します
accelerometer.watchAcceleration
指定した時間間隔におけるX/Y/Z軸の加速度とタイムスタンプを取得します
accelerometer.clearWatch
accelerometer.watchAccelerationで使用するwatchIDを指定し,加速度情報の監視を中止します

Camera(カメラ)

デバイスのデフォルトカメラアプリケーションにアクセスし,イメージデータを取得します。カメラを使って写真を撮るか,デバイスのフォトアルバムからファイルを取得します。イメージデータはBase64エンコードされた文字列か,イメージファイルが格納されているパスのURIとして取得することが可能です。対応しているおもなプラットフォームはAndroid,BlackBerry WebWorks(OS 5.0以上)⁠iOSの3種です。

camera.getPicture
デバイスのデフォルトカメラアプリケーションか,アルバム内よりイメージデータを取得します。写真の撮影を行うと,カメラアプリケーションは終了して元のアプリケーションに戻ります

図1 navigator.camera.getPictureのオプション「sourceType」に"navigator.camera.PictureSourceType.PHOTOLIBRARY"を指定した場合,デバイスのフォトアルバムが開く

図1 navigator.camera.getPictureのオプション「sourceType」

Capture(マイク録音/カメラ撮影)

HTML5のCapture APIを利用してデバイスのマイクやカメラにアクセスし,録音・写真/動画の撮影を行います。対応しているおもなプラットフォームはAndroid,BlackBerry WebWorks(OS 5.0以上)⁠iOSの3種です。

Capture
キャプチャオブジェクト。navigator.deviceに割り当てられ,グローバルスコープを持っています。capture.captureAudioで録音を,capture.captureImageで写真撮影を,capture.captureVideoで動画撮影を行います
ConfigurationData
デバイスがサポートしているメディアキャプチャのパラメータ一式をカプセル化します
MediaFile
メディアファイルに関するプロパティをカプセル化します
MediaFileData
メディアファイルに関するフォーマット情報をカプセル化します

図2 navigator.device.capture.captureAudio()でレコーダーアプリを起動

図2 navigator.device.capture.captureAudio()でレコーダーアプリを起動

Compass(コンパス)

デバイスが向いている方向を取得します。対応しているおもなプラットフォームはAndroid,iOSの2種です。

compass.getCurrentHeading
現在のコンパスの向きを検出します。方角は0から359.99の範囲の数値として返ります
compass.watchHeading
指定した時間間隔におけるコンパスの向きを検出します
compass.clearWatch
compass.watchHeadingで使用するwatchIDを指定し,コンパスの監視を中止します

図3 iPhone実機でコンパスの向きを取得

図3 iPhone実機でコンパスの向きを取得

Connection(回線情報)

デバイスが利用している回線情報(Ethernet,WiFi,2G,3G,4G)を取得します。対応しているおもなプラットフォームはAndroid,BlackBerry WebWorks(OS 5.0以上)⁠iOSの3種です。

connection.type
デバイスのネットワーク接続の状態,接続の種類を取得します

図4 prettyPrint.jsでconnectionオブジェクトを展開。WiFi接続の場合は"wifi"と返る

図4 prettyPrint.jsでconnectionオブジェクトを展開。WiFi接続の場合

著者プロフィール

富田宏昭(とみだひろあき)

株式会社キクミミでFileMaker/SQLiteを使ったWebアプリ開発に従事しながら,オープンソースソフトウェアのハウツー記事執筆を行う。趣味は横乗り系スポーツ,美術館めぐり,高速ジャンクション鑑賞。

コメント

コメントの記入