2016-07-04 2 views
1

Я создаю гибридное мобильное приложение, используя кордову, и я новичок в этом.Как управлять функциональностью кнопки «Назад» для гибридного мобильного приложения с использованием кордовы

Здесь я хочу выйти из приложения Android, если пользователь дважды нажимает кнопку «Назад» на домашней странице, но я не могу справиться с функциональностью кнопки «Назад».

Может ли один скажите мне, как обращаться назад функциональные кнопки для конкретной страницы

Это мой index.html

<!DOCTYPE html> 

<html> 
    <head> 

     <meta name="format-detection" content="telephone=no"> 
     <meta name="msapplication-tap-highlight" content="no"> 
     <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> 
     <link rel="stylesheet" type="text/css" href="css/index.css"> 
     <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"> 
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script> 
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> 
     <title>Hello World</title> 
    </head> 
    <body> 
    <div id="main" data-role="page"> 
     <div class="app"> 
      <h1>Apache Cordova</h1> 
      <div id="deviceready" class="blink"> 
       <p class="event listening">Connecting to Device</p> 
       <p class="event received">Device is Ready</p> 
      </div> 
     </div> 
     </div> 
     <script type="text/javascript" src="cordova.js"></script> 
     <script type="text/javascript" src="js/index.js"></script> 
    </body> 
</html> 

Это мой index.js:

var app = { 
    // Application Constructor 
    initialize: function() { 
     this.bindEvents(); 
    }, 

    bindEvents: function() { 
     document.addEventListener('deviceready', this.onDeviceReady, false); 
      document.addEventListener("backbutton", function() { 
       if ($('.ui-page-active').attr('id') == 'main') { 
        exitAppPopup(); 
       } else { 
        history.back();    
       } 
      }, false); 
    }, 
      onDeviceReady: function() { 
     app.receivedEvent('deviceready'); 
    }, 
    // Update DOM on a Received Event 
    receivedEvent: function(id) { 
     var parentElement = document.getElementById(id); 
     var listeningElement = parentElement.querySelector('.listening'); 
     var receivedElement = parentElement.querySelector('.received'); 

     listeningElement.setAttribute('style', 'display:none;'); 
     receivedElement.setAttribute('style', 'display:block;'); 

     console.log('Received Event: ' + id); 
    }, 
     function exitAppPopup() { 
     navigator.notification.confirm(
       'Exit PhoneGap ' + device.cordova + ' Demo?' 
      , function(button) { 
        if (button == 2) { 
         navigator.app.exitApp(); 
        } 
       } 
      , 'Exit' 
      , 'No,Yes' 
     ); 
     return false; 
    } 
}; 

app.initialize(); 
+0

Любая ошибка в консоли? – Rayon

+0

Ошибка в консоли. Я следил за ссылкой -> http://ventusmoso.com/phonegap/jquerymobile/add-an-exit-menu-to-mobile-app-built-in-phonegap-and-jquery- мобильный/учебник, но. Я не получил никакого ответа – lakshmansundeep

+0

Попробуйте поставить предупреждение и проверить, где он ломается ... – Rayon

ответ

0
<script type="text/javascript" src="cordova.js"></script> 
<script> 
document.addEventListener("deviceready", onDeviceReady, false); 
function onDeviceReady() 
{ 
if (navigator.userAgent.match("Android")) 
{ 
    document.addEventListener("backbutton", onBackKeyDown, true); 
} 
} 
function onBackKeyDown(e) 
{ 
if (window.location.hash === "#You page name") 
{ 
    navigator.app.exitApp(); 
} 
else 
{ 
    window.history.back(); 
} 


} 
+0

его не работает чувак – lakshmansundeep

+0

какая ошибка вы получаете –

-1

Попробуйте следующее:

document.addEventListener("backbutton", function(e){ 
if($.mobile.activePage.is('#homepage')){ 

    navigator.app.exitApp(); 
} 
else { 
    navigator.app.backHistory() 
} 
}, false); 
Смежные вопросы