Cordovaアプリで終了確認ダイアログを出すよ
まさかの連続Cordova記事です。
Cordovaを利用しAndroidのアプリを実機テストしていると、戻るボタンが押された時アプリの終了確認をしてほしいなと思ったので、その方法を備忘録的にまとめておこうと思います。めんどくさそうですが、Cordovaのプラグインを使うと意外と簡単にできちゃいます。
Cordova : 6.4.0
OS : MacOS Sierra
1. プラグインのインストール
さて、今回はダイアログを出して終了確認を行うので、簡単にダイアログを出すことができるCordovaプラグインをインストールしちゃいます。インストールにはいつも通り以下のようなコマンドを使います。
1 |
$ cordova plugin add cordova-plugin-dialogs |
上記のコマンドで簡単にインストールできると思いますが、追加しているプラットフォームによって、一手間かけないといけないかもしれません。というのも、自分の環境では、上記のコマンドを実行すると「一回 iosのプラットフォームを消してやり直せ」(実際の英文はメモし忘れました)という文言が出力されました。というわけで、文言と一緒に出力されていた以下のコマンドを実行しました。
1 2 3 |
$ cordova plugin save $ cordova platform rm ios $ cordova platform add ios |
2. ダイアログのコードを書く
では、ダイアログを表示させるためのコードを書いていきます。今回書き込んだのはCordovaプロジェクト作成時に生成されるindex.jsです。このファイルに以下のコードを追記しちゃってください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
onDeviceReady: function() { this.receivedEvent('deviceready'); /*** 追記ここから ***/ document.addEventListener("backbutton", onBackClickEvent, false); function confirmCallback(id) { if (1 == id) { //終了のボタンが押されたら navigator.app.exitApp(); //アプリ終了 } } function onBackClickEvent() { navigator.notification.confirm ( // 確認用ダイアログを表示 "アプリケーションを終了しますか?", // 本文 confirmCallback, "終了確認", // タイトル "終了,キャンセル" // ボタンの表示名 ) } /*** 追記ここまで ***/ }, |
上記のコードように、index.jsに記述されているonDevicereadyに登録している関数内の”/*** 追記ここから ***/”から” /*** 追記ここまで ***/”までの箇所を追加してください。
以上です。
あとは実機で確認すると、戻るボタンを押すと終了確認ダイアログが出力されたと思います。
おわりに
というわけで、終了確認ダイアログの表示方法を書いてきました。意外と簡単にできる割に誤操作でのアプリ終了を回避できるので、実装しておいて損はないと思います。