Je crée une application Flutter et j'aimerais ouvrir une URL dans un navigateur Web ou une fenêtre de navigateur (en réponse à un appui sur un bouton). Comment puis-je faire ceci?
Réponses
Trop de publicités?Ceci est maintenant implémenté en tant que plugin
https://pub.dartlang.org/packages/url_launcher
Exemple:
import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; void main() { runApp(new Scaffold( body: new Center( child: new RaisedButton( onPressed: _launchURL, child: new Text('Show Flutter homepage'), ), ), )); } _launchURL() async { const url = 'https://flutter.io'; if (await canLaunch(url)) { await launch(url); } else { throw 'Could not launch $url'; } }
Caractères spéciaux:
Si la valeur url
contient des espaces ou d'autres valeurs désormais autorisées dans les URL, utilisez
Uri.encodeFull(urlString)
ou Uri.encodeComponent(urlString)
et passez la valeur résultante à la place.
[REMARQUE: UrlLauncher n'existe plus. Voir la réponse acceptée pour la solution.]
Vous pouvez utiliser UrlLauncher pour faire quelque chose comme ceci:
new FlatButton(
textColor: style.mainTheme.accentColor,
child: new Text(signInLabel, style: style.largeText),
onPressed: () {
UrlLauncher.launch('http://www.webpage.com');
}
);
Si vous souhaitez utiliser url_launcher, veuillez l'utiliser dans ce formulaire
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
url_launcher: ^5.0.2
flutter:
sdk: flutter
Cette réponse s'adresse également aux débutants absolus: ils pensent derrière le sdk flutter. Non, c'était un échec. Les paquets étaient des extras et non dans le Sdk flottant. Il s'agissait de packages secondaires (simples petits assistants de framework).
Après quelques recherches, ce problème peut être résolu via les instructions répertoriées ici: https://groups.google.com/forum/#!topic/flutter-dev/J3ujgdOuG98
Le UrlLauncher
ci-dessus n'est plus utilisable.