react pagina official app javascript ios react-native

javascript - pagina - react official



¿Cómo puedo ejecutar tareas en segundo plano en React Native? (5)

Actualmente, desafortunadamente, no hay soporte para tareas en segundo plano de ningún tipo. La característica a la que se refiere sería un temporizador de fondo. Tal temporizador es el dolor de este producto (una solicitud de función) para reaccionar nativo, puede votarlo para mostrar una mayor demanda de esta función.

EDITAR 12/2016: Todavía no hay una opción real. Tiene la API Headless JS desde RN 0.33, pero es solo para Android. Además, su aplicación se bloqueará si se ejecuta en primer plano, por lo que debe tener cuidado al usarla. Gracias a @Feng por señalar eso.

He creado una pequeña aplicación de iOS en React Native que realiza el seguimiento de la ubicación, enviando el lat / lng regularmente a un servidor de elección del usuario. Sin embargo, esto solo funciona cuando la aplicación está en primer plano. ¿Cómo puedo ejecutar esta tarea en segundo plano cuando el usuario está en otras aplicaciones?


El ecosistema React Native se ha estado moviendo a un ritmo vertiginoso en los últimos meses, y han aparecido algunos complementos para abordar el dolor de no poder ejecutar código en segundo plano.

https://github.com/transistorsoft/react-native-background-fetch - Despierta durante 30 segundos periódicamente para ejecutar algún código JS arbitrario. No es adecuado para la geolocalización de alta resolución, ya que el tiempo entre reactivaciones será de 15 minutos o más.

https://github.com/transistorsoft/react-native-background-geolocation : una mejor opción para esta situación, dirigida específicamente a la geolocalización en segundo plano.




Yo uso esto, y parece funcionar: https://github.com/ocetnik/react-native-background-timer

Emitir eventos periódicamente (incluso cuando la aplicación está en segundo plano).

Puede usar las funciones setInterval y setTimeout. Esta API es idéntica a la de react-native y se puede usar para reemplazar rápidamente los temporizadores existentes con temporizadores de fondo.

import BackgroundTimer from ''react-native-background-timer''; // Start a timer that runs continuous after X milliseconds const intervalId = BackgroundTimer.setInterval(() => { // this will be executed every 200 ms // even when app is the the background console.log(''tic''); }, 200); // Cancel the timer when you are done with it BackgroundTimer.clearInterval(intervalId); // Start a timer that runs once after X milliseconds const timeoutId = BackgroundTimer.setTimeout(() => { // this will be executed once after 10 seconds // even when app is the the background console.log(''tac''); }, 10000); // Cancel the timeout if necessary BackgroundTimer.clearTimeout(timeoutId);