uniapp 分享位置
uniapp 分享位置实现方法
在 uniapp 中实现分享位置功能,通常需要调用微信小程序、H5 或 App 的原生 API。以下是不同平台的实现方式:
微信小程序平台
使用 wx.openLocation API 打开微信内置地图,并显示指定位置:
uni.openLocation({
latitude: 39.90469, // 纬度
longitude: 116.40717, // 经度
name: '北京市', // 位置名称
address: '北京市东城区', // 详细地址
success: function () {
console.log('打开位置成功');
}
});
H5 平台
通过 window.open 调用第三方地图服务(如高德、百度地图):
// 高德地图
window.open(`https://uri.amap.com/marker?position=116.40717,39.90469&name=北京市`);
// 百度地图
window.open(`https://api.map.baidu.com/marker?location=39.90469,116.40717&title=北京市&output=html`);
App 平台
使用原生地图插件或调用系统地图:
// 使用 uni-app 官方地图插件
plus.maps.openSysMap({
latitude: 39.90469,
longitude: 116.40717,
name: '北京市',
address: '北京市东城区'
});
跨平台兼容方案
通过条件编译实现多平台兼容:
// #ifdef MP-WEIXIN
wx.openLocation({
latitude: 39.90469,
longitude: 116.40717,
name: '北京市',
address: '北京市东城区'
});
// #endif
// #ifdef H5
window.open(`https://uri.amap.com/marker?position=116.40717,39.90469&name=北京市`);
// #endif
// #ifdef APP-PLUS
plus.maps.openSysMap({
latitude: 39.90469,
longitude: 116.40717,
name: '北京市',
address: '北京市东城区'
});
// #endif
注意事项
- 微信小程序需要先调用
wx.getLocation获取用户授权 - App 端可能需要配置原生地图插件
- H5 端需要确保域名在白名单内
- 各平台对坐标系的处理可能不同(如微信使用 GCJ-02)







