Botón posterior iónico

Tengo la aplicación básica de Ionic que he desactivado el botón de nuevo en la aplicación, ¿hay una razón por la que el botón de nuevo todavía funciona en un dispositivo Android?

Actualmente estoy probando con visión iónica.

Aquí está mi código:

.run(function($ionicPlatform) { $ionicPlatform.ready(function() { // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard // for form inputs) if(window.cordova && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); } if(window.StatusBar) { // org.apache.cordova.statusbar required StatusBar.styleDefault(); } }); $ionicPlatform.registerBackButtonAction(function(e) { e.preventDefault(); }, 101); }) 

Según la documentación iónica

Su acción de botón de retroceso anulará cada una de las acciones anteriores cuya prioridad es menor que la prioridad que proporciona.

Y dado que desea desactivar completamente el botón de retroceso en todas las situaciones, y que la prioridad más alta de las acciones en la lista de referencia es 500, debe proporcionar un valor de prioridad superior a 500, 600 por ejemplo. El código siguiente debe funcionar cuando se coloca en $ ionicPlatform.ready ()

  $ionicPlatform.registerBackButtonAction(function(e) {}, 600); 

Para cualquiera que intente ordenar esto en Ionic 2:

http://www.codingandclimbing.co.uk/blog/ionic-2-android-back-button-13

Y aquí está la información real del poste:

En tu app.ts, haz lo siguiente para que el botón de retroceso funcione como se esperaba (principalmente!):

  initializeApp() { this.platform.ready().then(() => { this.registerBackButtonListener(); }); } registerBackButtonListener() { document.addEventListener('backbutton', () => { var nav = this.getNav(); if (nav.canGoBack()) { nav.pop(); } else { this.confirmExitApp(nav); } }); } confirmExitApp(nav) { let confirm = Alert.create({ title: 'Confirm Exit', message: 'Really exit app?', buttons: [ { text: 'Cancel', handler: () => { console.log('Disagree clicked'); } }, { text: 'Exit', handler: () => { navigator.app.exitApp(); } } ] }); nav.present(confirm); } getNav() { return this.app.getComponent('nav'); } 

Nota:

Si obtienes errores de que la aplicación no es una propiedad de navegador :

1) Agregue una carpeta de tipings a la raíz de su aplicación: por ejemplo, app / typings

2) Agregue un archivo llamado: pluginshackyhacky.d.ts

3) Agregue las propiedades que necesita extendidas para que TypeScript compile .:

 interface /*PhoneGapNavigator extends*/ Navigator { app: any; } 

4) Agregue el pluginshackyhacky.d.ts a la compilación en el tsconfig.json :

  "files": [ "app/app.ts", "app/typings/pluginshackyhacky.d.ts", "app/typings/phonegap.d.ts" ] 

Puede ver que también he incluido el archivo phonegap.d.ts que incluye muchas propiedades / variables que faltan que permiten a TypeScript compilar sin errores.

Espero que esto ayude a alguien que tenga este problema.

Aclamaciones.

Aquí está la solución para Ionic 2:

 constructor( public platform: Platform, //Platform controller public app: App, //App controller ) { platform.ready().then(() => { StatusBar.styleDefault(); Splashscreen.hide(); //Registration of push in Android and Windows Phone platform.registerBackButtonAction(() => { let nav = this.app.getActiveNav(); if (nav.canGoBack()){ //Can we go back? nav.pop(); }else{ this.platform.exitApp(); //Exit from app } }); }); } 

Cambie la prioridad de 101 a 100 para anular la funcionalidad de hardware predeterminada. Si tuviera una prioridad de 100 ya sobrepasando la funcionalidad, podría anular esa anulación con una prioridad de 101, si eso tiene sentido.

 $ionicPlatform.registerBackButtonAction(function(e) { // android hardware back button was hit }, 100); 

Aquí está una lista de todas las prioridades para los ganchos de botón de retroceso existentes

http://ionicframework.com/docs/api/service/$ionicPlatform/

  • Ionic CLI no pudo añadir Plataforma Android
  • Pantallas de inicio múltiples jónicas
  • Ionic / HTML5 - Entrada de teclado decimal?
  • Enviar url a la aplicación androide iónica a través de webintents desde otra aplicación
  • No puede firmar el APK sin firmar
  • Los datos de sincronización del marco iónico y el trabajo sin conexión
  • ionic con "SplashScreen.java utiliza o reemplaza una API obsoleta". error
  • Ionic Cordova FileUpload error: No se permite cargar el recurso local
  • Ripple no puede encontrar config.xml después de actualizar el proyecto cordova al estudio visual 2015
  • iframe tag no funciona en la última versión de Ionic
  • Sensibilidad de deslizamiento en Ionic Slidebox + Android 4.4.4
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.