Hi… How can i close application using button ionic 2.
Try this:
Html:
<button ng-click="exitApp()">Close application<button>
js:
$scope.exitApp = function() {
ionic.Platform.exitApp();
})
The question was on Ionic 2 so you can’t use $scope
I cant use $scope in Ionic2
This is the correct way in ionic 2
Html:
<button (click)="exitApp()">Close application<button>
TS:
import {Platform} from 'ionic-angular';
@Page({ /*...*/ })
export MyPage {
constructor(platform: Platform) {
this.platform = platform;
}
exitApp(){
this.platform.exitApp();
}
}
I just want to add a few notes to the following answer:
- An additional Cordova plugin might be needed:
- And AFAIK it’s not possible/recommended on iOS:
navigator.app.exitApp()
does not work on iOS, only Android. On iOS, Apple does not allow apps to programmatically exit. It can be done through iOS Objective-C side but there’s a good chance this app will be rejected in Apple app store.
- Therefore, I would not recommend you to do it and to rethink your UI instead:
Hi Tushar!
This is the way it work for me on Android
Best regards.
navigator[‘app’].exitApp();
import 'es6-shim';
import {Component, Inject, ViewChild} from '@angular/core';
import {Platform, NavController,ionicBootstrap} from 'ionic-angular';
import {StatusBar} from 'ionic-native';
import {TabsPage} from './pages/tabs/tabs';
import {LoginPage} from './pages/login/login';
import {DataService, fb} from './lib/data.service';
@Component({
template: `
<ion-nav #rootNavController [root]="rootPage"></ion-nav>`,
providers:[DataService]
})
export class MyApp {
@ViewChild('rootNavController') nav:NavController;
private rootPage:any;
constructor(public _data:DataService, private platform:Platform) {
this.rootPage = TabsPage;
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
StatusBar.styleDefault();
document.addEventListener('backbutton', () => {
let activeVC = this.nav.getActive();
let page = activeVC.instance;
if (!(page instanceof TabsPage)) {
if (!this.nav.canGoBack()) {
console.log('Exiting app due to back button press at the root view');
return navigator['app'].exitApp();
} else if (page instanceof LoginPage) {
console.log('Saliendo de la aplicacion para evitar ingresar sin registrarse');
return navigator['app'].exitApp();
}
console.log('Detected a back button press outside of tabs page - popping a view from the root navigation stack');
return this.nav.pop();
}
let tabs = page.tabs;
let activeNav = tabs.getSelected();
if (!activeNav.canGoBack()) {
console.log('Exiting app due to back button press at the bottom of current tab\'s navigation stack');
return navigator['app'].exitApp();
}
console.log('Detected a back button press - popping a view from the current tab\'s navigation stack');
return activeNav.pop();
}, false);
});
}
}
ionicBootstrap(MyApp)
The plugin describe here, is not longer available, another way to do it on Android?
this.platform.exitApp()
still works for me
this.platform.exitApp() doesn’t work
What happens? Any errors?
Never mind I got it to work. my apk was not up to date. Thanks @andrewgy8.
BTW Do you know a method to hide the application ?
but not on ios i was unable to do that on ios emulator
this.platform.exitApp();
Is not working anymore since Ionic V4. What is the new way to do this ?
@MrWhite : try
navigator[‘app’].exitApp();
Thanks It worked like a charm
Hi this is giving run time error to me in Ionic 4 "core.js:15724 ERROR TypeError: Cannot read property ‘exitApp’ of undefined’. Anything wrong with below code?
ionViewWillLeave() {
alert(‘ionViewWillLeave’);
if (this.commonService.checkLogin) {
if (this.router.url === ‘/app-landing’) {
navigator[‘app’].exitApp();
}
if (this.router.url === ‘/login’) {
return navigator[‘app’].exitApp();
}
}
It is also working. i just tested in my android device.
this.platform.exitApp()
Hope you know:
import { Platform } "ionic-angular";
and all
Have you tested in ionic 4?. Because in ionc 4 this.platform.exitApp() giving below error “Property ‘exitApp’ does not exist on type 'Platform”
Swap with navigator[‘app’].exitApp()
as suggested many times before