19192


monacaでandroidアプリを開発しています。  
アプリの動きでよくあるような  
backキー(戻るボタン)を押す→  
ダイアログ表示→「終了しますか？」「キャンセル」

  * 終了しますかを押すとアプリ終了
  * キャンセルを押すとアプリに戻る

のような形にしたいと考えているのですが・・・

[code]

    document.addEventListener("backbutton", onBackPressed, false);
    
    function onBackPressed(){
        confirmExit()
    }
    
    function confirmCallback(id){
        if(1 == id){
            navigator.app.exitApp();
        }
    }
    
    function confirmExit(){
        navigator.notification.confirm("アプリケーションを終了しますか？",  confirmCallback, "終了メニュー", "終了,キャンセル")
    }
    
[/code]

上記のコードで理想通りの形になったのですが、いざアプリをビルドすると全く動きません。  
何が悪いのでしょうか？

初心者のため解決方法をコードにて教えていただきたいです。  
よろしくお願いいたしますm(__)m

* * *

Myakuさんにご指摘いただいた通り以下のコードでやってみましたがやはりダメでした。  
ビルドする前（デバッカー上）は、戻るを押すとダイアログが表示され、終了を押せば終了、キャンセルでダイアログが消えるのですが、ビルド後は戻るを押してもダイアログが表示されず、また戻ることもできなくなる→戻るボタンが機能しなくなる状態です。  
`index.html`含め、全3ページで構成しているのですが、全ページで戻るボタンが効かなくなります。  
その他は特に異常はありません。エラーも出ていない状態です。  
ページ内容に問題があるのかと思い、リンク用ボタンのみ配置してみましたが、やはりビルド後は戻るボタンが効かなくなる状態です。  
どうぞよろしくお願いしますm(__)m

[code]

    document.addEventListener(
        "deviceready", 
        function(){
            document.addEventListener("backbutton", onBackPressed, false);
        }, 
        false
    ); 
    function onBackPressed(){ confirmExit(); } 
    function confirmCallback(id){
        if(1 == id){ navigator.app.exitApp(); }
    } 
    function confirmExit(){ 
        navigator.notification.confirm(
            "アプリケーションを終了しますか？", 
            confirmCallback, 
            "終了メニュー", 
            "終了,キャンセル"
        );
    }
    
[/code]


CC BY-SA 3.0
2015-11-22T04:16:38.753
19157
2015-11-24T06:46:00.483
2015-11-24T06:46:00.483
7290
13364
question
javascript android monaca cordova
Backキーでアプリを終了させたいです


`deviceready`後にEventListenerを登録していますか？

[code]

    document.addEventListener(
        "deviceready", 
        function(){document.addEventListener("backbutton", onBackPressed, false);},
        false
    );
    
[/code]

また、

> いざアプリをビルドすると全く動きません。

と言った質問ですと現象が理解しがたいです。  
全く動かないとは

  * ビルドができない
  * アプリを起動できない
  * バックボタンを押した際に意図しない動作をする
  * バックボタンを押した際にページが戻る
  * バックボタンを押しても反応が無い

など詳しく回答ができるはずです。  
また、起動時なのか遷移後なのかでバックボタンの挙動も変わるので  
`index.html`か否かも参考情報になります。  
エラーが出ている場合はエラーの内容を詳しく添付してください。

* * *

**追記**  
・ビルドした後のみ動作しない。  
・戻るボタン押下時にダイアログが出ない  
の追加情報を受け考えたところ  
`navigator.notification`のプラグインを追加していない可能性があります。

`設定`>`Cordovaプラグインの管理`>`Notification (org.apache.cordova.dialogs)`

以上を有効にしてください。


CC BY-SA 3.0
2015-11-23T06:43:23.703
19192
2015-11-24T03:52:33.080
2015-11-24T03:52:33.080
19157
answer