// #ifdef MP-ALIPAY
const sdkVersion = my.SDKVersion;
console.info('基础库版本:', sdkVersion);
const clientVersion = my.env.clientVersion || my.getSystemInfoSync().clientVersion;
console.info('客户端版本:', clientVersion);
// #endif
这个只能获取到经纬度,要想获取所在位置,需要自己调用百度或高德的API反查。
// #ifdef MP-ALIPAY
my.getLocation((loc) => {
console.log(loc);
});
// #endif
不设置默认城市名的情况下,推荐使用该方式。
chooseCity() {
// #ifdef MP-ALIPAY
my.chooseCity({
showLocatedCity: true,
setLocatedCity: false,
success: (res) => {
let { city, adCode } = res;
console.info('city:', city);
console.info('adCode:', adCode);
},
fail: (error) => {
console.log(error);
}
});
// #endif
}
注意
setLocatedCity: false
:因为我们不设置默认地址直接用支付宝获取到的,所以要设置为false,否则会出现点击你所在地区
触发重新定位获取城市名的问题。
设置showLocatedCity: true
后,点击你所在地区
会触发重新定位,我们可以根据定位到的坐标,反查所在城市,设置城市名称,城市名称可以随便定义,但是不建议。
setLocatedCity() {
// #ifdef MP-ALIPAY
const chooseCityTask = my.chooseCity({
// 是否显示当前定位城市
showLocatedCity: true,
showHotCities: true,
// 是否修改当前定位城市
setLocatedCity: true,
success: (res) => {
console.log(`chooseCity: ${JSON.stringify(res)}`);
},
fail: (error) => {
console.log('选择失败', `${JSON.stringify(error)}`);
},
complete: () => {
console.log('complete回调');
}
});
const onLocatedCompleteCallback = (locatedCompleteRes) => {
const { longitude, latitude } = locatedCompleteRes;
// 这里是自己处理根据经纬度反查出正确的城市名,也可以随便定义,不推荐随便定义。
let cityName = '郑州';
chooseCityTask.setLocatedCity({
locatedCityName: cityName, // 修改默认定位城市名
sucess() {
console.log('修改成功');
},
fail() {
console.log('修改失败');
},
complete() {
chooseCityTask.offLocatedComplete(onLocatedCompleteCallback);
}
});
};
chooseCityTask.onLocatedComplete(onLocatedCompleteCallback);
// #endif
},
https://opendocs.alipay.com/mini/00nd0d
代码
chooseCity() {
// #ifdef MP-ALIPAY
my.chooseCity({
showLocatedCity: true,
setLocatedCity: false,
success: (res) => {
let { city, adCode } = res;
console.info('city:', city);
console.info('adCode:', adCode);
},
fail: (error) => {
console.log(error);
}
});
// #endif
}
返回数据格式