Выход из приложения НЕ работает при нажатии кнопки «Назад» в приложении для Android (Phonegap & AngularJS)

0

Я новичок в App dev, используя AngularJs и PhoneGap, поэтому я могу делать что-то неправильно (пожалуйста, исправьте). Моя цель - сделать выход App, если кто-либо нажал BackButton в Android, когда /viewInitialDepartments активен (т.е. когда пользователь находится в этом представлении). Соответствующие коды:

На моей странице index.html: -

<!DOCTYPE html>
<html>
<meta name="viewport" content="width=device-width,height=device-height,  initial-scale=1.0, maximum-scale=1.0, user-scalable=0" >
<meta http-equiv="x-ua-compatible" content="ie=10">
<meta name="msapplication-tap-highlight" content="no" >
<link rel="stylesheet" href="/module-reset.css" ><link rel="stylesheet"  href="/module-grid.css" ><link rel="stylesheet"  href="/module-all.css" ><link rel="stylesheet"  href="/module-transitions.css"><link rel="stylesheet"  href="/module-custom.css" >  <link rel="stylesheet" href="/styleMenu.min.css">
<title>ad</title>
<script type="text/javascript" src="/cordova.js"></script> 
</head>
<body ng-cloak ng-app="askDadaApp">

<div id="mainBodyWrapper">
<div class="page {{ pageClass }}" ng-view></div>
</div>
<script src="/angular.min.js"></script>
<script src="/angular-route.js"></script>
<script src="/angular-animate.js"></script>
<script src="/angular-touch.js"></script>
<script src="/ngprogress.min.js"></script>
<link rel="stylesheet"  href="/ngProgress.css" >
<script src="/script-controller.js"></script>
</body>
</html>

Из моей страницы Angular JS Contol (script-controller.js): -

var adApp = angular.module('adApp',['ngRoute', 'ngAnimate','ngTouch','ngProgress']);
adApp.config(function($routeProvider,  $locationProvider) {

$routeProvider
.when('/', {templateUrl: 'views/1-setconnection.html',controller: 'setController' })
.when('/viewInitialDepartments', {templateUrl: 'views/2-viewInitialDepartments.html',controller: 'viewInitialDepartmentsController' })
.when('/offLine', { templateUrl: 'views/1-offLine.html',controller:'offLineController'})
});
// CONTROLLERS
adApp.controller('offLineController', function($scope,  $http, $location, $routeParams ) { $scope.pageClass = 'normal';var notOnlineToast = document.getElementById("notOnlineToast");notOnlineToast.style.display="block";
});
adApp.controller('setController', function($scope, $http, $location) {
var typeList = "CHECKCONNECTION";
$http.get("URL/php/fetchData.php?typeList=" + typeList )
.error(function(response) {$location.path('/offLine');
// if not offline then go to Home View (viewInitialDepartments)
$location.path('/viewInitialDepartments');
});
adApp.controller('viewInitialDepartmentsController', function($scope,  $http, $location, $routeParams) {
var typeList = "CHECKCONNECTION";
$http.get("URL/php/fetchData.php?typeList=" + typeList )
.error(function(response) {
$location.path('/offLine');
});
// REST OF THE CODE
});

Мой файл config.xml имеет объявление: -gap: имя плагина = "org.apache.cordova.dialogs"

Теперь дело в том, что мне нужно знать, как сделать выход App при нажатии BackButton на Android-телефоне, когда пользователь находится в /viewInitialDepartments. Пожалуйста, помогите. (Все остальное работает нормально, как ожидалось.)

EDIT - я думаю, это можно было бы сделать с помощью document.addEventListener("deviceready", onDeviceReady, false); и document.addEventListener("backbutton"), но не знаю, как это сделать в моем нынешнем коде как таковой, что backButton делает то, что он делает для всех других видов, и просто закрывает приложение только в режиме просмотра /viewInitialDepartments.

Теги:
cordova
back-button

1 ответ

0

Определение глобальной переменной для хранения текущего имени маршрута (просмотра)

var CURRENT_ROUTE; 

Назначить значение CURRENT_ROUTE при изменении маршрута

var adApp = angular.module('adApp',['ngRoute', 'ngAnimate','ngTouch','ngProgress']).run([
    '$rootScope',
    function ($rootScope) {
        $rootScope.$on('$routeChangeStart', function (event, next) {
            CURRENT_ROUTE = next;
        });
    }]);

Выполнить действие на кнопке "Назад"

document.addEventListener("backbutton", function(){
   if(CURRENT_ROUTE === yourviewname){
      navigator.app.exitApp(); // exit app
   }
}, false);
  • 0
    Но это применимо ко всем представлениям, мне просто нужно выйти из приложения, когда оно ТОЛЬКО в представлении / viewInitialDepartments только. Это означает, что код для выхода из приложения должен находиться внутри контроллера viewInitialDepartmentsController. Пожалуйста, предоставьте такое решение, спасибо заранее.
  • 0
    document.addEventListener ("кнопка", функция () {if (CURRENT_ROUTE === 'viewInitialDepartments') {navigator.app.exitApp (); // выход из приложения}}, false); это все, что вам нужно

Ещё вопросы

Сообщество Overcoder
Наверх
Меню