第一步,高德为例,去高德注册android和ios的对应的key;结果如下
第二步,将参数配置在,hbuilderx的manifest.json中,
第三步,敲代码,android 和ios的不一样的,需要先判断手机的平台
switch (uni.getSystemInfoSync().platform) {
case "android":
break;
case "ios":
break;
default:
break;
}
uni.getSystemInfoSync().platform 用于获取设备的系统平台,返回的是一个字符串('android')/('ios')
第四部,编写android的代码:
case "android":
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=" +
that.latitude +
"&slon=" +
that.longitude +
"&sname=当前位置" +
"&did=B&dlat=" +
slat +
"&dlon=" +
slon +
"&dname=" +
address +
"&dev=0&t=2";
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 {
uni.hideLoading();
uni.showToast({
title: "请安装高德地图完成导航",
duration: 2000,
icon: "none"
});
}
break;
第五部,编写ios的代码:
case "ios":
var urlStr =
"iosamap://path?sourceApplication=amap&backScheme=iosamap&sid=slat=" +
that.latitude +
"&slon=" +
that.longitude +
"&sname=我的位置&did=&dlat=" +
slat +
"&dlon=" +
slon +
"&dname=" +
address +
"&dev=0&t=0";
var UIApplication = plus.ios.import("UIApplication");
var NSURL = plus.ios.import("NSURL");
var encodeString = encodeURI(urlStr);
var dbScheme = NSURL.URLWithString(encodeString);
var application = UIApplication.sharedApplication();
var a = application.openURL(dbScheme);
plus.ios.deleteObject(application);
uni.hideLoading();
if (!a) {
let appUrl = "itms-apps://itunes.apple.com/cn/app/id461703208?mt=8";
plus.runtime.openURL(appUrl, function(err) {});
uni.showToast({
title: "请先安装并授权高德地图",
duration: 2000,
icon: "none"
});
}
break;
ios中的openurl方法,会返回一个boolean值,结果是根据当前设备是否安装了对应的app来打开连接;
itms-apps://itunes.apple.com/cn/app/idxxxx?mt=8 这是跳转ios应用商店,去下载,XXXX为对应的AppID,只是用与ios,安卓略有不同