最近在做一个扫码洗车的项目,有一个需求是点击标记点的时候,自动调起高德进行导航,我的是app端的,不知道其他端的支不支持,详细代码如下:
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 = "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";
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 + '')
uni.showToast({
title: `目前导航暂只支持${packageName}`
})
}
将上面代码写在你需要调用高德地图的地方,就会直接触发手机调用到的地图,如果手机未安装高德会给个提示;
亲测有效,不会的随时欢迎留言咨询 ~
版权声明:本文为qq_43353619原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。