2016-07-07 1 views
0

Pour mon application, les utilisateurs peuvent remplir des données, les enregistrer et les transférer dans le cloud (Firebase pour être spécifique). Je souhaite que les utilisateurs puissent enregistrer les données lorsqu'ils sont hors ligne, mais lorsque le périphérique se reconnecte, les données sont transférées vers le cloud sans que l'utilisateur n'ait à ouvrir l'application. J'ai lu un peu sur l'accessibilité et l'actualisation de l'application en arrière-plan, mais je ne suis pas entièrement sûr si ce que je veux faire est possible ou comment le faire si c'est possible. Je travaille avec swift et firebaseComment puis-je transmettre des données en arrière-plan lorsque le périphérique se reconnecte à Internet?

Mise à jour: Est-il possible d'essayer de pousser les données de temps en temps de l'arrière-plan?

Merci à l'avance

+0

Vous ne pouvez pas. Vous ne pouvez pas exécuter votre application en arrière-plan. Oui, il existe des modes d'arrière-plan, mais ils ne permettent pas d'utiliser Reabability pour réactiver votre application en cas de modification de la connectivité. – Gruntcakes

+0

Et à la mise à jour: non ce n'est pas possible non plus. – Gruntcakes

+0

Même avec l'actualisation de l'application en arrière-plan? –

Répondre

-1

En utilisant Reachabilty vous pouvez envoyer vos données lors du passage en ligne.

import ReachabilitySwift 

private func setupReachability() { 
    do { 
     let reachability = try Reachability.reachabilityForInternetConnection() 
     reachability.whenReachable = { reachability in 
      self.syncManager.syncData() 
     } 
     reachability.startNotifier() 
    } catch { 
     dLog("Failed to start reachability") 
    } 
} 

En supposant que vous avez persisté vos données à l'aide des données de base, et lorsque vos données ont été envoyées avec succès, les lignes sont supprimées.

+0

Mais comment puis-je faire cela si l'application est en arrière-plan? Je veux qu'il soit capable de se synchroniser sans que l'utilisateur ait à ouvrir l'application –

+0

Oui, c'est plus compliqué ... Peut-être que vous pouvez programmer des notifications push locales pour réveiller l'application? Je ne pense pas que votre application puisse écouter les changements de connectivité en arrière-plan – Sajjon

+0

Il n'y a pas de notification push locale. Il y a des notifications locales, qui ne peuvent pas réveiller l'application à moins que l'utilisateur ne tape dessus, et il y a des notifications push. Il n'y a pas de notifications push locales. – Gruntcakes