web-dev-qa-db-fra.com

obtenir net :: ERR_CONNECTION_REFUSED (http: // localhost: 8080) sur la version Android 4.4.2

Je construis un simple projet ionique à partir de ce tutoriel.

Il fonctionne sur le téléphone Xiaomi Mix 2 (version Android 8.0.0) et sur le navigateur sans aucun problème . Mais lorsque je me suis déployé sur le Samsung Note 2 (version Android 4.4.2), .__, il génère une erreur d'application avec ce message: net :: ERR_CONNECTION_REFUSED ( http: // localhost: 8080 )

Pourquoi est-ce que je reçois cette erreur?

Tous les conseils et suggestions seront appréciés.

Kemal.

5
chrome

Votre problème est dû au plugin cordova-plugin-ionic-webview qui fait partie de chaque application Ionic nouvelle ou mise à jour.

Auparavant, cela s'appliquait uniquement à iOS, où il remplaçait UIWebView par WKWebView, mais le 23 juillet 2018, ils ont publié la version 2.0 du plug-in, qui incluait également des modifications de la vue Web utilisée sur Android. 

La vue Web Android utilise désormais un serveur Web local situé à localhost:8080 pour afficher votre application au lieu de demander les fichiers directement à partir du système de fichiers.

Malheureusement, cette modification a également inclus ce bit dans la documentation:

Requirements
- […]
- Android: Android 5.0+ and cordova-Android 6.4+

Donc, cordova-plugin-ionic-webview ne prend plus en charge Android avant la version 5.0, ce qui signifie bien entendu que votre application ne fonctionnera pas sous Android 4.x.

Une solution consiste à rétrograder le plug-in à la dernière version prenant en charge Android 4.x:

ionic cordova plugin add [email protected]

Informations plus élaborées et solutions alternatives:
https://ionic.zone/debug/ionic-and-Android-4

1
janpio

J'ai rencontré le même problème dans Android 4.4, Android 6.0 mais pas dans Android 8.0. Je viens d'ajouter ce code dans config.xml pour autoriser l'hôte local.

<allow-navigation href="http://localhost:8080/*"/>

Pour plus d’informations, suivez ce lien: WKWebView

3
Satinder Bajwa

Vous obtenez l'erreur car chaque fonction et module sous Android ne fonctionne qu'à partir d'une version donnée sur les plus récentes. Cela pourrait être 4.4.3 et plus, 5.0 et plus, ou même 8.0 et plus. Cela dépend. Cela signifie que si et lorsque vous le déployez, vous devrez sélectionner une version minimale. Il n'y a rien que vous puissiez faire pour résoudre ce problème, à part essayer une version plus récente. Vous pouvez également modifier complètement le code pour utiliser des modules plus anciens.

0
James