Después de consultar expertos en este tema, programadores de varias ramas y maestros dimos con la solución a la interrogande y la compartimos en esta publicación.
Solución:
TL;RD
Esto ahora se implementa como complemento
const url = "https://flutter.io";
if (await canLaunch(url))
await launch(url);
else
// can't launch url, there is some error
throw "Could not launch $url";
Ejemplo completo:
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';
En pubspec.yaml
dependencies:
url_launcher: ^5.7.10
Caracteres especiales:
Si el url
El valor contiene espacios u otros valores que ahora están permitidos en las URL, use
Uri.encodeFull(urlString)
o Uri.encodeComponent(urlString)
y pase el valor resultante en su lugar.
Para aleteo:
Como se describe anteriormente por Günter Zöchbauer
Para Flutter Web:
import 'dart:html' as html;
Luego usa:
html.window.open(url, name);
Asegúrate de correr flutter clean
Si el import
no resuelve
Uso del complemento URL Launcher url_launcher
Para iniciar una página web, seamos una función asíncrona y hagamos lo siguiente:
launchURL(String url) async
if (await canLaunch(url))
await launch(url);
else
throw 'Could not launch $url';
Si quisiéramos que tanto iOS como Android abrieran la página web dentro de la aplicación (como WebView), agregue forceWebView: true
haríamos algo como esto:
launchURL(String url) async
if (await canLaunch(url))
await launch(url, forceWebView: true);
else
throw 'Could not launch $url';
Y llámalo de esta manera
onTap: ()
const url = 'https://google.com';
launchURL(url);
Al final de la página puedes encontrar las interpretaciones de otros creadores, tú igualmente tienes el poder dejar el tuyo si dominas el tema.