$ ionicView.leave не запускается, если я закрываю вкладку из браузера или нажимаю кнопку домой с мобильного устройства. Меня это поразило из-за этого.
Он вызывается, если я оставляю экран в приложении. Я хочу, чтобы пользователь нажал кнопку "домой" или оставил функцию вкладки.
$scope.$on('$ionicView.leave', function(){
Meteor.settings.public.global_stop_pool_messages = '';
Meteor.settings.public.global_stop_pool_messages = true;
//START CLOSE CHAT
Meteor.call("closeChat", vm.chat_data, function(error, result){
if(error){
vm.chat_data.curr_secured_session_id = null;
Toastr.show(error.reason, 'error');
return false;
} else {
Meteor.settings.public.global_stop_pool_messages = '';
Meteor.settings.public.global_stop_pool_messages = true;
vm.chat_data.curr_secured_session_id = null;
}
});
vm.chat_data = {
last_message_id : 0,
close_chat : true
}
/// START FEtCHING AGENT MESSAGES BY CALLING GET PENDING MESSAGES CALL
Meteor.setTimeout(function(){
///
Meteor.settings.public.global_stop_pool_messages = '';
Meteor.settings.public.global_stop_pool_messages = true;
Meteor.call("poolPendingMessagesOfChat", vm.chat_data, function(error, result){
if(error){
} else {
}
});
///
}, 1 * 1000);
});
Событие, которое вы слушаете, описывается следующим образом:
Вид завершен, и он больше не является активным видом. Это событие будет срабатывать, будет ли оно кэшировано или уничтожено.
Но представление по-прежнему остается активным, но веб-сайт или приложение больше не находятся на переднем плане. Если вы используете Ionic как приложение, а не внутри веб-браузера, вы можете использовать события, которые предоставляет Кордова, например, pause
чтобы узнать, нажал ли кто-нибудь кнопку дома, так как приложение будет приостановлено из-за того, что оно находится в фоновом режиме.
Поскольку вы используете Angular-Meteor, я бы порекомендовал вам посмотреть эту документацию, которая показывает, как вы регистрируетесь на событиях Кордовы, используя $ionicPlatform
.
$ionicView.leave
в своем коде?