Pour la connexion réseau, j'utilise dio
et pour vérifier l'état de la connexion depuis Connectivity
.
Et ici, je vérifie l'état du réseau:
@override
Widget build(BuildContext context) {
bloc.checkConnectivity(Connectivity());
return StreamBuilder(
stream: bloc.getInitApp,
builder: (context, AsyncSnapshot<InitApp> initApp) {
if (initApp.hasData) {
return prepareMain(initApp.data);
} else {
return Center(
child: CircularProgressIndicator(),
);
}
});
}
checkConnectivity
méthode:
checkConnectivity(Connectivity _connectivity) {
_connectivity.onConnectivityChanged.listen((ConnectivityResult result){
if (result == ConnectivityResult.mobile ||
result == ConnectivityResult.wifi) {
fetchInitApp();
}
});
}
Mais finalement, l'application ne fonctionne que sur Android mais sur iOS (appareil/simulateur) se produit cette erreur:
Error connecting to the service protocol: HttpException: , uri = http://127.0.0.1:1024/ws
J'ai essayé d'appeler Api
sans Connectivity
et l'application fonctionne aussi bien mais avec elle obtient des données juste en Android et pour iOS il y a toujours un problème.
Cela arrive aussi avec Dart http
paquet .
Modifier 1:25 sept. 2019
This has nothing to do WiFi the code!
The problem is the system WiFi connection.
Lorsque vous rencontrez ce problème, utilisez cette solution temporaire jusqu'à ce qu'une solution complète soit fournie:
Reconnectez simplement votre appareil avec votre IDE et redémarrez également votre IDE, après cela, cela fonctionnera.
Utilisez Android API 28 au lieu de l'API 29.
Cela a fonctionné pour moi.
courir flutter clean
commande- il supprime la version précédente. puis exécutez try flutter run
commande
Si vous partagez le réseau depuis votre Mac, désactivez-le. ça a marché pour moi.
J'ai le même problème. Lorsque cela se produit, je débranche/branche l'iPhone et il commence à fonctionner.