111 votes

Comment ouvrir un navigateur Web (URL) à partir de mon code Flutter?

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?

200voto

Günter Zöchbauer Points 21340

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.

6voto

Reagankm Points 864

[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');
  }
);
 

3voto

edgar wahl Points 11

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).

2voto

TaylorR Points 536

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X