Как открыть 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 не требует настройки.

Другие вопросы по тегам