Detener mi aplicación de dormir (Cordova / Android)
Tengo una aplicación para Android que creo desde un proyecto webpack de node.js.
Cuando instalo mi aplicación en mi teléfono noto que duerme cuando el teléfono duerme. Así que por ejemplo, tengo un temporizador javascript que deja de ser llamado:
- ¿Se puede usar la API de PostMessage para comunicarse con un WebView de Android?
- Cómo obtener el ancho de ventana correcto en el cambio de orientación para dispositivos Android, tabletas y móviles
- Detección de dispositivos de pantalla táctil con Javascript
- Interrupciones de la interfaz de Android 4.2.1, WebView y javascript
- La aplicación se bloquea en Android 6 porque el módulo tiene reubicaciones de texto
pingTimer=setInterval(ping,pingInterval);
Para pingInterval. ¿Cómo dejo de dormir mi aplicación? Eventualmente, quiero que mi aplicación se vaya a dormir, pero por ahora detener el teléfono de dormir es mi mejor opción.
ACTUALIZAR
Seguí las instrucciones descritas aquí:
Http://www.greenbot.com/article/2993199/android/how-to-turn-off-doze-mode-for-specific-apps-in-android-marshmallow.html
Pero sin suerte.
- ¿Cómo implementar la aplicación de compra mediante Cordova plugin?
- window.close equivalente en Phonegap con InAppBrowser
- Cómo reproducir canciones en Android - phonegap
- Cómo ocultar la barra de direcciones de una página web en android?
- ¿Cómo paso valores de retorno de una función javascript a android?
- Cómo llamar a Javascript __doPostBack de JSOUP
- Cuando invoco una función Java desde mi código Javascript, WebView se bloquea. ¿Por qué?
- Cómo salir de una aplicación web de pantalla completa
La mejor opción para usar es la api WakeLock
Agregue el permiso en el manifest file
para la función wakeLock
<uses-permission android:name="android.permission.WAKE_LOCK" />
Entonces usted puede agregar lo siguiente de acuerdo a sus modificaciones como se sugiere en el comportamiento MDN
function forPingTimer(){ var lock = window.navigator.requestWakeLock('screen'); //set timeout or until the timer expires }
Y suelte la cerradura usando lock.unlock();
función.
O
Para la aplicación cordova también puede utilizar el plugin insomnio Los cambios que se realizarán en el archivo de config
son como se menciona en los documentos y se puede utilizar simplemente de la siguiente manera como
function forPingTimer(){ //as long as the app runs or set the timeout here or wrap it in a promise //Simply calling window.plugins.insomnia.keepAwake() to keep awake } //window.plugins.insomnia.allowSleepAgain() to sleep again until the timer after the timer is fulfilled
La opción más fácil para evitar que tu aplicación Android androide de dormir es utilizar Insomnia-PhoneGap-Plugin. Este complemento también es compatible con la mayoría de las plataformas como Android, iOS y Windows.
Este plugin es fácil de usar. keepAwake
función en el complemento impide que el dispositivo de dormir y allowSleepAgain
llamada de función permite que el dispositivo para dormir de nuevo. Puedes encontrar más información en el enlace oficial del complemento del insomnio .
Espero eso ayude. Aclamaciones.
- ¿Cómo crear un observable de Hashmap?
- Problema con BroadcastReceiver (error del receptor no registrado)