I'm learning flutter web.
I'm trying to open another url when button is clicked.
Is there any way like this:
onclick: ()=>openurl("https://test.com")
How can I achieve this?
Please help
UPDATE: This is a VERY old "issue" from Flutter Web and has already been resolved using the "url_launcher" package
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
const String _url = 'https://flutter.dev';
void main() => runApp(
const MaterialApp(
home: Material(
child: Center(
child: RaisedButton(
onPressed: _launchURL,
child: Text('Show Flutter homepage'),
),
),
),
),
);
void _launchURL() async {
if (!await launch(_url)) throw 'Could not launch $_url';
}
Current easiest way to do it is by using href
with your html
library:
import 'dart:html' as html;
html.window.location.href = "https://www.google.com" // or any website your want
Put that code inside your onTap
method and that's it.
You can now use url_launcher
just like for other platforms, web support has been added.
https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher_web
webOnlyWindowName:'_self',
–
Alda Flutter Web does not support plugins (yet), so you have to use replacements from dart:html
https://api.dartlang.org/stable/2.4.0/dart-html/Window/open.html
window.open(url, 'tab');
or
https://api.dartlang.org/stable/2.4.0/dart-html/Window/location.html window.location.assign(url);
There is a plugin to achieve this: https://pub.dartlang.org/packages/url_launcher
Import the plugin;
import 'package:url_launcher/url_launcher.dart';
openURL() async {
const url = 'https://test.com';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
Call the method
flutter packages get
instead of pub get
. –
Playbook © 2022 - 2024 — McMap. All rights reserved.