【问题标题】:Flutter Deeplink to Google maps and WazeFlutter Deeplink 到 Google 地图和 Waze
【发布时间】:2020-12-29 23:52:09
【问题描述】:

我正在实现一个从 Flutter 应用到导航应用(如 Google 地图或 Waze)的深层链接。我对 Google Maps 或 Waze 都没有问题,我的问题是如果我为 Google Maps 配置链接,用户仍然可以选择在 Waze 中打开它,但由于参数不同,显然没有启动导航。

有没有办法限制用户对要使用的应用的选择?或者是否可以根据用户选择打开的应用程序使用不同的链接?或者更好的是,是否有一个通用的导航链接适用于这两个应用程序?

【问题讨论】:

    标签: google-maps flutter waze


    【解决方案1】:

    您可以使用通用链接 (iOS) / 应用链接 (Android) 强制打开选定的应用程序,它应该强制打开选定的应用程序。当然,如果您要启动的应用程序在设备中找不到,它会在浏览器中打开它。

    在这里,我假设您使用纬度和经度导航到该地点,但您可以轻松地将其调整为其他内容。 我也在使用url_launcher 来启动链接。

    void launchWaze(double lat, double lng) async {
      var url = 'waze://?ll=${lat.toString()},${lng.toString()}';
      var fallbackUrl =
          'https://waze.com/ul?ll=${lat.toString()},${lng.toString()}&navigate=yes';
      try {
        bool launched =
            await launch(url, forceSafariVC: false, forceWebView: false);
        if (!launched) {
          await launch(fallbackUrl, forceSafariVC: false, forceWebView: false);
        }
      } catch (e) {
        await launch(fallbackUrl, forceSafariVC: false, forceWebView: false);
      }
    }
    
    void launchGoogleMaps(double lat, double lng) async {
      var url = 'google.navigation:q=${lat.toString()},${lng.toString()}';
      var fallbackUrl =
          'https://www.google.com/maps/search/?api=1&query=${lat.toString()},${lng.toString()}';
      try {
        bool launched =
            await launch(url, forceSafariVC: false, forceWebView: false);
        if (!launched) {
          await launch(fallbackUrl, forceSafariVC: false, forceWebView: false);
        }
      } catch (e) {
        await launch(fallbackUrl, forceSafariVC: false, forceWebView: false);
      }
    }
    

    您还需要将以下内容添加到您的 Info.plist 文件中:

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

    【讨论】:

      猜你喜欢
      • 2014-10-29
      • 2020-07-25
      • 2018-04-29
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多