最近项目需要在APP内部点击店铺地址,直接打开高德地图进行导航,实现步骤如下
第一步:后去用户当前的位置
//获取用户经纬度
async getCurlocation(){
uni.getLocation({
geocode:true,
type:'gcj02',
success:(res)=>{
this.latitude = res.latitude;
this.longitude = res.longitude;
this.current_address = res.address.province+res.address.city+res.address.district+res.address.street+res.address.streetNum+res.address.poiName;
}
})
},
第二步,打开高德地图导航
navigaToShop(){
let shop_latitude = this.shop_latitide;
let shop_longtude = this.shop_longtude;
let current_latitude = this.latitude;
let current_longitude = this.longitude;
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="+current_latitude(当前维度)+"&slon="+current_longitude(当前经度)+"&sname=" +this.current_address(当前位置)+
"&did=B&dlat="+shop_latitude(店铺经度)+"&dlon="+shop_longtude(店铺维度)+"&dname="+shop_address(店铺地址)+"D10&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}`
})
}
},
完成!!!