Необработанное исключение при использовании средства запуска URL во флаттере

      RichText(
    text: TextSpan(
      children: [
        TextSpan(
          text: "Soumik's LinkedIn Profile",
          style:
              TextStyle(fontSize: 20.0, color: Colors.blue),
          recognizer: TapGestureRecognizer()
            ..onTap = () async {
              var url =
                  "https://www.linkedin.com/in/soumik-mukherjee-438b451b5/";
              if (await canLaunch(url)) {
                await launch(url);
              } else {
                throw "Failed to open LinkedIn";
              }
            },
        )
      ],
    ),
  ),

Я написал этот код на флаттере, чтобы запустить URL моего профиля в LinkedIn. Когда я запускаю это на эмуляторе, он отлично работает, поскольку веб-страница открывается автоматически, когда я нажимаю на URL-адрес. Но когда я попробовал то же самое на физическом устройстве, запустив приложение в режиме отладки, URL-адрес не ответил. Вместо этого я получаю сообщение об ошибке в консоли.

1 ответ

Я предполагаю, что на вашем POCO X2 установлен Android 11, что соответствует уровню API 30.

Вот документация для функции: https://pub.dev/documentation/url_launcher/latest/url_launcher/canLaunch.html.

В документации говорится: «В Android (из API 30) canLaunch вернет false, если требуемая конфигурация видимости не указана в файле AndroidManifest.xml. Для получения дополнительной информации см. Статью « Управление видимостью пакета » в документации Android».

Поэтому я предполагаю, что вы не предоставили конфигурацию видимости в файле AndroidManifest.xml, что вызывает canLaunch возвращаться false.

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