アプリ・ウィンドウイベント

仕様がまったくつかめない。 Android,iOS,tabgroup,createwindowのurl使用の可否で動きが異なる。

open

  • ウィンドウでopenイベントが発行されたときに呼ばれる。
  • Tabに関連づけられたWindowの場合はじめてタブが開かれたときに呼ばれる。
  • コンストラクタ内で処理をすればいいのでこのイベントは使わなくて良い。

focus

  • Tabに関連づけられたWindowの場合は、タブが開かれるたびに呼ばれる。
  • 既知の問題
tabGroup.addEventListener('focus', function(event) {
  //ただしactiveTab自体も正常に拾えないこともありますので別のhackを使ってactiveTabもとる必要があるでしょう
  //またイベント名がfocusのままだと元々あるイベントとかぶるため2度呼ばれることになるので、イベント名を変えるなどの対応が必要です
  tabGroup.activeTab.window.fireEvent('focus', {});
});

blur

Tabに関連づけられたWindowの場合は、タブから外れるたびに呼ばれる。

メニューボタンでバックグランドに回った場合などには呼ばれない。

close

明示的にアプリを閉じた場合はcloseが呼ばれるが、強制終了の場合は呼ばれない。

メニューボタンでバックグランドに回った場合などには呼ばれない。

iOSのアプリオープン・クローズの取得

Androidのアプリオープン・クローズの取得

Androidはアプリを停止することができますが、停止しない場合はバックグラウンドに回ります。

正式ドキュメントではTi.Android.currentActivity.addEventListenerを使って“pause”,“resume”を使うように書いてありますが、 以下のドキュメントにあるように、実際2.02でも実際1度しか呼ばれません。

Android: Activity related events fire only once for tabgroup activity

Windowオブジェクトにイベントをつけるとキャッチすることができます。

   if(Titanium.Platform.name == 'android') {
		window.activity.addEventListener('pause', function(e) {//バックエンド
			Ti.API.info("pause");
		});
		window.activity.addEventListener('resume', function(e) {//バックエンドから復帰
			Ti.API.info("resume");
		});
   }
  • TabGroupを使っている場合はTabGroupにWindowを追加した後でなければaddEventListenerがないとエラーが出ます。
  • この方法ではタブを切り替えたりしてもイベントが発行されます。(通常のfocus,blurの代わりに使うということもできます)
titanium/window_event.txt · 最終更新: 2012/06/30 07:36 (外部編集)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0