【问题标题】:canLaunch is not launching URL in ios.But works fine in AndroidcanLaunch 未在 ios 中启动 URL。但在 Android 中运行良好
【发布时间】:2023-01-26 20:06:29
【问题描述】:

我正在使用 canLaunchUrl 启动 UPI 支付 URL。这在 Android 中运行良好,但在 iOS 中不起作用。在 iOS 中,他们不会启动 URL,而是转向 else 情况并显示我们在代码中提供的 toast 消息。 UPI Url 没有任何问题,我们单独检查过。此外,canLaunchUrl 可以启动电话号码和电子邮件。请帮我解决这个问题。

由于 canLaunch 已弃用,我使用了 canLaunchUrl 并将 url_launcher 更新为最新版本。但这对我也不起作用。

【问题讨论】:

  • 你有没有根据 : pub.dev/packages/url_launcher 添加 info.plist
  • 你的意思是在“LSApplicationQueriesSchemes”下吗?
  • Yupp.......@Geethu
  • 您可以在问题中添加 LSApplicationQueriesSchemes 吗?
  • 请提供足够的代码,以便其他人可以更好地理解或重现问题。

标签: flutter flutter-debug flutter-devtools


【解决方案1】:

您可以使用来自 launch_url 包的 URL launchUrl 例如打开地图:

Future<void> _launchUrl({double? originLat, double? originLng}) async {
        String url = Uri.encodeFull(
            'https://www.google.com/maps/search/?api=1&query=23.070907724512406,72.51759912698715');
    
        if (await canLaunchUrl(Uri.parse(url))) {
          await launchUrl(Uri.parse(url), webViewConfiguration: const WebViewConfiguration(enableJavaScript: true));
        } else {
          throw 'Could not launch $url';
        }
      }

并将以下内容放入您的info.plist 文件中

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>googlechromes</string>
        <string>comgooglemaps</string>
    </array>

【讨论】:

    猜你喜欢
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2017-06-25
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多