y***@163.com
y***@163.com
  • 发布:2020-01-07 11:18
  • 更新:2022-02-28 16:34
  • 阅读:20535

uni-app如何直接调用高德地图进行导航

分类:Native.js
var packageName = 'com.autonavi.minimap';  
                var main = plus.android.runtimeMainActivity();    
                var packageManager = main.getPackageManager();    
                var PackageManager = plus.android.importClass(packageManager)    
                var packageInfo = packageManager.getPackageInfo(packageName,PackageManager.GET_ACTIVITIES);    
                if(packageInfo){    
                    var Uri = plus.android.importClass("android.net.Uri");  
                    var url="androidamap://route?sourceApplication=amap"+  
                    "&sid='A'&slat='36.702558'&slon='116.876678'&sname='开始'"+  
                "&did='B'&dlat='36.649415'&dlon='117.122497'&dname='结束'&dev='0'&t='1'";    
                    var Intent = plus.android.importClass('android.content.Intent');    
                    var intent = new Intent();  
                    intent.setAction(Intent.ACTION_VIEW);  
                    intent.addCategory(Intent.CATEGORY_DEFAULT);  
                    var uri = Uri.parse(url);  
                    //将功能Scheme以URI的方式传入data  
                    intent.setData(uri);  
                    intent.setPackage("com.autonavi.minimap");  
                    var main = plus.android.runtimeMainActivity();    
                    main.startActivity(intent);    
                }  
                else  
                {  
                    alert('未安装' + packageName + '')    
                }

如上代码,可以打开高德地图APP,但是传递的导航的两个位置参数无法让高德直接导航,android原生的是可以的。

2020-01-07 11:18 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com - 就普普通通写写代码

url里面的值去掉单引号,就可以调起导航,亲测可用,只需要修改url变量,如下:

var url="amapuri://route/plan?sourceApplication=maxuslife"+
"&sid=A&slat=36.702558&slon=116.876678&sname=开始"+
"&did=B&dlat=36.649415&dlon=117.122497&dname=结束&dev=0&t=0";

  • 一颗精致的花生

    请问下,打开的时候途径点怎么添加

    2020-04-21 18:11

  • 土豆不是马铃薯

    你好 请问这个在h5中可以使用么 我们使用的是h5吊起高德的app

    2021-01-26 16:25

  • 8***@qq.com

    请问HBuilderX上一直报错 未定义 plus是为什么

    2021-12-14 17:24

  • 小璇本璇

    回复 8***@qq.com: 要在app调试

    2022-07-30 14:28

w***@163.com

w***@163.com

安卓可以调用 ios不可以 有解决办法吗

  • 1***@qq.com

    你好 请问你有解决这个问题吗

    2021-01-05 16:41

1***@qq.com

1***@qq.com - 有问题一起解决

同问 解决了吗?

  • y***@163.com (作者)

    自己写原生插件离线打包,https://ask.dcloud.net.cn/article/36808

    2020-01-09 16:07

  • 1***@qq.com

    url里面的值去掉单引号,就可以调起导航,亲测可用,只需要修改url变量,如下:


    var url="amapuri://route/plan?sourceApplication=maxuslife"+

    "&sid=A&slat=36.702558&slon=116.876678&sname=开始"+

    "&did=B&dlat=36.649415&dlon=117.122497&dname=结束&dev=0&t=0";

    2020-02-22 14:39

匿名用户x

匿名用户x - ........

这个是在高德api上的吗

2***@qq.com

2***@qq.com

ios咋办

zhangyq

zhangyq

ios打开高德地图:
url = iosamap://viewMap?sourceApplication=applicationName&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0;
plus.runtime.openURL(encodeURI(url), function(e) {
console.log(e)
plus.nativeUI.alert("本机未安装指定的地图应用");
});

1***@qq.com

1***@qq.com

安卓和ios都是这个方法吗

3***@qq.com

3***@qq.com

请问怎么把url中间的经纬度换成活的,字符串拼接不行var url = "amapuri://route/plan?sourceApplication=maxuslife" +
"&sid=A&slat=${this.Latitude}&slon=${this.Longitude}&sname=当前位置" +
"&did=B&dlat=${this.list.latitude}&dlon=${this.list.longitude}&dname=结束位置&dev=0&t=0";

  • hyp799351348

    我是这样的:

    var lat=JSON.stringify(this.Latitude);

    var=JSON.stringify(this.longitude);


    "&sid=A&slat="+lat+"&slon="+long+"&sname=起始地点"

    2022-04-14 18:25

该问题目前已经被锁定, 无法添加新回复