javascript - app - phonegap descargar
cómo verificar la aplicación que se ejecuta en primer plano o fondo en iónico/cordova/phonegap (5)
"¿Hay alguna forma de comprobar si la aplicación se ejecuta en primer plano o en segundo plano?"
Sí.
1) Cuando una aplicación se vuelve inactiva (se ejecuta en segundo plano) Córdova activa el evento de pause
, y cuando una aplicación se vuelve a activar (llevada al primer plano) Córdova activa el evento de resume
.
2) A partir de estos eventos, se puede usar una variable para almacenar el estado como "primer plano" o "fondo".
document.addEventListener("deviceReady", function readyCallback() {
var isAppInForeground = true;
document.addEventListener("pause", function pauseCallback() {
isAppInForeground = false;
}, false);
document.addEventListener("resume", function resumeCallback() {
isAppInForeground = true;
}, false);
});
¿Hay alguna manera de comprobar si la aplicación se está ejecutando en primer plano o en segundo plano en ionic / cordova / phonegap? Necesito usarla en Android y iOS, muchas gracias.
Para Ionic 2 y Ionic 3 la solución es:
import { Platform } from ''ionic-angular'';
@Component({
template: `OK`
})
constructor(public platform: Platform) {
platform.ready().then(() => {
if (platform.is(''cordova'')){
//Subscribe on pause
this.platform.pause.subscribe(() => {
//Hello pause
});
//Subscribe on resume
this.platform.resume.subscribe(() => {
window[''paused''] = 0;
});
}
});
}
Un pequeño servicio para Ionic basado en la respuesta de Sithys:
factory(''BackgroundCheck'', function($ionicPlatform){
var service = {};
var inBackground = false;
$ionicPlatform.ready(function() {
document.addEventListener("resume", function(){inBackground = false;}, false);
document.addEventListener("pause", function(){inBackground = true;}, false);
});
service.isActive = function(){
return inBackground == false;
}
return service;
})
Usando una abstracción angular de ionic.Platform
//The pause event fires when the native platform puts the application
// into the background, typically when the user switches to a different
// application.
$ionicPlatform.on(''pause'', function () {
// Handle event on pause
});
// The resume event fires when the native platform
// pulls the application out from the background.
$ionicPlatform.on(''resume'', function () {
// Handle event on resume
});
Use los dos eventos " Pause
" y " Resume
". Encontrará todos los eventos aquí en la documentación de eventos de Apache Cordova .
Evento - Pausa:
- El evento de pausa se dispara cuando la plataforma nativa pone la aplicación en segundo plano, generalmente cuando el usuario cambia a una aplicación diferente.
Evento - Currículum
- El evento de reanudación se dispara cuando la plataforma nativa saca la aplicación del fondo.
Puede agregar un Eventlistener para eso en su código. Para esos dos eventos que serían:
Pausa - Ejemplo rápido
document.addEventListener("pause", onPause, false);
function onPause() {
// Handle the pause event
}
O ejemplo completo como este:
<!DOCTYPE html>
<html>
<head>
<title>Pause Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
//
function onDeviceReady() {
document.addEventListener("pause", onPause, false);
}
// Handle the pause event
//
function onPause() {
}
</script>
</head>
<body onload="onLoad()">
</body>
</html>
Curriculum vitae - Ejemplo rápido
document.addEventListener("resume", onResume, false);
function onResume() {
// Handle the resume event
}
O ejemplo completo como este
<!DOCTYPE html>
<html>
<head>
<title>Resume Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
//
function onDeviceReady() {
document.addEventListener("resume", onResume, false);
}
// Handle the resume event
//
function onResume() {
}
</script>
</head>
<body onload="onLoad()">
</body>
</html>
Pruébalo y avísame si necesitas más ayuda.