如何在 url_launcher 更新后启动谷歌地图 uri?

E.B*_*dos 3 dart flutter flutter-packages url-launcher

我已经更新了我的 flutter 应用程序包,包括从到 的url_launcher包。6.0.206.1.2

\n

更新后,许多 Android 用户 (API 30/31/32) 报告称,由于出现错误,他们无法使用 Google 地图应用启动导航至指定点(纬度和经度):

\n
Webpage not available. \n\nWebpage not available\nThe webpage at intent://maps.app.goo.gl/?\nlink=https://www.google.com/maps/dir//45.8597077,.........\ncould not be loaded because:\nnet: ERR_UNKNOWN_URL_SCHEME\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的工作代码6.0.20

\n
Webpage not available. \n\nWebpage not available\nThe webpage at intent://maps.app.goo.gl/?\nlink=https://www.google.com/maps/dir//45.8597077,.........\ncould not be loaded because:\nnet: ERR_UNKNOWN_URL_SCHEME\n
Run Code Online (Sandbox Code Playgroud)\n

这是不工作的6.1.2

\n
final String gMapsUrl = \'https://www.google.com/maps/dir/api=1&destination=$latitude,$longitude&travelmode=driving\';\n\nif (Platform.isAndroid && await canLaunch(gMapsUrl)) {\n  await launch(gMapsUrl);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

现在启动 Google 地图 url 以便启动应用内或网络浏览器导航而不强制用户使用应用内或网络导航的正确方法是什么?

\n
[\xe2\x9c\x93] Flutter (Channel stable, 2.10.3, on macOS 12.4 21F79 darwin-x64, locale en-IT)\n    \xe2\x80\xa2 Flutter version 2.10.3 at /Users/enrico/SDKs/flutter\n    \xe2\x80\xa2 Upstream repository https://github.com/flutter/flutter.git\n    \xe2\x80\xa2 Framework revision 7e9793dee1 (3 months ago), 2022-03-02 11:23:12 -0600\n    \xe2\x80\xa2 Engine revision bd539267b4\n    \xe2\x80\xa2 Dart version 2.16.1\n    \xe2\x80\xa2 DevTools version 2.9.2\n\n[\xe2\x9c\x93] Android toolchain - develop for Android devices (Android SDK version 31.0.0)\n    \xe2\x80\xa2 Android SDK at /Users/enrico/Library/Android/sdk\n    \xe2\x80\xa2 Platform android-31, build-tools 31.0.0\n    \xe2\x80\xa2 Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java\n    \xe2\x80\xa2 Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)\n    \xe2\x80\xa2 All Android licenses accepted.\n\n[\xe2\x9c\x93] Xcode - develop for iOS and macOS (Xcode 13.4)\n    \xe2\x80\xa2 Xcode at /Applications/Xcode.app/Contents/Developer\n    \xe2\x80\xa2 CocoaPods version 1.11.3\n\n[\xe2\x9c\x93] Chrome - develop for the web\n    \xe2\x80\xa2 Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome\n\n[\xe2\x9c\x93] Android Studio (version 2021.1)\n    \xe2\x80\xa2 Android Studio at /Applications/Android Studio.app/Contents\n    \xe2\x80\xa2 Flutter plugin can be installed from:\n       https://plugins.jetbrains.com/plugin/9212-flutter\n    \xe2\x80\xa2 Dart plugin can be installed from:\n       https://plugins.jetbrains.com/plugin/6351-dart\n    \xe2\x80\xa2 Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)\n\n[\xe2\x9c\x93] VS Code (version 1.67.1)\n    \xe2\x80\xa2 VS Code at /Applications/Visual Studio Code.app/Contents\n    \xe2\x80\xa2 Flutter extension version 3.40.0\n\n[\xe2\x9c\x93] Connected device (2 available)\n    \xe2\x80\xa2 sdk gphone64 x86 64 (mobile) \xe2\x80\xa2 emulator-5554 \xe2\x80\xa2 android-x64    \xe2\x80\xa2 Android 12 (API 32) (emulator)\n    \xe2\x80\xa2 Chrome (web)                 \xe2\x80\xa2 chrome        \xe2\x80\xa2 web-javascript \xe2\x80\xa2 Google Chrome 101.0.4951.64\n\n[\xe2\x9c\x93] HTTP Host Availability\n    \xe2\x80\xa2 All required HTTP hosts are available\n\n\xe2\x80\xa2 No issues found!\n
Run Code Online (Sandbox Code Playgroud)\n

E.B*_*dos 7

这两个版本之间的一些默认设置可能已更改。现在指定mode我解决了强制打开应用程序的问题:

await launchUrl(gMapsUri, mode: LaunchMode.externalApplication);
Run Code Online (Sandbox Code Playgroud)