给出Flutter使用launchUrl跳转高德导航的代码
时间: 2024-09-14 18:07:13 浏览: 75
在Flutter中使用`launchUrl`插件可以实现打开高德地图导航的功能。首先,你需要确保你的项目中已经添加了`url_launcher`和`launch_url`依赖。接下来,你需要安装高德地图的URL Scheme,才能通过URL启动高德地图导航。
以下是一个简单的示例代码,展示了如何使用`launchUrl`插件在Flutter中打开高德地图并进行导航:
```dart
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:launch_url/launch_url.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter LaunchUrl Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
final String origin = "123.456,78.910"; // 起点坐标,替换为你需要的经纬度
final String destination = "123.457,78.911"; // 终点坐标,替换为你需要的经纬度
void _launchNavigationURL() async {
String url = "amapuri://route/plan?sourceApplication=应用名&strategy=driving&coord_type=gcj02&origin=$origin&destination=$destination";
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter LaunchUrl Amap Demo'),
),
body: Center(
child: RaisedButton(
onPressed: _launchNavigationURL,
child: Text('启动高德导航'),
),
),
);
}
}
```
在上述代码中,我们创建了一个`MyHomePage`的`StatelessWidget`,它有一个按钮,当点击时会调用`_launchNavigationURL`方法。这个方法构造了一个高德地图的URL Scheme,并使用`launch`函数尝试打开它。注意,你需要将`origin`和`destination`变量中的坐标替换为你实际想要导航的起点和终点坐标。
请确保你已经在应用中正确配置了`url_launcher`和`launch_url`依赖,并且在项目的`AndroidManifest.xml`中添加了以下权限,以便你的应用能够打开外部链接:
```xml
<uses-permission android:name="android.permission.INTERNET" />
```
同时,别忘了替换URL中的`应用名`为你的应用名称,以满足高德地图URL Scheme中对来源应用的要求。
阅读全文