Как открыть URL-адрес в приложении Flutter с помощью url_launcher?
Я использую пакет url_launcher для открытия url, вот код:
Future <void> _openURL(String url) async{
if(await canLaunch(url)) {
await launch(
url,
forceSafariVC: false,
forceWebView: true,
);
}
else{
throw 'Cant open URL';
}
}
ListTile(
title: Text('Google'),
onTap: () {
_openURL('https://www.google.de/');
}),
Но независимо от того, какой URL-адрес я хочу открыть, я получаю сообщение об ошибке «Невозможно открыть URL-адрес».
3 ответа
Я получаю ту же ошибку: Необработанное исключение: не удалось запустить
Как вы можете видеть здесь https://pub.dev/packages/url_launcher, вы должны поместить следующий фрагмент в свой AndroidManifest.xml
<queries>
<!-- If your app opens https URLs -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
</queries>
Попробуйте ввести код ниже:
Создайте функцию launchURL:
_launch() async {
const url = 'https://www.google.de/';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
Создайте свой виджет:
ListTile(
onTap: _launch,
title: Text('Google'),
),
Надеюсь, он решил вашу проблему
Мне не удалось открыть URL-адрес в Android с помощью приложения Flutter с файлом pub
https://pub.dev/packages/url_launcher
Поскольку JavaScript не был включен.
Вот рабочий фрагмент кода для Android -
void _launchURL(String _url) async {
if (await canLaunch(_url)) {
await launch(_url, forceSafariVC: true, forceWebView: true, enableJavaScript: true);
} else {
throw 'Could not launch $_url';
}
}
Затем я добавил ключ
enableJavaScript: true
и он начал работать и на Android. iOS не требует настройки.