Mandip
Mandip

Reputation: 79

How do I link http url to flutter-web

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

Upvotes: 6

Views: 10559

Answers (4)

Mariano Zorrilla
Mariano Zorrilla

Reputation: 7686

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.

Upvotes: 12

wz366
wz366

Reputation: 2940

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

Upvotes: 3

Dariusz Bacinski
Dariusz Bacinski

Reputation: 8710

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

Upvotes: 2

msbomrel
msbomrel

Reputation: 519

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

Upvotes: -3

Related Questions