補記⑧アプリ終了時のイベント
最初にごめんなさいしておきますが、モバイルアプリではうまく行かなかったです。
とは言え、なかなか興味深い話なので書いておきます。
前項でOnInitなるものが出ましたが、終了時に何かできないか?と思うのは当然かと思います。
ブラウザアプリでは、条件付きで以下の方法でうまく行きました。
"src\app\home\home.page.ts"
---------------------------------------------------------------
import { Component, OnInit , HostListener} from '@angular/core';
中略
@HostListener('window:beforeunload', ['$event'])
onWindowClose(event: any): void {
// 終了時間をローカルストレージに書き出す
const testDate = new Date(Date.now());
testDate[Symbol.toPrimitive]('string');
this.storage.set(this.strDestroyKey,String(testDate));
event.preventDefault();
event.returnValue = false;
}
---------------------------------------------------------------
それで、この方法ですがブラウザアプリ側では(先ほども書いた通り)条件付きでは動作します。
皆様もたまに見たことがあると思いますが、この画面から移動しますか?と言うダイアログが出るあれです。
以下のサイトで納得したのですがユーザーが何か入力を行った時のみ出るんですね。
beforeunload のダイアログが出現しないことがある
https://www.bugbugnow.net/2022/01/beforeunload-dialog.html
先ほど、うっかり新規入力を画面遷移で消してしまった私としてはなろうでも実装して欲しい所ですが、実に勉強になりました。
ただし、ionicアプリをAndroidStudioで変換したAndroidアプリでは効果が出ませんでした。
(ミスしただけの可能性もある)
以上、昨日今日の新たな知見でした。




