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);
  }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值