Comment puis-je exécuter des tâches en arrière-plan à Réagir Natif?
J'ai construit un peu d'app iOS à Réagir Native qui ne le suivi de localisation, l'envoi de la lat/lng régulièrement à un serveur de l'utilisateur le choix. Toutefois, cela ne fonctionne que lorsque l'application est au premier plan. Comment puis-je exécuter cette tâche en arrière-plan lorsque l'utilisateur est dans d'autres applications?
- Vous pouvez probablement le faire en mettant UIBackgroundModes l'emplacement dans la plist - jetez un oeil ici developer.apple.com/library/ios/documentation/UserExperience/...
- Il y a une limitation à Réagir Natif dans lequel, lorsque l'application est en arrière-plan la js pont cesse de recevoir les messages. Cela signifie que si vous essayez d'envoyer les données à partir de js alors vous ne serez pas en mesure de compter sur les données le faire. Alternativement, vous pouvez écrire le code pour envoyer les mises à jour en code natif et qui devrait faire l'affaire
- Merci @rmevans9 c'est un bon début. Pour toute personne qui trouve ce que j'ai déjà fait un peu de travail ici gist.github.com/liamzebedee/67e1b2c53c6c5edcf8ec
- Auriez-vous l'esprit en acceptant la réponse?
- Pensez-vous qu'il serait possible de mettre en œuvre ces mêmes fonctions dans Swift?
Vous devez vous connecter pour publier un commentaire.
Actuellement, il n'y a, malheureusement, pas de support pour les tâches d'arrière-plan de toute nature. La fonction que vous faites référence serait un arrière-plan de la minuterie. Telle une minuterie est ce produit de la douleur (une demande de fonctionnalité) pour réagir natif, vous pouvez upvote pour montrer une augmentation de la demande pour cette fonction.
MODIFIER 12/2016: Il n'y a pas encore de véritable option. Vous avez la Headless JS API depuis RN 0.33, mais c'est seulement pour android. Aussi votre App crash si cela s'exécute dans le premier plan, alors vous devez être prudent quant à son utilisation. Grâce à @Feng pour souligné.
Et maintenant il y a réagir-native-fond-tâche qui est une API unique pour à la fois Android et iOS.
La Réagir écosystème Indigène a été en mouvement au rythme effréné au cours des derniers mois, et quelques plugins ont sauté à l'adresse de la douleur de ne pas être en mesure d'exécuter le code en arrière-plan.
https://github.com/transistorsoft/react-native-background-fetch -- Réveiller pendant 30 secondes périodiquement pour exécuter arbitrairement du code JS. Ne convient pas pour la haute résolution de géolocalisation, que le temps entre les réveils seront 15 minutes ou plus.
https://github.com/transistorsoft/react-native-background-geolocation -- Une meilleure solution pour cette situation, ciblant spécifiquement à la géolocalisation en arrière-plan.
J'utilise cela, et il semble fonctionner: https://github.com/ocetnik/react-native-background-timer
Ces bibliothèques peuvent vous aider à atteindre vos fonctionnalités souhaitées:
Alternativement, vous pouvez utiliser Headless JS de réagir indigènes. Mais son seul disponible pour Android.