在 flutter 中使用 url 启动器时出现未处理的异常

Unhandled Exception when using url launcher in flutter

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";
              }
            },
        )
      ],
    ),
  ),

我在 flutter 上写了这段代码来启动我的 LinkedIn 个人资料 URL。当我在模拟器上 运行 时,它工作正常,因为当我点击 URL 时网页会自动打开。但是,当我在调试模式下通过 运行ning 应用程序在物理设备上尝试相同操作时,URL 没有响应。相反,我在控制台中收到错误消息。

我假设您的 POCO X2 上安装了 Android 11,即 API 级别 30。

这是 canLaunch 函数的文档:https://pub.dev/documentation/url_launcher/latest/url_launcher/canLaunch.html

文档说:“在 Android(从 API 30)开始,当 AndroidManifest.xml 文件中未提供所需的可见性配置时,canLaunch 将 return false . 有关详细信息,请参阅 Android 文档中的 Managing package visibility 文章。“

因此我假设您没有在 AndroidManifest.xml 文件中提供可见性配置,这导致 canLaunch 到 return false.