2016-06-29 7 views
0

私はコルソバで初心者です。今は初めてのCSS-HTML-JSアプリを学習するだけです。Cordovaで2回目のバックボタンを押した後にVoidアプリが終了する

document.addEventListener('backbutton',backMain,false); 

アプリがメインのリストを示しています。私は使用してボタンバックのAndroidを呼び出すと人物の

  • メインリスト
  • 人プロフィール

:私のアプリは二つのスクリーンを持っています。その後、私はメインリストのバックを押すと終了するためにこの関数で最初の呼び出しを置き換えようとします。

function backClose (e) 
{ 
    e.preventDefault(); 

    navigator.notification.confirm(
     'Do you want to close the app?', 
     function(rsp) 
     { 
      if (rsp == 2) 
      { 
       navigator.app.exitApp(); 
      }else{ 
       return; 
      }; 
     }, 
     'Close', 
     'No,Close' 
    ); 
}; 

document.removeEventListener('backbutton',backMain,false); 
document.addEventListener('backbutton',backClose,false); 

メインリストでは、戻るボタンを押すと終了するように求められます。これは問題ありませんが、私がプロファイル上にあるときにそれを押すと、アプリはメインに戻り、終了を求められます。

終了を要求せずにプロフィールの戻るボタンを押すと、メインリストに戻るようにアプリを設定するにはどうすればよいですか?

ありがとうございました。

ここでは、このアプリのために私の完全なJavaScriptコード:

var app = (function() { 

    var _timerPage = 0; 
    var _page = {}; 
    var _backMain = function(){}; 

    function xLoadingIcon (sltr) 
    { 
     $(sltr).html('<div class="loading-icon"></div>'); 
    }; 

    function xPersonsList() 
    { 
     var buttons = $('#persons-list-switch'), list = $('#persons-list'); 

     buttons.find('[rolid]').off('click tap').on('click top',function() 
     { 
      loadRol($(this).attr('rolid')); 
     }); 

     loadRol(buttons.find('[rolid]:eq(0)').attr('rolid')); 
     document.removeEventListener('backbutton',_backMain,false); 
     document.addEventListener('backbutton',backClose,false); 

     function backClose (e) 
     { 
      e.preventDefault(); 

      navigator.notification.confirm(
       '¿Quieres cerrar la aplicación?', 
       function(rsp) 
       { 
        if (rsp == 2) 
        { 
         navigator.app.exitApp(); 
        }else{ 
         return; 
        }; 
       }, 
       'Salir', 
       'No,Cerrar' 
      ); 
     }; 

     function loadRol (rolid) 
     { 
      buttons.find('[rolid]').removeClass('active'); 
      buttons.find('[rolid="' + rolid + '"]').addClass('active'); 
      xLoadingIcon(list); 

      var rqs = { 
       exe: 'rol_list', 
       rolid: rolid 
      }; 

      utilities.formPost({ 
       request: rqs, 
       success: function(rsp) 
       { 
        console.dir(); 

        var htm = utilities.templateDOM({ 
         template_selector: '#template-persons-list', 
         data: rsp.data 
        }); 

        list.html(htm); 
       } 
      }); 
     }; 
    }; 

    function xPersonInfo (a) 
    { 
     var box = _page.profile, boxBio = box.find('#person-bio'), boxBack = box.find('#back-button'); 
     var username = a.getAttribute('username'); 

     xLoadingIcon(boxBio); 
     box.scrollTop(0); 

     clearTimeout(_timerPage); 
     _timerPage = setTimeout(function() 
     { 
      _page.persons.css('left','-100%'); 
      _page.profile.css('left','0%'); 
     },300); 

     var rqs = { 
      exe: 'person_info', 
      username: username 
     }; 

     utilities.formPost({ 
      request: rqs, 
      success: function(rsp) 
      { 
       var data = rsp.data; 
       data.photo = data.photo ? '<div class="photo"><img src="' + data.photo + '" alt=""></div>' : ''; 

       var htm = utilities.templateDOM({ 
        template_selector: '#template-person-bio', 
        data: data 
       }); 

       boxBio.html(htm); 
      } 
     }); 

     boxBack.off('click tap').on('click tap',_backMain); 
     document.addEventListener('backbutton',_backMain,false); 
    }; 

    function xIni() 
    { 
     document.addEventListener('deviceready',function() 
     { 
      _page.persons = $('#page-persons'); 
      _page.profile = $('#page-profile'); 

      _backMain = function(e) 
      { 
       e.preventDefault(); 
       _page.persons.css('left','0%'); 
       _page.profile.css('left','100%'); 
      }; 

      StatusBar.backgroundColorByHexString("#1F303F"); 
      $('#page-profile').bind('swipeleft swiperight',_backMain); 
      xPersonsList(); 
     },false); 
    }; 

    return { 

     ini: xIni, 

     personInfo: xPersonInfo 

    }; 
})(); 

答えて

0

私はあなたがちょうどあなたが_backMainを追加した後、あなたの2番目のリスナーを削除するのを忘れたと思います。

document.addEventListener('backbutton',_backMain,false); 
document.removeEventListener('backbutton',backClose,false); 
関連する問題