2012-05-11 12 views
5

¿Sería posible pausar una aplicación Android PhoneGap manualmente? Necesito detener la aplicación e ir al fondo cuando alguien hace clic en un botón. Usé navigator.app.exitApp(); pero cierra completamente la aplicación. No quiero cerrar la aplicación simplemente descargue al igual que con el botón de retroceso nativo. Por favor ayuda, gracias.Pausar manualmente una aplicación en Android Phonegap

+0

¿Qué quiere decir con pausa? Tal vez eche un vistazo a Activites Lifecircle porque no estoy seguro de lo que trata de lograr :) http://developer.android.com/guide/topics/fundamentals/activities.html – yoshi

+0

Necesito detener/detener la actividad (La aplicación no debería estar visible en el foro) y la aplicación no debería estar visible, como cuando hacemos clic en el botón de retroceso nativo, se ocultará la aplicación. –

+1

Básicamente, ¿desea el mismo comportamiento que si alguien presionó el botón de Inicio correcto? –

Respuesta

1

En su Javascript:

// HomeButton 
cordova.define("cordova/plugin/homebutton", function (require, exports, module) { 
    var exec = require("cordova/exec"); 
    module.exports = { 
     show: function (win, fail) { 
      exec(win, fail, "HomeButton", "show", []); 
     } 
    }; 
}); 

Y:

// HomeButton 
function homeButton() { 
    var home = cordova.require("cordova/plugin/homebutton"); 
    home.show(
     function() { 
      console.info("PhoneGap Plugin: HomeButton: callback success"); 
     }, 
     function() { 
      console.error("PhoneGap Plugin: HomeButton: callback error"); 
     } 
    ); 
} 

En Java en Android nativo:

package org.apache.cordova.plugins; 

import org.apache.cordova.api.CallbackContext; 
import org.apache.cordova.api.CordovaPlugin; 
import org.apache.cordova.api.PluginResult; 
import org.json.JSONArray; 

import android.content.Intent; 
import android.util.Log; 

public class HomeButton extends CordovaPlugin { 

    public static final String LOG_PROV = "PhoneGapLog"; 
    public static final String LOG_NAME = "HomeButton Plugin"; 

    @Override 
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) { 
     Log.d(LOG_PROV, LOG_NAME + ": Simulated home button."); 
     Intent i = new Intent(Intent.ACTION_MAIN); 
     i.addCategory(Intent.CATEGORY_HOME); 
     this.cordova.startActivityForResult(this, i, 0); 
     callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK)); 
     return true; 
    } 

} 

llama con:

homeButton(); 

Funciona, y es parte de un acuerdo de recompra mío: https://github.com/teusinkorg/jpHolo/

+0

Gracias, funciona como magia –

3

he aquí una solución que es similar a la respuesta de Joram Teusink, pero más fácil, ya que no es necesario editar manualmente el código de Java - sólo tiene que instalar un plugin con el phonegap/cordova CLI.

El plugin tiene una función: goHome(). Si llama a esto, la aplicación se detendrá, al igual que al presionar el botón de inicio.

Uso:

navigator.Backbutton.goHome(function() { 
    console.log('success - the app will now pause') 
}, function() { 
    console.log('fail') 
}); 

Instalación:

PhoneGap Plugin locales añadir https://github.com/mohamed-salah/phonegap-backbutton-plugin.git

Aquí está la página de GitHub:

https://github.com/mohamed-salah/phonegap-backbutton-plugin.git

Cuestiones relacionadas