Flutter教程url_launcher调用高德导航
在Flutter中使用url_launcher插件调用高德地图导航时遇到问题。按照教程配置了AndroidManifest.xml并添加了高德地图的URL Scheme,但点击按钮后无法跳转。错误提示为“No Activity found to handle Intent”。已确认手机安装了高德地图APP,测试URL在浏览器中可以正常打开。请问是否需要额外配置?代码片段如下:
final url = 'amapuri://route/plan/?sid=BGVIS1&slat=39.92848272&slon=116.39560823&sname=A&did=BGVIS2&dlat=39.98848272&dlon=116.47560823&dname=B&dev=0&t=0';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
更多关于Flutter教程url_launcher调用高德导航的实战教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中使用url_launcher
插件调用高德导航,可以按以下步骤操作:
- 添加依赖:在pubspec.yaml文件中添加
url_launcher
。
dependencies:
url_launcher: ^6.0.9
- 导入并初始化:
import 'package:url_launcher/url_launcher.dart';
void _launchAmap() async {
const String mapUrl = "amapuri://route/plan/";
final String location = "116.481424,39.989641"; // 目标地点经纬度
if (await canLaunch(mapUrl + location)) {
await launch(mapUrl + location);
} else {
throw '无法打开高德导航';
}
}
注意:高德地图的URL scheme为amapuri://
。如果需要指定起点和终点,可以在URL后添加spos
(起点)和dpos
(终点)参数,格式为经度,维度。确保用户已安装高德地图APP。
更多关于Flutter教程url_launcher调用高德导航的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter 中使用 url_launcher
插件可以方便地调用高德导航。首先确保已安装 url_launcher
,然后使用以下代码:
import 'package:url_launcher/url_launcher.dart';
Future<void> launchAmapNavigation(String startLat, String startLng, String endLat, String endLng) async {
final Uri googleMapUri = Uri.parse(
"androidamap://navi?sourceApplication=yourAppName&poiname=start&lat=$startLat&lon=$startLng&dev=0",
);
if (!await launchUrl(googleMapUri)) {
throw Exception('Could not launch $googleMapUri');
}
}
此代码将启动高德地图并开始导航。请记得将 yourAppName
替换为你的应用名称,并确保设备上已安装高德地图。如果未安装,则需要处理跳转失败的情况。
另外,还需在 AndroidManifest.xml 文件中添加高德地图的相关权限和功能:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="androidamap" />
</intent>
</queries>
在 Flutter 中使用 url_launcher
调用高德地图导航的代码示例如下:
- 首先在
pubspec.yaml
添加依赖:
dependencies:
url_launcher: ^6.1.5
- 调用高德地图导航的代码:
import 'package:url_launcher/url_launcher.dart';
void launchAmapNavigation(double lat, double lng, String address) async {
final url = 'amapuri://route/plan/?dlat=$lat&dlon=$lng&dname=$address&dev=0&t=0';
if (await canLaunch(url)) {
await launch(url);
} else {
// 如果手机没安装高德地图,跳转到网页版高德地图
final webUrl = 'https://uri.amap.com/navigation?to=$lng,$lat,$address';
if (await canLaunch(webUrl)) {
await launch(webUrl);
} else {
throw '无法打开高德地图';
}
}
}
使用示例:
launchAmapNavigation(39.90872, 116.39751, "天安门");
注意事项:
- 需要先在手机上安装高德地图APP
- 参数说明:
- dlat: 目的地纬度
- dlon: 目的地经度
- dname: 目的地名称
- dev: 是否偏移(0代表不偏移)
- t: 导航类型(0驾车/1公交/2步行)
如需更详细的参数设置,可以参考高德地图的URI API文档。