Web開発を行う際にはコンテンツのロード、DOMの構築完了など様々なイベントがあります。通常、それらのイベントリスナーを使ってイベントを検知し、処理を書くと思います。
アプリカンについても同様で様々なイベントが用意されています。さらにそれはWebだけでなくアプリ独自のイベントもあります。イベントを知ることでより優れたアプリが開発できるようになるはずです。
プラットフォーム準備完了
document.addEventListener("deviceready", onDeviceReady, false);
基本的にアプリカンで動作するコードを書く際にはこのイベント処理が通知されている中で行ってください。デバイス情報などの取得はdevicereadyが終わっていないとできません。
バックグラウンド/復帰
バックグラウンド動作になったとき
document.addEventListener("pause",yourCallbackFunction, false);
一時的に処理をとめたりするのに使えます。バックグラウンドに入った状態でメモリを消費していると自動的に切られることがあるのでメモリ解放にも使えます。
バックグラウンドから復帰したとき
document.addEventListener("resume",yourCallbackFunction, false);
逆に復帰した場合です。データの復元などに使えます。
ネットワーク状態
オンライン(インターネットに接続)になったとき
document.addEventListener("online", yourCallbackFunction, false);
個別の処理の中では applican.connection.type
を使って判別することもできますが、こちらはグローバルなイベントになります。
オフライン(インターネットに接続)になったとき
document.addEventListener("online",yourCallbackFunction, false);
逆にオフラインになった場合です。
Android特有
以下のイベントはAndroid特有になります。ハードウェアボタンに関するものです。
戻るボタンを押したとき
document.addEventListener("backbutton",yourCallbackFunction, false);
メニューボタンを押したとき
document.addEventListener("menubutton",yourCallbackFunction, false);
検索ボタンを押したとき
document.addEventListener("searchbutton",yourCallbackFunction, false);
ボリュームダウンボタンを押したとき
document.addEventListener("volumedownbutton",yourCallbackFunction, false);
ボリュームアップボタンを押したとき
document.addEventListener("volumeupbutton",yourCallbackFunction, false);
バッテリー
バッテリーの状態によってイベント通知もできます。以下の引数がオブジェクト形式で渡されます。
- level バッテリーの残量 0~100
- isPlugged 充電ケーブルが接続されているか trueまたはfalse
バッテリー残量が危険な閾値に達したとき
document.addEventListener("batterycritical",yourCallbackFunction, false);
バッテリー残量が低下したとき
document.addEventListener("batterylow",yourCallbackFunction, false);
バッテリーのステータスが変化したとき
document.addEventListener("batterystatus",yourCallbackFunction, false);
その他
タブが表示されたとき
こちらはアプリカンアプリ特有のXMLベースのタブを表示したタイミングで呼ばれます。コンテンツの差し替えなどに使えます。
document.addEventListener("appear", onAppear, false);
画面が回転したとき
画面の縦横が変化したタイミングで呼ばれます。引数は向きが渡されます。
- orientation 画面の向き PORTRAIT(縦)又は LANDSCAPE(横)
document.addEventListener("orientationchanged",yourCallbackFunction, false);
これらのイベントはタップやスワイプなどのユーザ主導ではないイベントも含まれます。使いこなすことでユーザビリティを高められるのではないでしょうか。