Я создаю приложение Flutter и хочу открыть URL-адрес в веб-браузере или окне браузера (в ответ на нажатие кнопки). Как я могу это сделать?
Как открыть веб-браузер (URL) из моего кода Flutter?
Ответ 1
Теперь это реализовано как плагин
https://pub.dartlang.org/packages/url_launcher
Пример:
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'; } }
Специальные символы:
Если значение url
содержит пробелы или другие значения, которые теперь разрешены в URL, используйте
Uri.encodeFull(urlString)
или Uri.encodeComponent(urlString)
и вместо этого передайте полученное значение.
Ответ 2
[ПРИМЕЧАНИЕ: UrlLauncher больше не существует. См. Принятый ответ для решения.]
Вы можете использовать UrlLauncher, чтобы сделать что-то вроде этого:
new FlatButton(
textColor: style.mainTheme.accentColor,
child: new Text(signInLabel, style: style.largeText),
onPressed: () {
UrlLauncher.launch('http://www.webpage.com');
}
);
Ответ 3
Если вы хотите использовать url_launcher, чем, пожалуйста, используйте его в этой форме
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
url_launcher: ^5.0.2
flutter:
sdk: flutter
Этот ответ также для абсолютных новичков: они думают позади флаттера SDK. Нет, это был провал. Пакеты были отдельно оплачиваемыми, а не в трепетании СДК. Это были вторичные пакеты (одиночные небольшие помощники фреймворка).
Ответ 4
После некоторого поиска эту проблему можно решить с помощью инструкций, перечисленных здесь: https://groups.google.com/forum/#!topic/flutter-dev/J3ujgdOuG98
Вышеупомянутый UrlLauncher
больше не используется.
Ответ 5
Возможно, вы захотите использовать плагин webview.
Существует плагин сообщества с некоторыми ограничениями -
https://pub.dartlang.org/packages/flutter_webview_plugin
И есть официальный -
https://github.com/flutter/plugins/tree/master/packages/webview_flutter
Ответ 6
Для флаттера:
Как описано выше Гюнтером Цохбауэром
Для Flutter Web:
import 'dart:html' as html;
Тогда используйте:
html.window.open(url, name);
Убедитесь, что вы запустите flutter clean
если import
не разрешается.