Flutter跳转到第三方地图

今天有个需求需要点击待着地址内容跳转到第三方地图
在网上找了不少资料,有一个大哥的挺方便的自己想跳转那个就调用就好了,封好了工具类
有一个局限性就是需要经纬度跳转如果没有经纬度的话是跳不了的

引入 url_launcher: ^6.1.7
需要在ios的info.plist文件添加

<key>LSApplicationQueriesSchemes</key>
<array>
	<string>iosamap</string>
	<string>qqmap</string>
	<string>baidumap</string>
</array>

这里是工具类

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

class MapUtil {
 
  /// 高德地图
  static Future<bool> gotoAMap(longitude, latitude) async {
  
    var url = '${Platform.isAndroid ? 'android' : 'ios'}amap://navi?sourceApplication=amap&lat=$latitude&lon=$longitude&dev=0&style=2';
 
    bool canLaunchUrl = await canLaunch(url);

    if (!canLaunchUrl) {
    	//失败的话会调用这里的方法
      return false;
    }

    await launch(url);
 
    return true;
  }
 
  /// 腾讯地图
  static Future<bool> gotoTencentMap(longitude, latitude) async {
    var url = 'qqmap://map/routeplan?type=drive&fromcoord=CurrentLocation&tocoord=$latitude,$longitude&referer=IXHBZ-QIZE4-ZQ6UP-DJYEO-HC2K2-EZBXJ';
    bool canLaunchUrl = await canLaunch(url);
 
    if (!canLaunchUrl) {
      return false;
    }
 
    await launch(url);
 
    return canLaunchUrl;
  }
 
  /// 百度地图
  static Future<bool> gotoBaiduMap(longitude, latitude) async {
    var url = 'baidumap://map/direction?destination=$latitude,$longitude&coord_type=bd09ll&mode=driving';
 
    bool canLaunchUrl = await canLaunch(url);
 
    if (!canLaunchUrl) {
      return false;
    }
 
    await launch(url);
 
    return canLaunchUrl;
  }
 
  /// 苹果地图
  static Future<bool> _gotoAppleMap(longitude, latitude) async {
    var url = 'http://maps.apple.com/?&daddr=$latitude,$longitude';
 
    bool canLaunchUrl = await canLaunch(url);
 
    if (!canLaunchUrl) {
      return false;
    }
    return canLaunchUrl;
    await launch(url);
  }
}

你可能感兴趣的:(安卓,flutter,android)