我想在Flutter应用程序内部显示具有逐步导航功能的Google Maps应用程序。
我正在开发一种Flutter应用程序,该应用程序可以安排路线,在后台监控驾驶员的进度,并能够根据用户输入(例如路障)重新安排路线。我想在底部显示一个应用栏,其中包含有关进度的信息以及一些用于启动或通知包版广告的按钮。在此栏上方,我希望有一个窗口显示基于时间表的当前部分的逐步导航。我希望所有这些都能自动运行,以将用户输入的数量减少到最低限度(因为用户正在开车)。
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter demo'),
),
body: Center(
child: WebView(
initialUrl: 'https://www.google.com/maps/dir/?api=1&destination=Madrid,Spain&origin=Barcelona,Spain&waypoints=Zaragoza|Huesca&travelmode=driving&dir_action=navigate',
javascriptMode: JavascriptMode.unrestricted,
),
),
bottomNavigationBar: BottomAppBar(
color: Colors.blueGrey,
child: Text('Dashboard'),
),
);
}
我可以使用以下示例网址设置WebView:
它显示带有所需路线和“导航”按钮的Google Maps网络应用。但是,当我按下导航按钮时,由于要触发意图而删除了net:ERR_UNKNOWN_URL_SCHEME。我有一种感觉,即使我能够解决此错误,我也只能在新的屏幕/页面上打开逐行导航,而不能嵌入到WebView(或我应用程序的其他位置)中)。
这甚至有可能还是我在浪费时间试图找到一种方法来完成这项工作?
答案 0 :(得分:0)
我认为不可能在 WebView 中强制进行逐向 Google 地图导航。此外,在您的应用中使用 Google Maps API 创建您自己的精细导航也可能违反 Google Maps Platform's Terms of Service - 请参阅 3.2.3.d:“禁止重新创建 Google 产品或功能”。
我可以建议的是让其他应用程序处理正在广播的意图,以启动外部地图应用程序来处理导航。您可以查看此 post 以了解如何过滤 Intent URL 并让它们在外部进行处理。