J'ai implémenté webView en flutter mais il n'ouvre pas mon site web php qui est sur le serveur ce que je fais mal.
Je suis nouveau dans le flottement et j'ai essayé la visualisation Web pour intégrer la page Web de mon site Web dans ma demande, mais pas de chance.
Widget build(BuildContext context) {
// TODO: implement build
return WebviewScaffold(
appBar: AppBar(iconTheme:IconThemeData(color: Colors.white),title: Text("Intake Form",style:new TextStyle(color: Colors.white,fontWeight: FontWeight.bold)),backgroundColor:Colors.indigoAccent,automaticallyImplyLeading: false),
url: url,
//url: "http://xxxxxxxx/",
withJavascript: true,
supportMultipleWindows: true,
withLocalStorage: true,
allowFileURLs: true,
enableAppScheme: true,
appCacheEnabled: true,
hidden: false,
scrollBar: true,
geolocationEnabled: false,
clearCookies: true,
// usesCleartextTraffic="true"
);
}
Je m'attends à ce que la sortie soit en cours d'exécution, mais une erreur est levée.
Dans le répertoire principal de votre projet Flutter, vous avez trois dossiers principaux:
- lib = your Dart code
- ios = generated structure for iOS platform
- Android = generated structure for Android platform
Nous sommes intéressés par le répertoire Android
. Lorsque vous l'ouvrez, vous verrez "typique Android structure de l'application".
Vous devez donc faire 2 choses:
res
Accédez au répertoire:
my_flutter_project/Android/app/src/main/res/
Créez le répertoire xml
(dans res
!)
Et à l'intérieur de xml
ajoutez un nouveau fichier avec le nom: network_security_config.xml
et contenu:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
network_security_config.xml
doit se trouver dans le chemin:
my_flutter_project/Android/app/src/main/res/xml/network_security_config.xml
Vous trouverez ici plus d'informations sur ce fichier:
https://developer.Android.com/training/articles/security-config
Aller à:
flutter_project/Android/app/src/main/AndroidManifest.xml
AndroidManifest.xml
est un fichier XML, avec une structure:
<manifest>
<application>
<activity>
...
</activity>
<meta-data >
</application>
</manifest>
Donc pour <application>
PROPRIÉTÉS vous devez ajouter 1 ligne:
Android:networkSecurityConfig="@xml/network_security_config"
application
):<application
SOMEWHERE HERE IS OK
>
Pas comme balise:
<application> <--- opening tag
HERE IS WRONG!!!!
<application/> <--- closing tag
Dans AndroidManifest.xml, ajoutez [Android:usesCleartextTraffic="true"
] as
<application
......
.......
Android:usesCleartextTraffic="true"
.............. >
<.........
................... />
..........
...........>
</application>
cela ne fonctionne pas dans Android version 9
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>